]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/lecroy-xstream/api.c
output/csv: use intermediate time_t var, silence compiler warning
[libsigrok.git] / src / hardware / lecroy-xstream / api.c
index 533275a28882deeb7f2fd43e24def96a6a37ac6a..8551351a11a2994270879e9b461b566e08881e70 100644 (file)
@@ -213,8 +213,6 @@ static int config_set(uint32_t key, GVariant *data,
        model = devc->model_config;
        state = devc->model_state;
 
-       ret = SR_ERR_NA;
-
        switch (key) {
        case SR_CONF_LIMIT_FRAMES:
                devc->frame_limit = g_variant_get_uint64(data);
@@ -317,13 +315,15 @@ static int config_list(uint32_t key, GVariant **data,
 
        switch (key) {
        case SR_CONF_SCAN_OPTIONS:
-               return STD_CONFIG_LIST(key, data, sdi, cg, scanopts, NULL, NULL);
+               return STD_CONFIG_LIST(key, data, sdi, cg, scanopts, NO_OPTS, NO_OPTS);
        case SR_CONF_DEVICE_OPTIONS:
                if (!cg)
-                       return STD_CONFIG_LIST(key, data, sdi, cg, NULL, drvopts, devopts);
+                       return STD_CONFIG_LIST(key, data, sdi, cg, NO_OPTS, drvopts, devopts);
                *data = std_gvar_array_u32(ARRAY_AND_SIZE(devopts_cg_analog));
                break;
        case SR_CONF_COUPLING:
+               if (!model)
+                       return SR_ERR_ARG;
                *data = g_variant_new_strv(*model->coupling_options, model->num_coupling_options);
                break;
        case SR_CONF_TRIGGER_SOURCE:
@@ -360,6 +360,14 @@ SR_PRIV int lecroy_xstream_request_data(const struct sr_dev_inst *sdi)
        struct dev_context *devc;
 
        devc = sdi->priv;
+
+       /*
+        * We may be left with an invalid current_channel if acquisition was
+        * already stopped but we are processing the last pending events.
+        */
+       if (!devc->current_channel)
+               return SR_ERR_NA;
+
        ch = devc->current_channel->data;
 
        if (ch->type != SR_CHANNEL_ANALOG)