New API Method: Clear Debug Log

this method can be used to clear the history of events stored for debug logs.
This helps creating test cases without having to trim the files.

BUG=chromium:332473
TEST=tested in combination with CL on xf86-input-cmt that adds a property to clear the log

Change-Id: Ib4a4b8c4e56f9705f481e0b820ee987816a128bc
Reviewed-on: https://chromium-review.googlesource.com/185258
Reviewed-by: Andrew de los Reyes <adlr@chromium.org>
Commit-Queue: Dennis Kempin <denniskempin@chromium.org>
Tested-by: Dennis Kempin <denniskempin@chromium.org>
diff --git a/include/libevdev/libevdev_event.h b/include/libevdev/libevdev_event.h
index 4fdf415..d31239f 100644
--- a/include/libevdev/libevdev_event.h
+++ b/include/libevdev/libevdev_event.h
@@ -39,6 +39,7 @@
 void Event_Open(EvdevPtr);
 bool Event_Process(EvdevPtr, struct input_event*);
 void Event_Dump_Debug_Log(void *);
+void Event_Clear_Debug_Log(void *);
 
 int Event_Get_Left(EvdevPtr);
 int Event_Get_Right(EvdevPtr);
diff --git a/src/libevdev_event.c b/src/libevdev_event.c
index b51056a..f9e9d88 100644
--- a/src/libevdev_event.c
+++ b/src/libevdev_event.c
@@ -513,6 +513,19 @@
 }
 
 /**
+ * Clear Debug Buffer
+ */
+void
+Event_Clear_Debug_Log(void* vinfo)
+{
+    EvdevPtr device = (EvdevPtr) vinfo;
+    EventStatePtr evstate = device->evstate;
+
+    memset(evstate->debug_buf, 0, sizeof(evstate->debug_buf));
+    evstate->debug_buf_tail = 0;
+}
+
+/**
  * Clear EV_REL event state.  This function should be called after a EV_SYN
  * event is processed because EV_REL event state is not accumulative.
  */