input/output modules: Adjust to GVariant-based sr_config_* functions
This commit is contained in:
parent
722db131a4
commit
ec4063b83c
|
@ -121,9 +121,11 @@ static int loadfile(struct sr_input *in, const char *filename)
|
||||||
if (ctx->samplerate) {
|
if (ctx->samplerate) {
|
||||||
packet.type = SR_DF_META;
|
packet.type = SR_DF_META;
|
||||||
packet.payload = &meta;
|
packet.payload = &meta;
|
||||||
src = sr_config_new(SR_CONF_SAMPLERATE, (const void *)&ctx->samplerate);
|
src = sr_config_new(SR_CONF_SAMPLERATE,
|
||||||
|
g_variant_new_uint64(ctx->samplerate));
|
||||||
meta.config = g_slist_append(NULL, src);
|
meta.config = g_slist_append(NULL, src);
|
||||||
sr_session_send(in->sdi, &packet);
|
sr_session_send(in->sdi, &packet);
|
||||||
|
sr_config_free(src);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Chop up the input file into chunks & send it to the session bus. */
|
/* Chop up the input file into chunks & send it to the session bus. */
|
||||||
|
|
|
@ -172,9 +172,10 @@ static int loadfile(struct sr_input *in, const char *filename)
|
||||||
/* Send metadata about the SR_DF_LOGIC packets to come. */
|
/* Send metadata about the SR_DF_LOGIC packets to come. */
|
||||||
packet.type = SR_DF_META;
|
packet.type = SR_DF_META;
|
||||||
packet.payload = &meta;
|
packet.payload = &meta;
|
||||||
src = sr_config_new(SR_CONF_SAMPLERATE, (const void *)&samplerate);
|
src = sr_config_new(SR_CONF_SAMPLERATE, g_variant_new_uint64(samplerate));
|
||||||
meta.config = g_slist_append(NULL, src);
|
meta.config = g_slist_append(NULL, src);
|
||||||
sr_session_send(in->sdi, &packet);
|
sr_session_send(in->sdi, &packet);
|
||||||
|
sr_config_free(src);
|
||||||
|
|
||||||
/* TODO: Handle trigger point. */
|
/* TODO: Handle trigger point. */
|
||||||
|
|
||||||
|
|
|
@ -571,9 +571,10 @@ static int loadfile(struct sr_input *in, const char *filename)
|
||||||
packet.type = SR_DF_META;
|
packet.type = SR_DF_META;
|
||||||
packet.payload = &meta;
|
packet.payload = &meta;
|
||||||
samplerate = ctx->samplerate / ctx->downsample;
|
samplerate = ctx->samplerate / ctx->downsample;
|
||||||
src = sr_config_new(SR_CONF_SAMPLERATE, (const void *)&samplerate);
|
src = sr_config_new(SR_CONF_SAMPLERATE, g_variant_new_uint64(samplerate));
|
||||||
meta.config = g_slist_append(NULL, src);
|
meta.config = g_slist_append(NULL, src);
|
||||||
sr_session_send(in->sdi, &packet);
|
sr_session_send(in->sdi, &packet);
|
||||||
|
sr_config_free(src);
|
||||||
|
|
||||||
/* Parse the contents of the VCD file */
|
/* Parse the contents of the VCD file */
|
||||||
parse_contents(file, in->sdi, ctx);
|
parse_contents(file, in->sdi, ctx);
|
||||||
|
|
|
@ -148,9 +148,11 @@ static int loadfile(struct sr_input *in, const char *filename)
|
||||||
|
|
||||||
packet.type = SR_DF_META;
|
packet.type = SR_DF_META;
|
||||||
packet.payload = &meta;
|
packet.payload = &meta;
|
||||||
src = sr_config_new(SR_CONF_SAMPLERATE, (const void *)&ctx->samplerate);
|
src = sr_config_new(SR_CONF_SAMPLERATE,
|
||||||
|
g_variant_new_uint64(ctx->samplerate));
|
||||||
meta.config = g_slist_append(NULL, src);
|
meta.config = g_slist_append(NULL, src);
|
||||||
sr_session_send(in->sdi, &packet);
|
sr_session_send(in->sdi, &packet);
|
||||||
|
sr_config_free(src);
|
||||||
|
|
||||||
if ((fd = open(filename, O_RDONLY)) == -1)
|
if ((fd = open(filename, O_RDONLY)) == -1)
|
||||||
return SR_ERR;
|
return SR_ERR;
|
||||||
|
|
|
@ -94,7 +94,7 @@ static int init(struct sr_output *o)
|
||||||
struct context *ctx;
|
struct context *ctx;
|
||||||
struct sr_probe *probe;
|
struct sr_probe *probe;
|
||||||
GSList *l;
|
GSList *l;
|
||||||
uint64_t *samplerate;
|
GVariant *gvar;
|
||||||
|
|
||||||
if (!o) {
|
if (!o) {
|
||||||
sr_warn("%s: o was NULL", __func__);
|
sr_warn("%s: o was NULL", __func__);
|
||||||
|
@ -129,9 +129,9 @@ static int init(struct sr_output *o)
|
||||||
ctx->unitsize = (ctx->num_enabled_probes + 7) / 8;
|
ctx->unitsize = (ctx->num_enabled_probes + 7) / 8;
|
||||||
|
|
||||||
if (sr_dev_has_option(o->sdi, SR_CONF_SAMPLERATE)) {
|
if (sr_dev_has_option(o->sdi, SR_CONF_SAMPLERATE)) {
|
||||||
o->sdi->driver->config_get(SR_CONF_SAMPLERATE,
|
o->sdi->driver->config_get(SR_CONF_SAMPLERATE, &gvar, o->sdi);
|
||||||
(const void **)&samplerate, o->sdi);
|
ctx->samplerate = g_variant_get_uint64(gvar);
|
||||||
ctx->samplerate = *samplerate;
|
g_variant_unref(gvar);
|
||||||
} else
|
} else
|
||||||
ctx->samplerate = 0;
|
ctx->samplerate = 0;
|
||||||
|
|
||||||
|
|
|
@ -60,8 +60,8 @@ static int init(struct sr_output *o)
|
||||||
struct context *ctx;
|
struct context *ctx;
|
||||||
struct sr_probe *probe;
|
struct sr_probe *probe;
|
||||||
GSList *l;
|
GSList *l;
|
||||||
|
GVariant *gvar;
|
||||||
int num_probes;
|
int num_probes;
|
||||||
uint64_t *samplerate;
|
|
||||||
time_t t;
|
time_t t;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
|
@ -100,9 +100,9 @@ static int init(struct sr_output *o)
|
||||||
num_probes = g_slist_length(o->sdi->probes);
|
num_probes = g_slist_length(o->sdi->probes);
|
||||||
|
|
||||||
if (sr_dev_has_option(o->sdi, SR_CONF_SAMPLERATE)) {
|
if (sr_dev_has_option(o->sdi, SR_CONF_SAMPLERATE)) {
|
||||||
o->sdi->driver->config_get(SR_CONF_SAMPLERATE,
|
o->sdi->driver->config_get(SR_CONF_SAMPLERATE, &gvar, o->sdi);
|
||||||
(const void **)&samplerate, o->sdi);
|
ctx->samplerate = g_variant_get_uint64(gvar);
|
||||||
ctx->samplerate = *samplerate;
|
g_variant_unref(gvar);
|
||||||
} else
|
} else
|
||||||
ctx->samplerate = 0;
|
ctx->samplerate = 0;
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,8 @@ static int init(struct sr_output *o)
|
||||||
struct context *ctx;
|
struct context *ctx;
|
||||||
struct sr_probe *probe;
|
struct sr_probe *probe;
|
||||||
GSList *l;
|
GSList *l;
|
||||||
uint64_t *samplerate;
|
GVariant *gvar;
|
||||||
|
uint64_t samplerate;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
int b, num_probes;
|
int b, num_probes;
|
||||||
char *c, *frequency_s;
|
char *c, *frequency_s;
|
||||||
|
@ -99,7 +100,7 @@ static int init(struct sr_output *o)
|
||||||
o->internal = ctx;
|
o->internal = ctx;
|
||||||
ctx->num_enabled_probes = 0;
|
ctx->num_enabled_probes = 0;
|
||||||
for (l = o->sdi->probes; l; l = l->next) {
|
for (l = o->sdi->probes; l; l = l->next) {
|
||||||
probe = l->data; /* TODO: Error checks. */
|
probe = l->data;
|
||||||
if (!probe->enabled)
|
if (!probe->enabled)
|
||||||
continue;
|
continue;
|
||||||
ctx->probelist[ctx->num_enabled_probes++] = probe->name;
|
ctx->probelist[ctx->num_enabled_probes++] = probe->name;
|
||||||
|
@ -109,18 +110,21 @@ static int init(struct sr_output *o)
|
||||||
|
|
||||||
num_probes = g_slist_length(o->sdi->probes);
|
num_probes = g_slist_length(o->sdi->probes);
|
||||||
comment[0] = '\0';
|
comment[0] = '\0';
|
||||||
|
samplerate = 0;
|
||||||
if (sr_dev_has_option(o->sdi, SR_CONF_SAMPLERATE)) {
|
if (sr_dev_has_option(o->sdi, SR_CONF_SAMPLERATE)) {
|
||||||
o->sdi->driver->config_get(SR_CONF_SAMPLERATE,
|
o->sdi->driver->config_get(SR_CONF_SAMPLERATE, &gvar, o->sdi);
|
||||||
(const void **)&samplerate, o->sdi);
|
samplerate = g_variant_get_uint64(gvar);
|
||||||
if (!(frequency_s = sr_samplerate_string(*samplerate))) {
|
if (!(frequency_s = sr_samplerate_string(samplerate))) {
|
||||||
sr_err("%s: sr_samplerate_string failed", __func__);
|
sr_err("%s: sr_samplerate_string failed", __func__);
|
||||||
g_free(ctx->header);
|
g_free(ctx->header);
|
||||||
g_free(ctx);
|
g_free(ctx);
|
||||||
|
g_variant_unref(gvar);
|
||||||
return SR_ERR;
|
return SR_ERR;
|
||||||
}
|
}
|
||||||
snprintf(comment, 127, gnuplot_header_comment,
|
snprintf(comment, 127, gnuplot_header_comment,
|
||||||
ctx->num_enabled_probes, num_probes, frequency_s);
|
ctx->num_enabled_probes, num_probes, frequency_s);
|
||||||
g_free(frequency_s);
|
g_free(frequency_s);
|
||||||
|
g_variant_unref(gvar);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Columns / channels */
|
/* Columns / channels */
|
||||||
|
@ -130,7 +134,7 @@ static int init(struct sr_output *o)
|
||||||
sprintf(c, "# %d\t\t%s\n", i + 1, ctx->probelist[i]);
|
sprintf(c, "# %d\t\t%s\n", i + 1, ctx->probelist[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(frequency_s = sr_period_string(*samplerate))) {
|
if (!(frequency_s = sr_period_string(samplerate))) {
|
||||||
sr_err("%s: sr_period_string failed", __func__);
|
sr_err("%s: sr_period_string failed", __func__);
|
||||||
g_free(ctx->header);
|
g_free(ctx->header);
|
||||||
g_free(ctx);
|
g_free(ctx);
|
||||||
|
|
17
output/ols.c
17
output/ols.c
|
@ -51,7 +51,8 @@ static int init(struct sr_output *o)
|
||||||
struct context *ctx;
|
struct context *ctx;
|
||||||
struct sr_probe *probe;
|
struct sr_probe *probe;
|
||||||
GSList *l;
|
GSList *l;
|
||||||
uint64_t *samplerate, tmp;
|
GVariant *gvar;
|
||||||
|
uint64_t samplerate;
|
||||||
int num_enabled_probes;
|
int num_enabled_probes;
|
||||||
|
|
||||||
if (!(ctx = g_try_malloc(sizeof(struct context)))) {
|
if (!(ctx = g_try_malloc(sizeof(struct context)))) {
|
||||||
|
@ -69,16 +70,16 @@ static int init(struct sr_output *o)
|
||||||
}
|
}
|
||||||
ctx->unitsize = (num_enabled_probes + 7) / 8;
|
ctx->unitsize = (num_enabled_probes + 7) / 8;
|
||||||
|
|
||||||
if (o->sdi->driver && sr_dev_has_option(o->sdi, SR_CONF_SAMPLERATE))
|
if (o->sdi->driver && sr_dev_has_option(o->sdi, SR_CONF_SAMPLERATE)) {
|
||||||
o->sdi->driver->config_get(SR_CONF_SAMPLERATE,
|
o->sdi->driver->config_get(SR_CONF_SAMPLERATE, &gvar, o->sdi);
|
||||||
(const void **)&samplerate, o->sdi);
|
samplerate = g_variant_get_uint64(gvar);
|
||||||
else {
|
g_variant_unref(gvar);
|
||||||
tmp = 0;
|
} else {
|
||||||
samplerate = &tmp;
|
samplerate = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx->header = g_string_sized_new(512);
|
ctx->header = g_string_sized_new(512);
|
||||||
g_string_append_printf(ctx->header, ";Rate: %"PRIu64"\n", *samplerate);
|
g_string_append_printf(ctx->header, ";Rate: %"PRIu64"\n", samplerate);
|
||||||
g_string_append_printf(ctx->header, ";Channels: %d\n", num_enabled_probes);
|
g_string_append_printf(ctx->header, ";Channels: %d\n", num_enabled_probes);
|
||||||
g_string_append_printf(ctx->header, ";EnabledChannels: -1\n");
|
g_string_append_printf(ctx->header, ";EnabledChannels: -1\n");
|
||||||
g_string_append_printf(ctx->header, ";Compressed: true\n");
|
g_string_append_printf(ctx->header, ";Compressed: true\n");
|
||||||
|
|
|
@ -79,7 +79,8 @@ SR_PRIV int init(struct sr_output *o, int default_spl, enum outputmode mode)
|
||||||
struct context *ctx;
|
struct context *ctx;
|
||||||
struct sr_probe *probe;
|
struct sr_probe *probe;
|
||||||
GSList *l;
|
GSList *l;
|
||||||
uint64_t *samplerate;
|
GVariant *gvar;
|
||||||
|
uint64_t samplerate;
|
||||||
int num_probes, ret;
|
int num_probes, ret;
|
||||||
char *samplerate_s;
|
char *samplerate_s;
|
||||||
|
|
||||||
|
@ -124,12 +125,13 @@ SR_PRIV int init(struct sr_output *o, int default_spl, enum outputmode mode)
|
||||||
snprintf(ctx->header, 511, "%s\n", PACKAGE_STRING);
|
snprintf(ctx->header, 511, "%s\n", PACKAGE_STRING);
|
||||||
num_probes = g_slist_length(o->sdi->probes);
|
num_probes = g_slist_length(o->sdi->probes);
|
||||||
if (o->sdi->driver || sr_dev_has_option(o->sdi, SR_CONF_SAMPLERATE)) {
|
if (o->sdi->driver || sr_dev_has_option(o->sdi, SR_CONF_SAMPLERATE)) {
|
||||||
ret = o->sdi->driver->config_get(SR_CONF_SAMPLERATE,
|
if ((ret = o->sdi->driver->config_get(SR_CONF_SAMPLERATE, &gvar,
|
||||||
(const void **)&samplerate, o->sdi);
|
o->sdi)) != SR_OK)
|
||||||
if (ret != SR_OK)
|
|
||||||
goto err;
|
goto err;
|
||||||
if (!(samplerate_s = sr_samplerate_string(*samplerate))) {
|
samplerate = g_variant_get_uint64(gvar);
|
||||||
|
if (!(samplerate_s = sr_samplerate_string(samplerate))) {
|
||||||
ret = SR_ERR;
|
ret = SR_ERR;
|
||||||
|
g_variant_unref(gvar);
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
snprintf(ctx->header + strlen(ctx->header),
|
snprintf(ctx->header + strlen(ctx->header),
|
||||||
|
@ -137,6 +139,7 @@ SR_PRIV int init(struct sr_output *o, int default_spl, enum outputmode mode)
|
||||||
"Acquisition with %d/%d probes at %s\n",
|
"Acquisition with %d/%d probes at %s\n",
|
||||||
ctx->num_enabled_probes, num_probes, samplerate_s);
|
ctx->num_enabled_probes, num_probes, samplerate_s);
|
||||||
g_free(samplerate_s);
|
g_free(samplerate_s);
|
||||||
|
g_variant_unref(gvar);
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx->linebuf_len = ctx->samples_per_line * 2 + 4;
|
ctx->linebuf_len = ctx->samples_per_line * 2 + 4;
|
||||||
|
|
|
@ -53,7 +53,7 @@ static int init(struct sr_output *o)
|
||||||
struct context *ctx;
|
struct context *ctx;
|
||||||
struct sr_probe *probe;
|
struct sr_probe *probe;
|
||||||
GSList *l;
|
GSList *l;
|
||||||
uint64_t *samplerate;
|
GVariant *gvar;
|
||||||
int num_probes, i;
|
int num_probes, i;
|
||||||
char *samplerate_s, *frequency_s, *timestamp;
|
char *samplerate_s, *frequency_s, *timestamp;
|
||||||
time_t t;
|
time_t t;
|
||||||
|
@ -93,17 +93,18 @@ static int init(struct sr_output *o)
|
||||||
PACKAGE, PACKAGE_VERSION);
|
PACKAGE, PACKAGE_VERSION);
|
||||||
|
|
||||||
if (o->sdi->driver && sr_dev_has_option(o->sdi, SR_CONF_SAMPLERATE)) {
|
if (o->sdi->driver && sr_dev_has_option(o->sdi, SR_CONF_SAMPLERATE)) {
|
||||||
o->sdi->driver->config_get(SR_CONF_SAMPLERATE,
|
o->sdi->driver->config_get(SR_CONF_SAMPLERATE, &gvar, o->sdi);
|
||||||
(const void **)&samplerate, o->sdi);
|
ctx->samplerate = g_variant_get_uint64(gvar);
|
||||||
ctx->samplerate = *samplerate;
|
|
||||||
if (!((samplerate_s = sr_samplerate_string(ctx->samplerate)))) {
|
if (!((samplerate_s = sr_samplerate_string(ctx->samplerate)))) {
|
||||||
g_string_free(ctx->header, TRUE);
|
g_string_free(ctx->header, TRUE);
|
||||||
g_free(ctx);
|
g_free(ctx);
|
||||||
|
g_variant_unref(gvar);
|
||||||
return SR_ERR;
|
return SR_ERR;
|
||||||
}
|
}
|
||||||
g_string_append_printf(ctx->header, vcd_header_comment,
|
g_string_append_printf(ctx->header, vcd_header_comment,
|
||||||
ctx->num_enabled_probes, num_probes, samplerate_s);
|
ctx->num_enabled_probes, num_probes, samplerate_s);
|
||||||
g_free(samplerate_s);
|
g_free(samplerate_s);
|
||||||
|
g_variant_unref(gvar);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* timescale */
|
/* timescale */
|
||||||
|
|
Loading…
Reference in New Issue