hardware/libsensors
リビジョン | f7725a96e7d1deacfd8d88821d36ad73d0071996 (tree) |
---|---|
日時 | 2013-03-30 02:37:36 |
作者 | Kyle Evans <kevans@andr...> |
コミッター | Kyle Evans |
add WMI hotkey support
SW_TABLET_MODE & KEY_DIRECTION, these are two events common to tablet
PC's. The first detects when the laptop is entering tablet mode and
rotates the screen to 90 if not already rotated, then back to 0 when
returning to laptop mode. The second is just a single button rotation
that can still be used when the keyboard is covered up.
@@ -36,6 +36,7 @@ struct KbdSensorKeys { | ||
36 | 36 | { "AT Translated Set 2 keyboard", { EV_KEY, KEY_F5, KEY_F8, KEY_F6, KEY_F7, KEY_LEFTALT, KEY_LEFTCTRL, 1 } }, |
37 | 37 | { "AT Translated Set 2 keyboard", { EV_KEY, KEY_F9, KEY_F12, KEY_F10, KEY_F11, KEY_LEFTALT, KEY_LEFTCTRL, 1 } }, |
38 | 38 | { "Asus Laptop extra buttons", { EV_KEY, KEY_F9, KEY_F12, KEY_F10, KEY_F11, KEY_LEFTALT, KEY_LEFTCTRL, 2 } }, |
39 | + { "HP WMI hotkeys", { -1, 0, 0, 0, 0, 0, 0, 3 } }, | |
39 | 40 | }; |
40 | 41 | |
41 | 42 | const int ID_ACCELERATION = (SENSORS_HANDLE_BASE + 0); |
@@ -242,6 +243,18 @@ int SensorPollContext::doPoll(sensors_event_t *data, int count) | ||
242 | 243 | if (enabled && count > 0) |
243 | 244 | break; |
244 | 245 | } |
246 | + } else if (iev.type == EV_KEY && iev.code == KEY_DIRECTION && iev.value) { | |
247 | + if (rotation == ROT_270) | |
248 | + rotation = ROT_0; | |
249 | + else | |
250 | + rotation++; | |
251 | + break; | |
252 | + } else if (iev.type == EV_SW && iev.code == SW_TABLET_MODE) { | |
253 | + if (!iev.value) | |
254 | + rotation = ROT_0; | |
255 | + else if (rotation == ROT_0) | |
256 | + rotation = ROT_90; | |
257 | + break; | |
245 | 258 | } |
246 | 259 | } |
247 | 260 |