From 9e581bf0513541de05c68f975919b85d1aeefaa6 Mon Sep 17 00:00:00 2001 From: nirenjan Date: Tue, 17 Jul 2018 16:00:19 -0700 Subject: [PATCH] Let libx52_init also translate libusb error codes --- lib/libx52/x52_common.h | 2 ++ lib/libx52/x52_control.c | 4 ++-- lib/libx52/x52_core.c | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/libx52/x52_common.h b/lib/libx52/x52_common.h index bb94198..866d2c0 100644 --- a/lib/libx52/x52_common.h +++ b/lib/libx52/x52_common.h @@ -104,4 +104,6 @@ static inline uint32_t tst_bit(uint32_t *value, uint32_t bit) return (*value & (1UL << bit)); } +int libx52internal_translate_libusb_error(enum libusb_error errcode); + #endif /* !defined X52JOY_COMMON_H */ diff --git a/lib/libx52/x52_control.c b/lib/libx52/x52_control.c index 6f4e7b4..1d5ddde 100644 --- a/lib/libx52/x52_control.c +++ b/lib/libx52/x52_control.c @@ -17,7 +17,7 @@ #include "x52_common.h" /* Translate a libusb error to a libx52 error */ -static int libx52_translate_libusb_error(enum libusb_error errcode) +int libx52internal_translate_libusb_error(enum libusb_error errcode) { switch (errcode) { case LIBUSB_SUCCESS: @@ -81,7 +81,7 @@ int libx52_vendor_command(libx52_device *x52, uint16_t index, uint16_t value) } } - return libx52_translate_libusb_error(rc); + return libx52internal_translate_libusb_error(rc); } static int libx52_write_line(libx52_device *x52, uint8_t line_index) diff --git a/lib/libx52/x52_core.c b/lib/libx52/x52_core.c index d97cfcb..ed693e9 100644 --- a/lib/libx52/x52_core.c +++ b/lib/libx52/x52_core.c @@ -78,6 +78,7 @@ int libx52_init(libx52_device **dev) if (libx52_check_product(desc.idVendor, desc.idProduct)) { rc = libusb_open(device, &hdl); if (rc) { + rc = libx52internal_translate_libusb_error(rc); goto err_recovery; } @@ -94,6 +95,7 @@ int libx52_init(libx52_device **dev) /* Make sure we actually have an X52 device detected */ if (!x52_dev->hdl) { + rc = LIBX52_ERROR_NO_DEVICE; goto err_recovery; }