X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fvictor-dmm%2Fapi.c;h=6a70b14537a1659cd895e3a64c3bc3c08c1186c5;hb=dd5c48a6d567a3cac62c4b0058588273bbeea171;hp=aefbe8b2da24ed1f0b85828c7c46cb47cf27de2b;hpb=cf9e86bc74ae5bd916b8d1abf27205c36585119f;p=libsigrok.git diff --git a/src/hardware/victor-dmm/api.c b/src/hardware/victor-dmm/api.c index aefbe8b2..6a70b145 100644 --- a/src/hardware/victor-dmm/api.c +++ b/src/hardware/victor-dmm/api.c @@ -31,8 +31,6 @@ #define VICTOR_VENDOR "Victor" #define VICTOR_INTERFACE 0 #define VICTOR_ENDPOINT (LIBUSB_ENDPOINT_IN | 1) - -SR_PRIV struct sr_dev_driver victor_dmm_driver_info; static int dev_acquisition_stop(struct sr_dev_inst *sdi); static const uint32_t drvopts[] = { @@ -50,11 +48,6 @@ static const uint32_t devopts[] = { SR_CONF_CONN | SR_CONF_GET, }; -static int init(struct sr_dev_driver *di, struct sr_context *sr_ctx) -{ - return std_init(sr_ctx, di, LOG_PREFIX); -} - static GSList *scan(struct sr_dev_driver *di, GSList *options) { struct drv_context *drvc; @@ -107,28 +100,13 @@ static int dev_open(struct sr_dev_inst *sdi) struct sr_dev_driver *di = sdi->driver; struct drv_context *drvc = di->context; struct sr_usb_dev_inst *usb; - libusb_device **devlist; - int ret, i; - char connection_id[64]; + int ret; usb = sdi->conn; - libusb_get_device_list(drvc->sr_ctx->libusb_ctx, &devlist); - for (i = 0; devlist[i]; i++) { - usb_get_port_path(devlist[i], connection_id, sizeof(connection_id)); - if (strcmp(sdi->connection_id, connection_id)) - continue; - if ((ret = libusb_open(devlist[i], &usb->devhdl))) { - sr_err("Failed to open device: %s.", libusb_error_name(ret)); - return SR_ERR; - } - break; - } - libusb_free_device_list(devlist, 1); - if (!devlist[i]) { - sr_err("Device not found."); - return SR_ERR; - } + ret = sr_usb_open(drvc->sr_ctx->libusb_ctx, usb); + if (ret != SR_OK) + return ret; /* The device reports as HID class, so the kernel would have * claimed it. */ @@ -357,11 +335,11 @@ static int dev_acquisition_stop(struct sr_dev_inst *sdi) return SR_OK; } -SR_PRIV struct sr_dev_driver victor_dmm_driver_info = { +static struct sr_dev_driver victor_dmm_driver_info = { .name = "victor-dmm", .longname = "Victor DMMs", .api_version = 1, - .init = init, + .init = std_init, .cleanup = std_cleanup, .scan = scan, .dev_list = std_dev_list, @@ -375,3 +353,4 @@ SR_PRIV struct sr_dev_driver victor_dmm_driver_info = { .dev_acquisition_stop = dev_acquisition_stop, .context = NULL, }; +SR_REGISTER_DEV_DRIVER(victor_dmm_driver_info);