X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/c4f2b9b542581bf518bc36476e11ec15074f99b4..932f1ec948f517d2cf739cba5ac564fcac618aa9:/lib/driver/rc.h diff --git a/lib/driver/rc.h b/lib/driver/rc.h index e9542ca8..52909468 100644 --- a/lib/driver/rc.h +++ b/lib/driver/rc.h @@ -41,7 +41,7 @@ public: * For Example, it might be 16bit codes with one bit make/break or special codes * for repeat. */ - virtual void handleCode(int code)=0; + virtual void handleCode(long code)=0; /** * \brief Get user readable description. * \result The description. @@ -53,6 +53,7 @@ public: * \param key The key to get the description for. * \result User readable description of given key. */ + virtual void setExclusive(bool b) { }; }; /** @@ -89,13 +90,14 @@ public: ~eRCDriver(); void enable(int en) { enabled=en; } + virtual void setExclusive(bool) { } }; class eRCShortDriver: public eRCDriver { protected: int handle; - eSocketNotifier *sn; + ePtr sn; void keyPressed(int); public: eRCShortDriver(const char *filename); @@ -106,12 +108,13 @@ class eRCInputEventDriver: public eRCDriver { protected: int handle; - eSocketNotifier *sn; + ePtr sn; void keyPressed(int); public: std::string getDeviceName(); eRCInputEventDriver(const char *filename); ~eRCInputEventDriver(); + void setExclusive(bool b); // in exclusive mode data is not carried to console device }; class eRCKey @@ -126,10 +129,15 @@ public: } enum { + /* there are not really flags.. */ + flagMake=0, flagBreak=1, - flagRepeat=2 + flagRepeat=2, + flagLong=3, + /* but this is. */ + flagAscii=4, }; - + bool operator<(const eRCKey &r) const { if (r.producer == producer) @@ -168,7 +176,6 @@ public: class eRCInput: public Object { int locked; - int handle; static eRCInput *instance; int keyboardMode; #ifdef SWIG @@ -194,8 +201,6 @@ public: void close(); bool open(); - void setFile(int handle); - /* This is only relevant for "keyboard"-styled input devices, i.e. not plain remote controls. It's up to the input device driver to decide wheter an input device is a keyboard or @@ -215,10 +220,6 @@ public: lock the console and pass this as the console fd for making the tc* stuff working. */ - - enum { kmNone, kmAscii, kmAll }; - void setKeyboardMode(int mode) { keyboardMode = mode; } - int getKeyboardMode() { return keyboardMode; } void keyPressed(const eRCKey &key) { @@ -232,8 +233,11 @@ public: eRCConfig config; #endif + enum { kmNone, kmAscii, kmAll }; + void setKeyboardMode(int mode) { keyboardMode = mode; } + int getKeyboardMode() { return keyboardMode; } static eRCInput *getInstance() { return instance; } - int lock(); + void lock(); void unlock(); int islocked() { return locked; } };