X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/ddc3964ed95d01e72229dc9af968a327cd84e56c..22061f63b0ae2254d569b3c9f2d28f1add39ab1c:/lib/driver/rcinput.cpp 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 m_drivers; + ePtrList 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(); + } } };