diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2005-05-16 15:17:53 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2005-05-16 15:17:53 +0000 |
| commit | 22061f63b0ae2254d569b3c9f2d28f1add39ab1c (patch) | |
| tree | 2019710e498e08a313104134beccf9839dbefe2c /lib/driver/rcinput.cpp | |
| parent | 6e8738f7f86c2bd4263c99a0095dc1a071870dca (diff) | |
| download | enigma2-22061f63b0ae2254d569b3c9f2d28f1add39ab1c.tar.gz enigma2-22061f63b0ae2254d569b3c9f2d28f1add39ab1c.zip | |
- autodetect available input devices
- fix flag support
- fix keymap: listbox moveUp/moveDown
Diffstat (limited to 'lib/driver/rcinput.cpp')
| -rw-r--r-- | lib/driver/rcinput.cpp | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/lib/driver/rcinput.cpp b/lib/driver/rcinput.cpp index 94ce3ebe..58cc9afc 100644 --- a/lib/driver/rcinput.cpp +++ b/lib/driver/rcinput.cpp @@ -117,11 +117,36 @@ int eRCDeviceInputDev::getKeyCompatibleCode(const eRCKey &key) const class eInputDeviceInit { - eRCInputEventDriver driver; - eRCDeviceInputDev deviceInputDev; + ePtrList<eRCInputEventDriver> m_drivers; + ePtrList<eRCDeviceInputDev> m_devices; public: - eInputDeviceInit(): driver("/dev/input/event0"), deviceInputDev(&driver) + eInputDeviceInit() { + int i = 0; + while (1) + { + struct stat s; + char filename[128]; + sprintf(filename, "/dev/input/event%d", i); + if (stat(filename, &s)) + break; + eRCInputEventDriver *p; + m_drivers.push_back(p = new eRCInputEventDriver(filename)); + m_devices.push_back(new eRCDeviceInputDev(p)); + ++i; + } + eDebug("Found %d input devices!", i); + } + + ~eInputDeviceInit() + { + while (m_drivers.size()) + { + delete m_devices.back(); + m_devices.pop_back(); + delete m_drivers.back(); + m_drivers.pop_back(); + } } }; |
