X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Foutput%2Fwav.c;h=45854caac1f684f445d2bee87e032e9cff831c79;hb=73931b7cc732f490ba6d2413707e50462666fa86;hp=9bf9843d18cd9333fbf01e26698a68c8f1b8da7d;hpb=950043c30ecd2a0d1d15a14f0d07f29b06157fc6;p=libsigrok.git diff --git a/src/output/wav.c b/src/output/wav.c index 9bf9843d..45854caa 100644 --- a/src/output/wav.c +++ b/src/output/wav.c @@ -91,28 +91,10 @@ static int init(struct sr_output *o, GHashTable *options) struct out_context *outc; struct sr_channel *ch; GSList *l; - GHashTableIter iter; - gpointer key, value; outc = g_malloc0(sizeof(struct out_context)); o->priv = outc; - - outc->scale = 0.0; - if (options) { - g_hash_table_iter_init(&iter, options); - while (g_hash_table_iter_next(&iter, &key, &value)) { - if (!strcmp(key, "scale")) { - if (!g_variant_is_of_type(value, G_VARIANT_TYPE_DOUBLE)) { - sr_err("Invalid type for 'scale' option."); - return SR_ERR_ARG; - } - outc->scale = g_variant_get_double(value); - } else { - sr_err("Unknown option '%s'.", key); - return SR_ERR_ARG; - } - } - } + outc->scale = g_variant_get_double(g_hash_table_lookup(options, "scale")); for (l = o->sdi->channels; l; l = l->next) { ch = l->data; @@ -247,6 +229,7 @@ static int check_chanbuf_size(const struct sr_output *o) return size; } + static int receive(const struct sr_output *o, const struct sr_datafeed_packet *packet, GString **out) { @@ -353,15 +336,13 @@ static int cleanup(struct sr_output *o) static struct sr_option options[] = { { "scale", "Scale", "Scale values by factor", NULL, NULL }, - { 0 } + ALL_ZERO }; -static struct sr_option *get_options(void) +static const struct sr_option *get_options(void) { - if (!options[0].def) { - options[0].def = g_variant_new_double(0); - g_variant_ref_sink(options[0].def); - } + if (!options[0].def) + options[0].def = g_variant_ref_sink(g_variant_new_double(0.0)); return options; } @@ -369,7 +350,8 @@ static struct sr_option *get_options(void) SR_PRIV struct sr_output_module output_wav = { .id = "wav", .name = "WAV", - .desc = "WAVE file format", + .desc = "Microsoft WAV file format", + .exts = (const char*[]){"wav", NULL}, .options = get_options, .init = init, .receive = receive,