New function Event_Get_Button
Allows to check the state of arbitrary buttons.
BUG=chromium:285663
TEST=test in conjunction with CL on CMT
Change-Id: Ic1957ce5ea4ecac48f2b3218c6e498cc05f45c2d
Reviewed-on: https://chromium-review.googlesource.com/187668
Reviewed-by: Andrew de los Reyes <adlr@chromium.org>
Tested-by: Dennis Kempin <denniskempin@chromium.org>
Commit-Queue: Dennis Kempin <denniskempin@chromium.org>
diff --git a/include/libevdev/libevdev_event.h b/include/libevdev/libevdev_event.h
old mode 100644
new mode 100755
index d31239f..7d7c4ee
--- a/include/libevdev/libevdev_event.h
+++ b/include/libevdev/libevdev_event.h
@@ -58,6 +58,7 @@
int Event_Get_Button_Left(EvdevPtr);
int Event_Get_Button_Middle(EvdevPtr);
int Event_Get_Button_Right(EvdevPtr);
+int Event_Get_Button(EvdevPtr, int button);
void Event_Sync_State(EvdevPtr);
const char* Event_To_String(int type, int code);
const char* Event_Type_To_String(int type);
diff --git a/src/libevdev_event.c b/src/libevdev_event.c
old mode 100644
new mode 100755
index f9e9d88..ef7e342
--- a/src/libevdev_event.c
+++ b/src/libevdev_event.c
@@ -180,19 +180,25 @@
int
Event_Get_Button_Left(EvdevPtr device)
{
- return TestBit(BTN_LEFT, device->key_state_bitmask);
+ return Event_Get_Button(device, BTN_LEFT);
}
int
Event_Get_Button_Middle(EvdevPtr device)
{
- return TestBit(BTN_MIDDLE, device->key_state_bitmask);
+ return Event_Get_Button(device, BTN_MIDDLE);
}
int
Event_Get_Button_Right(EvdevPtr device)
{
- return TestBit(BTN_RIGHT, device->key_state_bitmask);
+ return Event_Get_Button(device, BTN_RIGHT);
+}
+
+int
+Event_Get_Button(EvdevPtr device, int button)
+{
+ return TestBit(button, device->key_state_bitmask);
}
#define CASE_RETURN(s) \
@@ -249,6 +255,10 @@
CASE_RETURN(BTN_LEFT);
CASE_RETURN(BTN_RIGHT);
CASE_RETURN(BTN_MIDDLE);
+ CASE_RETURN(BTN_BACK);
+ CASE_RETURN(BTN_FORWARD);
+ CASE_RETURN(BTN_EXTRA);
+ CASE_RETURN(BTN_SIDE);
CASE_RETURN(BTN_TOUCH);
CASE_RETURN(BTN_TOOL_FINGER);
CASE_RETURN(BTN_TOOL_DOUBLETAP);