X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fyokogawa-dlm%2Fapi.c;h=f80e83dceb7e91537252d05b37a516e12e225ac3;hb=d9a74e97f437d35abc32509a113fe2f5124559ef;hp=16983653a94ee45a4e239c11c69d9de41cb42a86;hpb=612336970dcf03c07a826e90cc562bb506edd029;p=libsigrok.git diff --git a/src/hardware/yokogawa-dlm/api.c b/src/hardware/yokogawa-dlm/api.c index 16983653..f80e83dc 100644 --- a/src/hardware/yokogawa-dlm/api.c +++ b/src/hardware/yokogawa-dlm/api.c @@ -164,6 +164,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) @@ -211,22 +213,18 @@ static int config_get(uint32_t key, GVariant **data, ret = SR_OK; break; case SR_CONF_NUM_VDIV: - if (!cg) { + if (!cg) return SR_ERR_CHANNEL_GROUP; - } else if (cg_type == CG_ANALOG) { - *data = g_variant_new_int32(model->num_ydivs); - ret = SR_OK; - break; - } else { - ret = SR_ERR_NA; - } + if (cg_type != CG_ANALOG) + return SR_ERR_NA; + *data = g_variant_new_int32(model->num_ydivs); + ret = SR_OK; break; case SR_CONF_VDIV: - ret = SR_ERR_NA; - if (!cg) { + if (!cg) return SR_ERR_CHANNEL_GROUP; - } else if (cg_type != CG_ANALOG) - break; + if (cg_type != CG_ANALOG) + return SR_ERR_NA; if ((idx = std_cg_idx(cg, devc->analog_groups, model->analog_channels)) < 0) return SR_ERR_ARG; *data = g_variant_new("(tt)", @@ -247,11 +245,10 @@ static int config_get(uint32_t key, GVariant **data, ret = SR_OK; break; case SR_CONF_COUPLING: - ret = SR_ERR_NA; - if (!cg) { + if (!cg) return SR_ERR_CHANNEL_GROUP; - } else if (cg_type != CG_ANALOG) - break; + if (cg_type != CG_ANALOG) + return SR_ERR_NA; if ((idx = std_cg_idx(cg, devc->analog_groups, model->analog_channels)) < 0) return SR_ERR_ARG; *data = g_variant_new_string((*model->coupling_options)[state->analog_states[idx].coupling]); @@ -289,8 +286,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); @@ -414,6 +409,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: