X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fhardware%2Fgmc-mh-1x-2x%2Fapi.c;h=3d18ebdab81858057d0ec04311b46638a35631a8;hb=15a5bfe4815f9991a9bb532c05d6244a1818a0e4;hp=28927fc53d58247850e0e4308f63d9677af29412;hpb=c50805d59ce85e00ef263c0a1edad2487bb8a9fe;p=libsigrok.git diff --git a/src/hardware/gmc-mh-1x-2x/api.c b/src/hardware/gmc-mh-1x-2x/api.c index 28927fc5..3d18ebda 100644 --- a/src/hardware/gmc-mh-1x-2x/api.c +++ b/src/hardware/gmc-mh-1x-2x/api.c @@ -32,9 +32,6 @@ #define SERIALCOMM_2X "9600/8n1/dtr=1/rts=1/flow=0" #define VENDOR_GMC "Gossen Metrawatt" -SR_PRIV struct sr_dev_driver gmc_mh_1x_2x_rs232_driver_info; -SR_PRIV struct sr_dev_driver gmc_mh_2x_bd232_driver_info; - static const uint32_t scanopts[] = { SR_CONF_CONN, SR_CONF_SERIALCOMM, @@ -66,11 +63,6 @@ static const uint32_t devopts_bd[] = { * Need to implement device-specific lists. */ -static int init(struct sr_dev_driver *di, struct sr_context *sr_ctx) -{ - return std_init(sr_ctx, di, LOG_PREFIX); -} - /** * Read single byte from serial port. * @@ -163,7 +155,6 @@ static GSList *scan_1x_2x_rs232(struct sr_dev_driver *di, GSList *options) devices = NULL; drvc = di->context; - drvc->instances = NULL; conn = serialcomm = NULL; serialcomm_given = FALSE; @@ -226,13 +217,11 @@ static GSList *scan_1x_2x_rs232(struct sr_dev_driver *di, GSList *options) devc->settings_ok = FALSE; sdi->conn = serial; sdi->priv = devc; - sdi->driver = di; sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1"); - drvc->instances = g_slist_append(drvc->instances, sdi); devices = g_slist_append(devices, sdi); } - return devices; + return std_scan_complete(di, devices); } /** @@ -257,7 +246,6 @@ static GSList *scan_2x_bd232(struct sr_dev_driver *di, GSList *options) devices = NULL; drvc = di->context; - drvc->instances = NULL; sr_spew("scan_2x_bd232() called!"); @@ -320,9 +308,7 @@ static GSList *scan_2x_bd232(struct sr_dev_driver *di, GSList *options) sdi->version = g_strdup_printf("Firmware %d.%d", devc->fw_ver_maj, devc->fw_ver_min); sdi->conn = serial; sdi->priv = devc; - sdi->driver = di; sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1"); - drvc->instances = g_slist_append(drvc->instances, sdi); devices = g_slist_append(devices, sdi); devc = g_malloc0(sizeof(struct dev_context)); sdi = g_malloc0(sizeof(struct sr_dev_inst)); @@ -337,7 +323,7 @@ static GSList *scan_2x_bd232(struct sr_dev_driver *di, GSList *options) sr_dev_inst_free(sdi); } - return devices; + return std_scan_complete(di, devices); exit_err: sr_info("scan_2x_bd232(): Error!"); @@ -351,11 +337,6 @@ exit_err: return NULL; } -static GSList *dev_list(const struct sr_dev_driver *di) -{ - return ((struct drv_context *)(di->context))->instances; -} - static int dev_close(struct sr_dev_inst *sdi) { struct dev_context *devc; @@ -374,11 +355,6 @@ static int dev_close(struct sr_dev_inst *sdi) return SR_OK; } -static int cleanup(const struct sr_dev_driver *di) -{ - return std_dev_clear(di, NULL); -} - static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *sdi, const struct sr_channel_group *cg) { @@ -387,9 +363,11 @@ static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *s (void)cg; - if (!sdi || !(devc = sdi->priv)) + if (!sdi) return SR_ERR_ARG; + devc = sdi->priv; + ret = SR_OK; switch (key) { case SR_CONF_LIMIT_SAMPLES: @@ -524,14 +502,14 @@ static int dev_acquisition_stop(struct sr_dev_inst *sdi) sdi->conn, LOG_PREFIX); } -SR_PRIV struct sr_dev_driver gmc_mh_1x_2x_rs232_driver_info = { +static struct sr_dev_driver gmc_mh_1x_2x_rs232_driver_info = { .name = "gmc-mh-1x-2x-rs232", .longname = "Gossen Metrawatt Metrahit 1x/2x, RS232 interface", .api_version = 1, - .init = init, - .cleanup = cleanup, + .init = std_init, + .cleanup = std_cleanup, .scan = scan_1x_2x_rs232, - .dev_list = dev_list, + .dev_list = std_dev_list, .dev_clear = NULL, .config_get = config_get, .config_set = config_set, @@ -542,15 +520,16 @@ SR_PRIV struct sr_dev_driver gmc_mh_1x_2x_rs232_driver_info = { .dev_acquisition_stop = dev_acquisition_stop, .context = NULL, }; +SR_REGISTER_DEV_DRIVER(gmc_mh_1x_2x_rs232_driver_info); -SR_PRIV struct sr_dev_driver gmc_mh_2x_bd232_driver_info = { +static struct sr_dev_driver gmc_mh_2x_bd232_driver_info = { .name = "gmc-mh-2x-bd232", .longname = "Gossen Metrawatt Metrahit 2x, BD232/SI232-II interface", .api_version = 1, - .init = init, - .cleanup = cleanup, + .init = std_init, + .cleanup = std_cleanup, .scan = scan_2x_bd232, - .dev_list = dev_list, + .dev_list = std_dev_list, .dev_clear = NULL, .config_get = config_get, .config_set = config_set, @@ -561,3 +540,4 @@ SR_PRIV struct sr_dev_driver gmc_mh_2x_bd232_driver_info = { .dev_acquisition_stop = dev_acquisition_stop, .context = NULL, }; +SR_REGISTER_DEV_DRIVER(gmc_mh_2x_bd232_driver_info);