X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fhantek-dso%2Fapi.c;h=dc94f033c806c527e8277964dd3b83a983f15597;hb=13d2ac54f4232caf768268817c8cbb2f64dcb0db;hp=c94fbc5c848c3c04d42b2ebd93fcba02192f1278;hpb=caeb8d7a9d2d5a2497692a23caf066f33f7a34c3;p=libsigrok.git diff --git a/src/hardware/hantek-dso/api.c b/src/hardware/hantek-dso/api.c index c94fbc5c..dc94f033 100644 --- a/src/hardware/hantek-dso/api.c +++ b/src/hardware/hantek-dso/api.c @@ -54,21 +54,21 @@ static const uint32_t drvopts[] = { static const uint32_t devopts[] = { SR_CONF_CONTINUOUS, - SR_CONF_LIMIT_FRAMES | SR_CONF_SET, SR_CONF_CONN | SR_CONF_GET, + SR_CONF_LIMIT_FRAMES | SR_CONF_SET, SR_CONF_TIMEBASE | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST, - SR_CONF_BUFFERSIZE | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST, + SR_CONF_NUM_HDIV | SR_CONF_GET, + SR_CONF_HORIZ_TRIGGERPOS | SR_CONF_GET | SR_CONF_SET, SR_CONF_TRIGGER_SOURCE | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST, SR_CONF_TRIGGER_SLOPE | SR_CONF_GET | SR_CONF_SET, - SR_CONF_HORIZ_TRIGGERPOS | SR_CONF_GET | SR_CONF_SET, - SR_CONF_NUM_HDIV | SR_CONF_GET, + SR_CONF_BUFFERSIZE | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST, SR_CONF_NUM_VDIV | SR_CONF_GET, }; static const uint32_t devopts_cg[] = { - SR_CONF_FILTER | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST, SR_CONF_VDIV | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST, SR_CONF_COUPLING | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST, + SR_CONF_FILTER | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST, }; static const char *channel_names[] = { @@ -161,8 +161,6 @@ static const char *coupling[] = { "GND", }; -static int dev_acquisition_stop(struct sr_dev_inst *sdi); - static struct sr_dev_inst *dso_dev_new(const struct dso_profile *prof) { struct sr_dev_inst *sdi; @@ -234,19 +232,15 @@ static int configure_channels(const struct sr_dev_inst *sdi) return SR_OK; } -static void clear_dev_context(void *priv) +static void clear_helper(struct dev_context *devc) { - struct dev_context *devc; - - devc = priv; g_free(devc->triggersource); g_slist_free(devc->enabled_channels); - } static int dev_clear(const struct sr_dev_driver *di) { - return std_dev_clear(di, clear_dev_context); + return std_dev_clear_with_callback(di, (std_dev_clear_callback)clear_helper); } static GSList *scan(struct sr_dev_driver *di, GSList *options) @@ -489,14 +483,10 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd struct dev_context *devc; double tmp_double; uint64_t tmp_u64, p, q; - int tmp_int, ch_idx, ret; + int tmp_int, ch_idx; unsigned int i; const char *tmp_str; - if (sdi->status != SR_ST_ACTIVE) - return SR_ERR_DEV_CLOSED; - - ret = SR_OK; devc = sdi->priv; if (!cg) { switch (key) { @@ -514,7 +504,7 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd tmp_double = g_variant_get_double(data); if (tmp_double < 0.0 || tmp_double > 1.0) { sr_err("Trigger position should be between 0.0 and 1.0."); - ret = SR_ERR_ARG; + return SR_ERR_ARG; } else devc->triggerposition = tmp_double; break; @@ -527,7 +517,7 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd } } if (i == NUM_BUFFER_SIZES) - ret = SR_ERR_ARG; + return SR_ERR_ARG; break; case SR_CONF_TIMEBASE: g_variant_get(data, "(tt)", &p, &q); @@ -541,7 +531,7 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd if (tmp_int >= 0) devc->timebase = tmp_int; else - ret = SR_ERR_ARG; + return SR_ERR_ARG; break; case SR_CONF_TRIGGER_SOURCE: tmp_str = g_variant_get_string(data, NULL); @@ -552,11 +542,10 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd } } if (trigger_sources[i] == 0) - ret = SR_ERR_ARG; + return SR_ERR_ARG; break; default: - ret = SR_ERR_NA; - break; + return SR_ERR_NA; } } else { if (sdi->channel_groups->data == cg) @@ -581,7 +570,7 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd if (tmp_int >= 0) { devc->voltage[ch_idx] = tmp_int; } else - ret = SR_ERR_ARG; + return SR_ERR_ARG; break; case SR_CONF_COUPLING: tmp_str = g_variant_get_string(data, NULL); @@ -592,15 +581,14 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd } } if (coupling[i] == 0) - ret = SR_ERR_ARG; + return SR_ERR_ARG; break; default: - ret = SR_ERR_NA; - break; + return SR_ERR_NA; } } - return ret; + return SR_OK; } static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst *sdi, @@ -956,9 +944,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi) struct sr_dev_driver *di = sdi->driver; struct drv_context *drvc = di->context; - if (sdi->status != SR_ST_ACTIVE) - return SR_ERR_DEV_CLOSED; - devc = sdi->priv; if (configure_channels(sdi) != SR_OK) { @@ -984,9 +969,6 @@ static int dev_acquisition_stop(struct sr_dev_inst *sdi) { struct dev_context *devc; - if (sdi->status != SR_ST_ACTIVE) - return SR_ERR; - devc = sdi->priv; devc->dev_state = STOPPING;