Update calls to libusb_set_debug

With the release of libusb 1.0.22, `libusb_set_debug` has been
deprecated and replaced by `libusb_set_option`. This function is a new
generic API to add additional functionality in the future without having
to introduce new functions.

This change checks for `LIBUSB_API_VERSION` of at least `0x01000106`,
which is the version corresponding to 1.0.22, and if it matches, it
replaces the calls to `libusb_set_debug` with equivalent calls to
`libusb_set_option`.
debian-packaging
nirenjan 2019-02-01 21:31:57 -08:00
parent 1d51429f10
commit 40c14fed24
3 changed files with 39 additions and 0 deletions

View File

@ -8,6 +8,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <libusb.h>
#include "libusbx52.h"
@ -129,6 +130,26 @@ void libusb_set_debug(libusb_context *ctx, int level)
ctx->debug_level = level;
}
#if defined(LIBUSB_API_VERSION) && (LIBUSB_API_VERSION >= 0x01000106)
int libusb_set_option(libusb_context *ctx, enum libusb_option option, ...)
{
va_list args;
va_start(args, option);
/* Check if the option was provided */
if (option == LIBUSB_OPTION_LOG_LEVEL) {
int level = va_arg(args, int);
/* Set the debug level */
ctx->debug_level = level;
}
va_end(args);
return 0;
}
#endif
ssize_t libusb_get_device_list(libusb_context *ctx, libusb_device ***list)
{
/* Allocate a list of num_devices, each pointing to a corresponding

View File

@ -41,7 +41,16 @@ static libusb_device_handle *libusbx52_init(void)
return NULL;
}
#if defined(LIBUSB_API_VERSION) && (LIBUSB_API_VERSION >= 0x01000106)
/*
* Use the libusb_set_option flag instead of libusb_set_debug. This
* was introduced in libusb 1.0.22
*/
libusb_set_option(global_context, LIBUSB_OPTION_LOG_LEVEL,
LIBUSB_LOG_LEVEL_ERROR);
#else
libusb_set_debug(global_context, LIBUSB_LOG_LEVEL_ERROR);
#endif
count = libusb_get_device_list(global_context, &list);
for (i = 0; i < count; i++) {

View File

@ -69,7 +69,16 @@ int libx52_init(libx52_device **dev)
rc = LIBX52_ERROR_INIT_FAILURE;
goto err_recovery;
}
#if defined(LIBUSB_API_VERSION) && (LIBUSB_API_VERSION >= 0x01000106)
/*
* Use the libusb_set_option flag instead of libusb_set_debug. This
* was introduced in libusb 1.0.22
*/
libusb_set_option(x52_dev->ctx, LIBUSB_OPTION_LOG_LEVEL,
LIBUSB_LOG_LEVEL_WARNING);
#else
libusb_set_debug(x52_dev->ctx, LIBUSB_LOG_LEVEL_WARNING);
#endif
count = libusb_get_device_list(x52_dev->ctx, &list);
for (i = 0; i < count; i++) {