X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fchronovu-la%2Fapi.c;h=5c58e4f96b1e3027f8860fd50aa39ca8e3ccb764;hb=dd5c48a6d567a3cac62c4b0058588273bbeea171;hp=932c9430039b306a0ecf8b08a582614a8bf57f3f;hpb=b0baddef5620c5783080d0e8811e668fbc2b38f5;p=libsigrok.git diff --git a/src/hardware/chronovu-la/api.c b/src/hardware/chronovu-la/api.c index 932c9430..5c58e4f9 100644 --- a/src/hardware/chronovu-la/api.c +++ b/src/hardware/chronovu-la/api.c @@ -21,9 +21,6 @@ #include #include "protocol.h" -SR_PRIV struct sr_dev_driver chronovu_la_driver_info; -static struct sr_dev_driver *di = &chronovu_la_driver_info; - static const uint32_t drvopts[] = { SR_CONF_LOGIC_ANALYZER, }; @@ -64,9 +61,9 @@ static int dev_clear(const struct sr_dev_driver *di) return std_dev_clear(di, clear_helper); } -static int add_device(int model, struct libusb_device_descriptor *des, - const char *serial_num, const char *connection_id, - libusb_device *usbdev, GSList **devices) +static int add_device(struct sr_dev_driver *di, int model, + struct libusb_device_descriptor *des, const char *serial_num, + const char *connection_id, libusb_device *usbdev, GSList **devices) { int ret; unsigned int i; @@ -228,7 +225,7 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) libusb_get_bus_number(devlist[i]), libusb_get_device_address(devlist[i]), connection_id); - if ((ret = add_device(model, &des, serial_num, connection_id, + if ((ret = add_device(di, model, &des, serial_num, connection_id, devlist[i], &devices)) < 0) { sr_dbg("Failed to add device: %d.", ret); } @@ -330,8 +327,9 @@ static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *s *data = g_variant_new_string(str); break; case SR_CONF_SAMPLERATE: - if (!sdi || !(devc = sdi->priv)) + if (!sdi) return SR_ERR_BUG; + devc = sdi->priv; *data = g_variant_new_uint64(devc->cur_samplerate); break; default: @@ -398,8 +396,9 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst * devopts, ARRAY_SIZE(devopts), sizeof(uint32_t)); break; case SR_CONF_SAMPLERATE: - if (!sdi || !sdi->priv || !(devc = sdi->priv)) + if (!sdi) return SR_ERR_BUG; + devc = sdi->priv; cv_fill_samplerates_if_needed(sdi); g_variant_builder_init(&gvb, G_VARIANT_TYPE("a{sv}")); gvar = g_variant_new_fixed_array(G_VARIANT_TYPE("t"), @@ -567,7 +566,7 @@ static int dev_acquisition_stop(struct sr_dev_inst *sdi) return SR_OK; } -SR_PRIV struct sr_dev_driver chronovu_la_driver_info = { +static struct sr_dev_driver chronovu_la_driver_info = { .name = "chronovu-la", .longname = "ChronoVu LA8/LA16", .api_version = 1, @@ -585,3 +584,4 @@ SR_PRIV struct sr_dev_driver chronovu_la_driver_info = { .dev_acquisition_stop = dev_acquisition_stop, .context = NULL, }; +SR_REGISTER_DEV_DRIVER(chronovu_la_driver_info);