From 6c6b144fe01a248c0bb848d0daa456ef06c23ba5 Mon Sep 17 00:00:00 2001 From: Jef Driesen Date: Tue, 30 Aug 2016 11:19:54 +0200 Subject: [PATCH] Add a dummy backend for systems without USB HID support. This dummy implemantion is used when building without libusb and hidapi. --- src/usbhid.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/usbhid.c b/src/usbhid.c index f5b602d..44c0886 100644 --- a/src/usbhid.c +++ b/src/usbhid.c @@ -26,11 +26,13 @@ #include #if defined(HAVE_LIBUSB) && !defined(__APPLE__) +#define USBHID #ifdef _WIN32 #define NOGDI #endif #include #elif defined(HAVE_HIDAPI) +#define USBHID #include #endif @@ -81,6 +83,7 @@ syserror(int errcode) dc_status_t dc_usbhid_open (dc_usbhid_t **out, dc_context_t *context, unsigned int vid, unsigned int pid) { +#ifdef USBHID dc_status_t status = DC_STATUS_SUCCESS; dc_usbhid_t *usbhid = NULL; int rc = 0; @@ -273,11 +276,15 @@ error_hid_exit: error_free: free (usbhid); return status; +#else + return DC_STATUS_UNSUPPORTED; +#endif } dc_status_t dc_usbhid_close (dc_usbhid_t *usbhid) { +#ifdef USBHID dc_status_t status = DC_STATUS_SUCCESS; if (usbhid == NULL) @@ -294,11 +301,15 @@ dc_usbhid_close (dc_usbhid_t *usbhid) free (usbhid); return status; +#else + return DC_STATUS_UNSUPPORTED; +#endif } dc_status_t dc_usbhid_set_timeout (dc_usbhid_t *usbhid, int timeout) { +#ifdef USBHID if (usbhid == NULL) return DC_STATUS_INVALIDARGS; @@ -321,11 +332,15 @@ dc_usbhid_set_timeout (dc_usbhid_t *usbhid, int timeout) #endif return DC_STATUS_SUCCESS; +#else + return DC_STATUS_UNSUPPORTED; +#endif } dc_status_t dc_usbhid_read (dc_usbhid_t *usbhid, void *data, size_t size, size_t *actual) { +#ifdef USBHID dc_status_t status = DC_STATUS_SUCCESS; int nbytes = 0; @@ -358,11 +373,15 @@ out: *actual = nbytes; return status; +#else + return DC_STATUS_UNSUPPORTED; +#endif } dc_status_t dc_usbhid_write (dc_usbhid_t *usbhid, const void *data, size_t size, size_t *actual) { +#ifdef USBHID dc_status_t status = DC_STATUS_SUCCESS; int nbytes = 0; @@ -395,4 +414,7 @@ out: *actual = nbytes; return status; +#else + return DC_STATUS_UNSUPPORTED; +#endif }