X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/41ede5ef8052385661577e28e2f3c96c9377c4ee..ebd1552cdd3e60d5eb21f97e46570de2e17ed19f:/lib/driver/rc.h diff --git a/lib/driver/rc.h b/lib/driver/rc.h index 7b735962..e9542ca8 100644 --- a/lib/driver/rc.h +++ b/lib/driver/rc.h @@ -12,6 +12,8 @@ class eRCInput; class eRCDriver; class eRCKey; +#ifndef SWIG + /** * \brief A remote control. * @@ -161,12 +163,19 @@ public: rrate; // repeat rate (in ms) }; +#endif + class eRCInput: public Object { int locked; int handle; static eRCInput *instance; - + int keyboardMode; +#ifdef SWIG + eRCInput(); + ~eRCInput(); +public: +#else public: struct lstr { @@ -181,15 +190,36 @@ public: Signal1 keyEvent; eRCInput(); ~eRCInput(); - - int lock(); - void unlock(); - int islocked() { return locked; } + 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 + not. + + kmNone will ignore all Ascii Characters sent from the + keyboard/console driver, only give normal keycodes to the + application. + + kmAscii will filter out all keys which produce ascii characters, + and send them instead. Note that Modifiers like shift will still + be send. Control keys which produce escape codes are send using + normal keycodes. + + kmAll will ignore all keycodes, and send everything as ascii, + including escape codes. Pretty much useless, since you should + 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) { /*emit*/ keyEvent(key); @@ -199,10 +229,13 @@ public: void removeDevice(const std::string &id); eRCDevice *getDevice(const std::string &id); std::map &getDevices(); - - static eRCInput *getInstance() { return instance; } - + eRCConfig config; +#endif + static eRCInput *getInstance() { return instance; } + int lock(); + void unlock(); + int islocked() { return locked; } }; #endif