From f7725a96e7d1deacfd8d88821d36ad73d0071996 Mon Sep 17 00:00:00 2001 From: Kyle Evans Date: Tue, 12 Feb 2013 13:38:26 -0500 Subject: [PATCH] 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. --- kbdsensor.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/kbdsensor.cpp b/kbdsensor.cpp index c2ebc55..f24ba80 100644 --- a/kbdsensor.cpp +++ b/kbdsensor.cpp @@ -36,6 +36,7 @@ struct KbdSensorKeys { { "AT Translated Set 2 keyboard", { EV_KEY, KEY_F5, KEY_F8, KEY_F6, KEY_F7, KEY_LEFTALT, KEY_LEFTCTRL, 1 } }, { "AT Translated Set 2 keyboard", { EV_KEY, KEY_F9, KEY_F12, KEY_F10, KEY_F11, KEY_LEFTALT, KEY_LEFTCTRL, 1 } }, { "Asus Laptop extra buttons", { EV_KEY, KEY_F9, KEY_F12, KEY_F10, KEY_F11, KEY_LEFTALT, KEY_LEFTCTRL, 2 } }, + { "HP WMI hotkeys", { -1, 0, 0, 0, 0, 0, 0, 3 } }, }; const int ID_ACCELERATION = (SENSORS_HANDLE_BASE + 0); @@ -242,6 +243,18 @@ int SensorPollContext::doPoll(sensors_event_t *data, int count) if (enabled && count > 0) break; } + } else if (iev.type == EV_KEY && iev.code == KEY_DIRECTION && iev.value) { + if (rotation == ROT_270) + rotation = ROT_0; + else + rotation++; + break; + } else if (iev.type == EV_SW && iev.code == SW_TABLET_MODE) { + if (!iev.value) + rotation = ROT_0; + else if (rotation == ROT_0) + rotation = ROT_90; + break; } } -- 2.11.0