output/analog: Display META packets

This commit is contained in:
Frank Stettner 2017-10-26 12:56:02 +02:00 committed by Uwe Hermann
parent 2472271e08
commit 688e44ae06
1 changed files with 25 additions and 0 deletions

View File

@ -75,6 +75,9 @@ static int receive(const struct sr_output *o, const struct sr_datafeed_packet *p
{
struct context *ctx;
const struct sr_datafeed_analog *analog;
const struct sr_datafeed_meta *meta;
const struct sr_config *src;
const struct sr_key_info *srci;
struct sr_channel *ch;
GSList *l;
float *fdata;
@ -94,6 +97,28 @@ static int receive(const struct sr_output *o, const struct sr_datafeed_packet *p
case SR_DF_FRAME_END:
*out = g_string_new("FRAME-END\n");
break;
case SR_DF_META:
meta = packet->payload;
for (l = meta->config; l; l = l->next) {
src = l->data;
if (!(srci = sr_key_info_get(SR_KEY_CONFIG, src->key)))
return SR_ERR;
*out = g_string_sized_new(512);
g_string_append(*out, "META ");
g_string_append_printf(*out, "%s: ", srci->id);
if (srci->datatype == SR_T_BOOL) {
g_string_append_printf(*out, "%u",
g_variant_get_boolean(src->data));
} else if (srci->datatype == SR_T_FLOAT) {
g_string_append_printf(*out, "%f",
g_variant_get_double(src->data));
} else if (srci->datatype == SR_T_UINT64) {
g_string_append_printf(*out, "%" PRIu64,
g_variant_get_uint64(src->data));
}
g_string_append(*out, "\n");
}
break;
case SR_DF_ANALOG:
analog = packet->payload;
num_channels = g_slist_length(analog->meaning->channels);