From: Martin Ling Date: Mon, 28 Dec 2015 21:20:07 +0000 (+0000) Subject: srzip: Renumber analog channels from zero in output file. X-Git-Tag: libsigrok-0.5.0~548 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=26918dced08eacbd851c63f9b4459d4c764b540f;p=libsigrok.git srzip: Renumber analog channels from zero in output file. --- diff --git a/src/output/srzip.c b/src/output/srzip.c index 7ee1bd9f..a03f003e 100644 --- a/src/output/srzip.c +++ b/src/output/srzip.c @@ -33,6 +33,7 @@ struct out_context { gboolean zip_created; uint64_t samplerate; char *filename; + gint min_analog_index; }; static int init(struct sr_output *o, GHashTable *options) @@ -104,6 +105,8 @@ static int zip_create(const struct sr_output *o) g_key_file_set_string(meta, devgroup, "samplerate", s); g_free(s); + outc->min_analog_index = -1; + for (l = o->sdi->channels; l; l = l->next) { ch = l->data; switch (ch->type) { @@ -111,6 +114,9 @@ static int zip_create(const struct sr_output *o) logic_channels++; break; case SR_CHANNEL_ANALOG: + if (outc->min_analog_index == -1 || + ch->index < outc->min_analog_index) + outc->min_analog_index = ch->index; analog_channels++; break; } @@ -126,7 +132,8 @@ static int zip_create(const struct sr_output *o) s = g_strdup_printf("probe%d", ch->index + 1); break; case SR_CHANNEL_ANALOG: - s = g_strdup_printf("analog%d", ch->index + 1); + s = g_strdup_printf("analog%d", + ch->index - outc->min_analog_index + 1); break; } if (ch->enabled) @@ -310,7 +317,8 @@ static int zip_append_analog(const struct sr_output *o, } channel = analog->meaning->channels->data; - basename = g_strdup_printf("analog-1-%u", channel->index + 1); + basename = g_strdup_printf("analog-1-%u", + channel->index - outc->min_analog_index + 1); baselen = strlen(basename); next_chunk_num = 1; num_files = zip_get_num_entries(archive, 0);