1 #include <lib/driver/rcinput.h>
4 #include <linux/input.h>
7 #include <lib/base/ebase.h>
8 #include <lib/base/init.h>
9 #include <lib/base/init_num.h>
10 #include <lib/driver/input_fake.h>
12 void eRCDeviceInputDev::handleCode(int rccode)
14 struct input_event *ev = (struct input_event *)rccode;
17 eDebug("%x %x %x", ev->value, ev->code, ev->type);
21 /*emit*/ input->keyPressed(eRCKey(this, ev->code, eRCKey::flagBreak));
24 /*emit*/ input->keyPressed(eRCKey(this, ev->code, 0));
27 /*emit*/ input->keyPressed(eRCKey(this, ev->code, eRCKey::flagRepeat));
32 eRCDeviceInputDev::eRCDeviceInputDev(eRCInputEventDriver *driver): eRCDevice(driver->getDeviceName(), driver)
36 const char *eRCDeviceInputDev::getDescription() const
41 const char *eRCDeviceInputDev::getKeyDescription(const eRCKey &key) const
45 case KEY_0: return "0";
46 case KEY_1: return "1";
47 case KEY_2: return "2";
48 case KEY_3: return "3";
49 case KEY_4: return "4";
50 case KEY_5: return "5";
51 case KEY_6: return "6";
52 case KEY_7: return "7";
53 case KEY_8: return "8";
54 case KEY_9: return "9";
55 case KEY_RIGHT: return "rechts";
56 case KEY_LEFT: return "links";
57 case KEY_UP: return "oben";
58 case KEY_DOWN: return "unten";
59 case KEY_OK: return "ok";
60 case KEY_MUTE: return "mute";
61 case KEY_POWER: return "power";
62 case KEY_GREEN: return "gruen";
63 case KEY_YELLOW: return "gelb";
64 case KEY_RED: return "rot";
65 case KEY_BLUE: return "blau";
66 case KEY_VOLUMEUP: return "Lautstaerke plus";
67 case KEY_VOLUMEDOWN: return "Lautstaerke minus";
68 case KEY_HELP: return "?";
69 case KEY_SETUP: return "d-Box";
71 case KEY_TOPLEFT: return "oben links";
72 case KEY_TOPRIGHT: return "oben rechts";
73 case KEY_BOTTOMLEFT: return "unten links";
74 case KEY_BOTTOMRIGHT: return "unten rechts";
76 case KEY_HOME: return "home";
81 int eRCDeviceInputDev::getKeyCompatibleCode(const eRCKey &key) const
85 case KEY_0: return eRCInput::RC_0;
86 case KEY_1: return eRCInput::RC_1;
87 case KEY_2: return eRCInput::RC_2;
88 case KEY_3: return eRCInput::RC_3;
89 case KEY_4: return eRCInput::RC_4;
90 case KEY_5: return eRCInput::RC_5;
91 case KEY_6: return eRCInput::RC_6;
92 case KEY_7: return eRCInput::RC_7;
93 case KEY_8: return eRCInput::RC_8;
94 case KEY_9: return eRCInput::RC_9;
95 case KEY_RIGHT: return eRCInput::RC_RIGHT;
96 case KEY_LEFT: return eRCInput::RC_LEFT;
97 case KEY_UP: return eRCInput::RC_UP;
98 case KEY_DOWN: return eRCInput::RC_DOWN;
99 case KEY_OK: return eRCInput::RC_OK;
100 case KEY_MUTE: return eRCInput::RC_MUTE;
101 case KEY_POWER: return eRCInput::RC_STANDBY;
102 case KEY_GREEN: return eRCInput::RC_GREEN;
103 case KEY_YELLOW: return eRCInput::RC_YELLOW;
104 case KEY_RED: return eRCInput::RC_RED;
105 case KEY_VOLUMEUP: return eRCInput::RC_PLUS;
106 case KEY_BLUE: return eRCInput::RC_BLUE;
107 case KEY_VOLUMEDOWN: return eRCInput::RC_MINUS;
108 case KEY_HELP: return eRCInput::RC_HELP;
109 case KEY_SETUP: return eRCInput::RC_DBOX;
110 case KEY_HOME: return eRCInput::RC_HOME;
116 class eInputDeviceInit
118 eRCInputEventDriver driver;
119 eRCDeviceInputDev deviceInputDev;
121 eInputDeviceInit(): driver("/dev/input/event0"), deviceInputDev(&driver)
126 eAutoInitP0<eInputDeviceInit> init_rcinputdev(eAutoInitNumbers::rc+1, "input device driver");