summaryrefslogtreecommitdiff
path: root/test/test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/test.cc')
-rw-r--r--test/test.cc44
1 files changed, 44 insertions, 0 deletions
diff --git a/test/test.cc b/test/test.cc
new file mode 100644
index 0000000..4a6e3ee
--- /dev/null
+++ b/test/test.cc
@@ -0,0 +1,44 @@
+#include <stdio.h>
+#include <time.h>
+
+#include <libusbhp.h>
+
+static void attach_fn(struct libusbhp_device_t *device, void *user_data)
+{
+ printf("attach\n");
+ if(device) printf(" (%04x/%04x)\n", device->idVendor, device->idProduct);
+}
+
+static void detach_fn(struct libusbhp_device_t *device, void *user_data)
+{
+ printf("detach\n");
+ if(device) printf(" (%04x/%04x)\n", device->idVendor, device->idProduct);
+}
+
+int main(int args, char* argv[])
+{
+ struct libusbhp_t *handle;
+
+ int ret = libusbhp_init(&handle);
+ if(ret != 0) {
+ printf("Could not initialise handle.\n");
+ return 1;
+ }
+
+ libusbhp_register_hotplug_listeners(handle, attach_fn, detach_fn, NULL);
+
+ // 100ms timeout
+ struct timeval tv;
+ tv.tv_sec = 0;
+ tv.tv_usec = 100000;
+
+ while(1) {
+ int ret = libusbhp_handle_events_timeout(handle, &tv);
+ if(ret) printf("handle_events failed [%d]...\n", ret);
+ printf("loop\n");
+ }
+
+ libusbhp_exit(handle);
+
+ return 0;
+}