#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[] = {
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;
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. */
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,
.dev_acquisition_stop = dev_acquisition_stop,
.context = NULL,
};
+SR_REGISTER_DEV_DRIVER(victor_dmm_driver_info);