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);