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