X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fbaylibre-acme%2Fapi.c;h=b824720ded820a5e3fd354c13ce3be833a29e934;hb=50ccb36f201bd6b2326822f585c01498fe6fd86a;hp=fff5e8da0dbd3ceaf97b282bab83959ab1142aab;hpb=7e463623382e1f574fde150b3fc88a65eaebb578;p=libsigrok.git diff --git a/src/hardware/baylibre-acme/api.c b/src/hardware/baylibre-acme/api.c index fff5e8da..b824720d 100644 --- a/src/hardware/baylibre-acme/api.c +++ b/src/hardware/baylibre-acme/api.c @@ -22,6 +22,11 @@ #include #include +static const uint32_t drvopts[] = { + SR_CONF_THERMOMETER, + SR_CONF_POWERMETER, +}; + static const uint32_t devopts[] = { SR_CONF_CONTINUOUS, SR_CONF_LIMIT_SAMPLES | SR_CONF_GET | SR_CONF_SET, @@ -126,25 +131,8 @@ err_out: return NULL; } -static int dev_open(struct sr_dev_inst *sdi) -{ - (void)sdi; - - return SR_OK; -} - -static int dev_close(struct sr_dev_inst *sdi) -{ - (void)sdi; - - sdi->status = SR_ST_INACTIVE; - - return SR_OK; -} - static int config_get(uint32_t key, GVariant **data, - const struct sr_dev_inst *sdi, - const struct sr_channel_group *cg) + const struct sr_dev_inst *sdi, const struct sr_channel_group *cg) { struct dev_context *devc; int ret; @@ -184,8 +172,7 @@ static int config_get(uint32_t key, GVariant **data, } static int config_set(uint32_t key, GVariant *data, - const struct sr_dev_inst *sdi, - const struct sr_channel_group *cg) + const struct sr_dev_inst *sdi, const struct sr_channel_group *cg) { struct dev_context *devc; uint64_t samplerate; @@ -227,31 +214,17 @@ static int config_set(uint32_t key, GVariant *data, } static int config_list(uint32_t key, GVariant **data, - const struct sr_dev_inst *sdi, - const struct sr_channel_group *cg) + const struct sr_dev_inst *sdi, const struct sr_channel_group *cg) { uint32_t devopts_cg[MAX_DEVOPTS_CG]; - GVariant *gvar; - GVariantBuilder gvb; - int ret, num_devopts_cg = 0; - - (void)sdi; - (void)cg; + int num_devopts_cg = 0; - ret = SR_OK; if (!cg) { switch (key) { case SR_CONF_DEVICE_OPTIONS: - *data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32, - devopts, ARRAY_SIZE(devopts), sizeof(uint32_t)); - break; + return STD_CONFIG_LIST(key, data, sdi, cg, NULL, drvopts, devopts); case SR_CONF_SAMPLERATE: - g_variant_builder_init(&gvb, G_VARIANT_TYPE("a{sv}")); - gvar = g_variant_new_fixed_array(G_VARIANT_TYPE("t"), - samplerates, ARRAY_SIZE(samplerates), sizeof(uint64_t)); - g_variant_builder_add(&gvb, "{sv}", - "samplerate-steps", gvar); - *data = g_variant_builder_end(&gvb); + *data = std_gvar_samplerates_steps(ARRAY_AND_SIZE(samplerates)); break; default: return SR_ERR_NA; @@ -264,15 +237,14 @@ static int config_list(uint32_t key, GVariant **data, if (bl_acme_probe_has_pws(cg)) devopts_cg[num_devopts_cg++] = HAS_POWER_OFF; - *data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32, - devopts_cg, num_devopts_cg, sizeof(uint32_t)); + *data = std_gvar_array_u32(devopts_cg, num_devopts_cg); break; default: return SR_ERR_NA; } } - return ret; + return SR_OK; } static void dev_acquisition_close(const struct sr_dev_inst *sdi) @@ -374,11 +346,12 @@ static struct sr_dev_driver baylibre_acme_driver_info = { .cleanup = std_cleanup, .scan = scan, .dev_list = std_dev_list, + .dev_clear = std_dev_clear, .config_get = config_get, .config_set = config_set, .config_list = config_list, - .dev_open = dev_open, - .dev_close = dev_close, + .dev_open = std_dummy_dev_open, + .dev_close = std_dummy_dev_close, .dev_acquisition_start = dev_acquisition_start, .dev_acquisition_stop = dev_acquisition_stop, .context = NULL,