tkeyboarddirect.h.svn-base

来自「ffshow源码」· SVN-BASE 代码 · 共 107 行

SVN-BASE
107
字号
#ifndef _TKEYBOARDDIRECT_H_#define _TKEYBOARDDIRECT_H_#include "Toptions.h"#include "interfaces.h"struct IDirectInput;struct IDirectInputDevice;class TdirectInput :public Toptions{private: const char_t *name; const GUID &deviceId;const DIDATAFORMAT &deviceFormat; IDirectInput *di; IDirectInputDevice *did; char_t classname[40]; HWND h; HANDLE event; uintptr_t thr; volatile bool terminate; static void thread(void *self); void *state,*stateprev;size_t statesize; bool inExplorer;protected:  TdirectInput(TintStrColl *Icoll,const char_t *Iname,const GUID &IdeviceId,const DIDATAFORMAT &IdeviceFormat,void *Istate,void *Istateprev,size_t Istatesize,IffdshowBase *Ideci); int is,always; void onChange(int id,int newval); IffdshowBase* deci; virtual void processState(void)=0;  static bool windowActive(void);public:  virtual void hook(void); void unhook(void); void load(void),save(void);};struct TregOp;class Tkeyboard :public TdirectInput{public: struct TkeyParam  {   TkeyParam(const char_t *Idescr,int Ikey,int Iidff=0):descr(Idescr),key(Ikey),idff(Iidff) {}   const char_t *descr;   int key;   int idff;  }; typedef std::vector<TkeyParam> TkeysParams; TkeysParams keysParams;private: enum {  idff_forward      =-1,  idff_backward     =-2,  idff_grab         =-3,  idff_subdelaySub  =-4,  idff_subdelayAdd  =-5,  idff_subposSub    =-6,  idff_subposAdd    =-7,  idff_videodelaySub=-8,  idff_videodelayAdd=-9,  idff_presetPrev   =-10,  idff_presetNext   =-11  }; virtual void reg_op(TregOp &t); void keyProc(int code,bool remote); struct TkeyInfo  {   bool girderok;   const char_t *keyname;  }; static const TkeyInfo keyInfo[256]; static const unsigned char vk2dik[256]; clock_t prevT; uint8_t dkeys[256],dprevkeys[256]; int keydown; void exportGMLkey(int &id,FILE *f,TkeysParams::const_iterator k,const char *second=NULL);protected: virtual void processState(void); public: Tkeyboard(TintStrColl *Icoll,IffdshowBase *Ideci); ~Tkeyboard(); virtual void hook(void); int shortosd; int i_key_act1,i_key_act2; int i_key_mod; int seek1,seek2; void initKeysParam(void); void reset(void); bool exportToGML(const char_t *flnm); void keyDown(int key),keyUp(int key); static const char_t* getKeyName(int key);};class Tmouse :public TdirectInput{private: DIMOUSESTATE state,prevstate;protected: virtual void processState(void); public: Tmouse(TintStrColl *Icoll,IffdshowBase *Ideci); ~Tmouse();};#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?