X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Frdtech-um%2Fapi.c;h=768596a647679325c443ec4ce06f420d8ff550be;hb=8ff25aa9b285edca280b2abc95382a8a5ba785d6;hp=863ba972cd99ea16807a709a05645db1ff45bf6a;hpb=c1f4f5894782580e78c47b68b9e2d0da2723e829;p=libsigrok.git diff --git a/src/hardware/rdtech-um/api.c b/src/hardware/rdtech-um/api.c index 863ba972..768596a6 100644 --- a/src/hardware/rdtech-um/api.c +++ b/src/hardware/rdtech-um/api.c @@ -67,19 +67,18 @@ static GSList *rdtech_um_scan(struct sr_dev_driver *di, goto err_out_serial; } - devc = g_malloc0(sizeof(struct dev_context)); - sdi = g_malloc0(sizeof(struct sr_dev_inst)); - + devc = g_malloc0(sizeof(*devc)); sr_sw_limits_init(&devc->limits); devc->profile = p; + sdi = g_malloc0(sizeof(*sdi)); + sdi->priv = devc; sdi->status = SR_ST_INACTIVE; sdi->vendor = g_strdup("RDTech"); sdi->model = g_strdup(p->model_name); sdi->version = NULL; sdi->inst_type = SR_INST_SERIAL; sdi->conn = serial; - sdi->priv = devc; for (ch_idx = 0; (name = p->channels[ch_idx].name); ch_idx++) sr_channel_new(sdi, ch_idx, SR_CHANNEL_ANALOG, TRUE, name); @@ -103,22 +102,10 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) { const char *conn; const char *serialcomm; - GSList *l; - struct sr_config *src; conn = NULL; serialcomm = RDTECH_UM_SERIALCOMM; - for (l = options; l; l = l->next) { - src = l->data; - switch (src->key) { - case SR_CONF_CONN: - conn = g_variant_get_string(src->data, NULL); - break; - case SR_CONF_SERIALCOMM: - serialcomm = g_variant_get_string(src->data, NULL); - break; - } - } + (void)sr_serial_extract_options(options, &conn, &serialcomm); if (!conn) return NULL;