X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fchronovu-la8%2Fapi.c;h=0fc90353016c1ad54db726acd0d461bd40eaaf78;hb=860bc59b0ff598f37f23a1882bf5822ef7c86382;hp=13ed80624c27d9b4f366acadd5e6c05526c9c874;hpb=6078d2c99619233173d4536b74258c15e6be73ba;p=libsigrok.git diff --git a/hardware/chronovu-la8/api.c b/hardware/chronovu-la8/api.c index 13ed8062..0fc90353 100644 --- a/hardware/chronovu-la8/api.c +++ b/hardware/chronovu-la8/api.c @@ -66,14 +66,14 @@ static void clear_helper(void *priv) g_free(devc->final_buf); } -static int clear_instances(void) +static int dev_clear(void) { return std_dev_clear(di, clear_helper); } static int init(struct sr_context *sr_ctx) { - return std_hw_init(sr_ctx, di, LOG_PREFIX); + return std_init(sr_ctx, di, LOG_PREFIX); } static GSList *scan(GSList *options) @@ -259,13 +259,16 @@ static int dev_close(struct sr_dev_inst *sdi) static int cleanup(void) { - return clear_instances(); + return dev_clear(); } -static int config_get(int id, GVariant **data, const struct sr_dev_inst *sdi) +static int config_get(int id, GVariant **data, const struct sr_dev_inst *sdi, + const struct sr_probe_group *probe_group) { struct dev_context *devc; + (void)probe_group; + switch (id) { case SR_CONF_SAMPLERATE: if (sdi) { @@ -283,10 +286,13 @@ static int config_get(int id, GVariant **data, const struct sr_dev_inst *sdi) return SR_OK; } -static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi) +static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi, + const struct sr_probe_group *probe_group) { struct dev_context *devc; + (void)probe_group; + if (sdi->status != SR_ST_ACTIVE) return SR_ERR_DEV_CLOSED; @@ -326,12 +332,14 @@ static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi) return SR_OK; } -static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi) +static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi, + const struct sr_probe_group *probe_group) { - GVariant *gvar; + GVariant *gvar, *grange[2]; GVariantBuilder gvb; (void)sdi; + (void)probe_group; switch (key) { case SR_CONF_DEVICE_OPTIONS: @@ -350,6 +358,11 @@ static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi) g_variant_builder_add(&gvb, "{sv}", "samplerates", gvar); *data = g_variant_builder_end(&gvb); break; + case SR_CONF_LIMIT_SAMPLES: + grange[0] = g_variant_new_uint64(0); + grange[1] = g_variant_new_uint64(MAX_NUM_SAMPLES); + *data = g_variant_new_tuple(grange, 2); + break; case SR_CONF_TRIGGER_TYPE: *data = g_variant_new_string(TRIGGER_TYPE); break; @@ -499,7 +512,7 @@ SR_PRIV struct sr_dev_driver chronovu_la8_driver_info = { .cleanup = cleanup, .scan = scan, .dev_list = dev_list, - .dev_clear = clear_instances, + .dev_clear = dev_clear, .config_get = config_get, .config_set = config_set, .config_list = config_list,