]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/yokogawa-dlm/api.c
output/csv: use intermediate time_t var, silence compiler warning
[libsigrok.git] / src / hardware / yokogawa-dlm / api.c
index 9d5660761b0549ff0e19c5a440fe054a8126be79..c1fe1b019e0a27ae4d1b251a2ef6726c01d862b1 100644 (file)
@@ -53,6 +53,7 @@ static const uint32_t devopts_cg_analog[] = {
 };
 
 static const uint32_t devopts_cg_digital[] = {
+       /* EMPTY */
 };
 
 enum {
@@ -164,6 +165,8 @@ static int check_channel_group(struct dev_context *devc,
 {
        const struct scope_config *model;
 
+       if (!devc)
+               return CG_INVALID;
        model = devc->model_config;
 
        if (!cg)
@@ -284,8 +287,6 @@ static int config_set(uint32_t key, GVariant *data,
        state = devc->model_state;
        update_sample_rate = FALSE;
 
-       ret = SR_ERR_NA;
-
        switch (key) {
        case SR_CONF_LIMIT_FRAMES:
                devc->frame_limit = g_variant_get_uint64(data);
@@ -409,6 +410,8 @@ static int config_list(uint32_t key, GVariant **data,
                        *data = g_variant_new_strv(ARRAY_AND_SIZE(dlm_trigger_slopes));
                        return SR_OK;
                case SR_CONF_NUM_HDIV:
+                       if (!model)
+                               return SR_ERR_ARG;
                        *data = g_variant_new_uint32(model->num_xdivs);
                        return SR_OK;
                default:
@@ -421,12 +424,19 @@ static int config_list(uint32_t key, GVariant **data,
 
        switch (key) {
        case SR_CONF_DEVICE_OPTIONS:
-               if (cg_type == CG_ANALOG)
+               if (cg_type == CG_ANALOG) {
                        *data = std_gvar_array_u32(ARRAY_AND_SIZE(devopts_cg_analog));
-               else if (cg_type == CG_DIGITAL)
+                       break;
+               }
+               if (cg_type == CG_DIGITAL) {
+                       if (!ARRAY_SIZE(devopts_cg_digital)) {
+                               *data = std_gvar_array_u32(NULL, 0);
+                               break;
+                       }
                        *data = std_gvar_array_u32(ARRAY_AND_SIZE(devopts_cg_digital));
-               else
-                       *data = std_gvar_array_u32(NULL, 0);
+                       break;
+               }
+               *data = std_gvar_array_u32(NULL, 0);
                break;
        case SR_CONF_COUPLING:
                if (!cg)