Home

Dokumentation

Impressum

Dokumentation VDR
 

Main Page   Class Hierarchy   Alphabetical List   Data Structures   File List   Data Fields   Globals  

keys.h

Go to the documentation of this file.
00001 
00010 #ifndef __KEYS_H
00011 #define __KEYS_H
00012 
00013 #include "config.h"
00014 #include "tools.h"
00015 
00017 enum eKeys { // "Up" and "Down" must be the first two keys!
00018              kUp,
00019              kDown,
00020              kMenu,
00021              kOk,
00022              kBack,
00023              kLeft,
00024              kRight,
00025              kRed,
00026              kGreen,
00027              kYellow,
00028              kBlue,
00029              k0, k1, k2, k3, k4, k5, k6, k7, k8, k9,
00030              kPlay,
00031              kPause,
00032              kStop,
00033              kRecord,
00034              kFastFwd,
00035              kFastRew,
00036              kPower,
00037              kChanUp,
00038              kChanDn,
00039              kVolUp,
00040              kVolDn,
00041              kMute,
00042              kSchedule,
00043              kChannels,
00044              kTimers,
00045              kRecordings,
00046              kSetup,
00047              kCommands,
00048              kUser1, kUser2, kUser3, kUser4, kUser5, kUser6, kUser7, kUser8, kUser9,
00049              kNone,
00050              kKbd,
00054              k_Plugin,
00055              k_Setup,
00059              k_Repeat  = 0x8000,
00060              k_Release = 0x4000,
00061              k_Flags   = k_Repeat | k_Release,
00062            };
00063 
00067 #define kMarkToggle      k0
00068 #define kMarkMoveBack    k4
00069 #define kMarkMoveForward k6
00070 #define kMarkJumpBack    k7
00071 #define kMarkJumpForward k9
00072 #define kEditCut         k2
00073 #define kEditTest        k8
00074 
00075 #define RAWKEY(k)        (eKeys((k) & ~k_Flags))
00076 #define ISRAWKEY(k)      ((k) != kNone && ((k) & k_Flags) == 0)
00077 #define NORMALKEY(k)     (eKeys((k) & ~k_Repeat))
00078 #define ISMODELESSKEY(k) (RAWKEY(k) > k9)
00079 
00080 #define BASICKEY(k)      (eKeys((k) & 0xFFFF))
00081 #define KBDKEY(k)        (eKeys(((k) << 16) | kKbd))
00082 #define KEYKBD(k)        (((k) >> 16) & 0xFFFF)
00083 
00084 struct tKey {
00085   eKeys type;
00086   char *name;
00087   };
00088 
00090 class cKey : public cListObject {
00091 private:
00092   char *remote;
00093   char *code;
00094   eKeys key;
00095 public:
00096   cKey(void);
00097   cKey(const char *Remote, const char *Code, eKeys Key);
00098   ~cKey();
00099   const char *Remote(void) { return remote; }
00100   const char *Code(void) { return code; }
00101   eKeys Key(void) { return key; }
00102   bool Parse(char *s);
00103   bool Save(FILE *f);
00104   static eKeys FromString(const char *Name);
00105   static const char *ToString(eKeys Key);
00106   };
00107 
00108 
00110 class cKeys : public cConfig<cKey> {
00111 public:
00112   bool KnowsRemote(const char *Remote);
00113   eKeys Get(const char *Remote, const char *Code);
00114   const char *GetSetup(const char *Remote);
00115   void PutSetup(const char *Remote, const char *Setup);
00116   };
00117 
00118 extern cKeys Keys;
00119 
00120 #define MAXKEYSINMACRO 16
00121 
00123 class cKeyMacro : public cListObject {
00124 private:
00125   eKeys macro[MAXKEYSINMACRO];
00126   char *plugin;
00127 public:
00128   cKeyMacro(void);
00129   ~cKeyMacro();
00130   bool Parse(char *s);
00131   const eKeys *Macro(void) const { return macro; }
00132   const char *Plugin(void) const { return plugin; }
00133   };
00134 
00136 class cKeyMacros : public cConfig<cKeyMacro> {
00137 public:
00138   const cKeyMacro *Get(eKeys Key);
00139   };
00140 
00141 extern cKeyMacros KeyMacros;
00142 
00143 #endif //__KEYS_H
00144 

Generated on Wed Feb 5 23:30:09 2003 for VDR by doxygen1.3-rc2