X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fsession_driver.c;h=511adac5978814f05f61ca9f30e839ecd17de999;hb=3f2cd87f36fa8bb6fddc4ace7a6c9571e7c2309d;hp=9120ea14575b4f2e71fbfa3d0fcdfc28100b8467;hpb=155b680da482cea2381becb73c51cfb838bff31e;p=libsigrok.git diff --git a/src/session_driver.c b/src/session_driver.c index 9120ea14..511adac5 100644 --- a/src/session_driver.c +++ b/src/session_driver.c @@ -49,7 +49,7 @@ struct session_vdev { gboolean finished; }; -static const int hwcaps[] = { +static const uint32_t devopts[] = { SR_CONF_CAPTUREFILE, SR_CONF_CAPTURE_UNITSIZE, SR_CONF_SAMPLERATE, @@ -209,20 +209,24 @@ static int dev_close(struct sr_dev_inst *sdi) return SR_OK; } -static int config_get(int id, GVariant **data, const struct sr_dev_inst *sdi, +static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *sdi, const struct sr_channel_group *cg) { struct session_vdev *vdev; (void)cg; - switch (id) { + if (!sdi) + return SR_ERR; + + vdev = sdi->priv; + + switch (key) { case SR_CONF_SAMPLERATE: - if (sdi) { - vdev = sdi->priv; - *data = g_variant_new_uint64(vdev->samplerate); - } else - return SR_ERR; + *data = g_variant_new_uint64(vdev->samplerate); + break; + case SR_CONF_CAPTURE_UNITSIZE: + *data = g_variant_new_uint64(vdev->unitsize); break; default: return SR_ERR_NA; @@ -231,7 +235,7 @@ 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(uint32_t key, GVariant *data, const struct sr_dev_inst *sdi, const struct sr_channel_group *cg) { struct session_vdev *vdev; @@ -240,7 +244,7 @@ static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi, vdev = sdi->priv; - switch (id) { + switch (key) { case SR_CONF_SAMPLERATE: vdev->samplerate = g_variant_get_uint64(data); sr_info("Setting samplerate to %" PRIu64 ".", vdev->samplerate); @@ -268,7 +272,7 @@ 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(uint32_t key, GVariant **data, const struct sr_dev_inst *sdi, const struct sr_channel_group *cg) { (void)sdi; @@ -276,8 +280,8 @@ static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi, switch (key) { case SR_CONF_DEVICE_OPTIONS: - *data = g_variant_new_fixed_array(G_VARIANT_TYPE_INT32, - hwcaps, ARRAY_SIZE(hwcaps), sizeof(int32_t)); + *data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32, + devopts, ARRAY_SIZE(devopts), sizeof(uint32_t)); break; default: return SR_ERR_NA;