X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Ftesto%2Fapi.c;h=8e60f6b892fb72e03d4974e31a7a5819767ebe88;hb=dd5c48a6d567a3cac62c4b0058588273bbeea171;hp=9a984cdc84eb664e639fcad6842c2166a9f0e422;hpb=91b77e6b1d126b6406978386ec325f1c6d5bffd8;p=libsigrok.git diff --git a/src/hardware/testo/api.c b/src/hardware/testo/api.c index 9a984cdc..8e60f6b8 100644 --- a/src/hardware/testo/api.c +++ b/src/hardware/testo/api.c @@ -22,8 +22,6 @@ #include "protocol.h" #define SERIALCOMM "115200/8n1" - -SR_PRIV struct sr_dev_driver testo_driver_info; static int dev_acquisition_stop(struct sr_dev_inst *sdi); static const uint32_t scanopts[] = { @@ -43,11 +41,6 @@ static const struct testo_model models[] = { { "435", 9, TESTO_x35_REQUEST }, }; -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; @@ -150,27 +143,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; if (libusb_has_capability(LIBUSB_CAP_SUPPORTS_DETACH_KERNEL_DRIVER)) { if (libusb_kernel_driver_active(usb->devhdl, 0) == 1) { @@ -443,11 +422,11 @@ static int dev_acquisition_stop(struct sr_dev_inst *sdi) return SR_OK; } -SR_PRIV struct sr_dev_driver testo_driver_info = { +static struct sr_dev_driver testo_driver_info = { .name = "testo", .longname = "Testo", .api_version = 1, - .init = init, + .init = std_init, .cleanup = std_cleanup, .scan = scan, .dev_list = std_dev_list, @@ -460,3 +439,4 @@ SR_PRIV struct sr_dev_driver testo_driver_info = { .dev_acquisition_stop = dev_acquisition_stop, .context = NULL, }; +SR_REGISTER_DEV_DRIVER(testo_driver_info);