]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/link-mso19/api.c
dev_clear(): Consistently name callback 'clear_helper()'.
[libsigrok.git] / src / hardware / link-mso19 / api.c
index 99af8dc006368302ec99758208ee4793ee32801a..00be6ac416b205d6639811628af0bd4d36e03e5c 100644 (file)
@@ -159,21 +159,15 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options)
                sdi->vendor = g_strdup(manufacturer);
                sdi->model = g_strdup(product);
                sdi->version = g_strdup(hwrev);
-               sdi->driver = di;
                sdi->priv = devc;
 
                for (i = 0; i < ARRAY_SIZE(channel_names); i++) {
                        chtype = (i == 0) ? SR_CHANNEL_ANALOG : SR_CHANNEL_LOGIC;
                        sr_channel_new(sdi, i, chtype, TRUE, channel_names[i]);
                }
-
-               //Add the driver
-               struct drv_context *drvc = di->context;
-               drvc->instances = g_slist_append(drvc->instances, sdi);
-               devices = g_slist_append(devices, sdi);
        }
 
-       return devices;
+       return std_scan_complete(di, devices);
 }
 
 static int dev_open(struct sr_dev_inst *sdi)
@@ -186,8 +180,6 @@ static int dev_open(struct sr_dev_inst *sdi)
        if (serial_open(devc->serial, SERIAL_RDWR) != SR_OK)
                return SR_ERR;
 
-       sdi->status = SR_ST_ACTIVE;
-
        /* FIXME: discard serial buffer */
        mso_check_trigger(devc->serial, &devc->trigger_state);
        sr_dbg("Trigger state: 0x%x.", devc->trigger_state);
@@ -244,9 +236,6 @@ static int config_set(int key, GVariant *data, const struct sr_dev_inst *sdi,
 
        devc = sdi->priv;
 
-       if (sdi->status != SR_ST_ACTIVE)
-               return SR_ERR_DEV_CLOSED;
-
        switch (key) {
        case SR_CONF_SAMPLERATE:
                // FIXME
@@ -336,9 +325,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi)
        struct dev_context *devc;
        int ret = SR_ERR;
 
-       if (sdi->status != SR_ST_ACTIVE)
-               return SR_ERR_DEV_CLOSED;
-
        devc = sdi->priv;
 
        if (mso_configure_channels(sdi) != SR_OK) {
@@ -386,7 +372,7 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi)
        /* Reset trigger state. */
        devc->trigger_state = 0x00;
 
-       std_session_send_df_header(sdi, LOG_PREFIX);
+       std_session_send_df_header(sdi);
 
        /* Our first channel is analog, the other 8 are of type 'logic'. */
        /* TODO. */
@@ -413,6 +399,7 @@ static struct sr_dev_driver link_mso19_driver_info = {
        .cleanup = std_cleanup,
        .scan = scan,
        .dev_list = std_dev_list,
+       .dev_clear = std_dev_clear,
        .config_get = config_get,
        .config_set = config_set,
        .config_list = config_list,