#include "libsigrok-internal.h"
#include "protocol.h"
-extern struct sr_dev_driver lascar_el_usb_driver_info;
+extern SR_PRIV struct sr_dev_driver lascar_el_usb_driver_info;
struct sr_dev_driver *di = &lascar_el_usb_driver_info;
static const struct elusb_profile profiles[] = {
sdi->vendor = g_strdup(LASCAR_VENDOR);
sdi->model = g_strdup(profile->modelname);
sdi->version = g_strdup(firmware);
- sdi->driver = di;
if (profile->logformat == LOG_TEMP_RH) {
/* Model this as two channels: temperature and humidity. */
struct libusb_device **devlist;
libusb_device_handle *dev_hdl;
int dummy, i;
+ int ret;
unsigned char config[MAX_CONFIGBLOCK_SIZE];
drvc = di->context;
sdi = NULL;
- libusb_get_device_list(drvc->sr_ctx->libusb_ctx, &devlist);
+ ret = libusb_get_device_list(drvc->sr_ctx->libusb_ctx, &devlist);
+ if (ret < 0)
+ return NULL;
+
for (i = 0; devlist[i]; i++) {
if (libusb_get_bus_number(devlist[i]) != bus ||
libusb_get_device_address(devlist[i]) != address)
libusb_close(dev_hdl);
sdi = lascar_identify(config);
}
+ libusb_free_device_list(devlist, 1);
return sdi;
}
if (sdi->status == SR_ST_STOPPING) {
usb_source_remove(sdi->session, drvc->sr_ctx);
- std_session_send_df_end(sdi, LOG_PREFIX);
+ std_session_send_df_end(sdi);
}
memset(&tv, 0, sizeof(struct timeval));