X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Foutput%2Fwav.c;h=b266b203275fec65e9e4bf3f4215aba981ba2022;hb=cf1d5f1749fc6b6511c72563233375ac61cfb548;hp=87ac44ac463d840726d2ea12a193927f89ee8175;hpb=c7224164a073461d9be8dc54120dc13673e65f61;p=libsigrok.git diff --git a/src/output/wav.c b/src/output/wav.c index 87ac44ac..b266b203 100644 --- a/src/output/wav.c +++ b/src/output/wav.c @@ -237,7 +237,6 @@ static int receive(const struct sr_output *o, const struct sr_datafeed_packet *p { struct out_context *outc; const struct sr_datafeed_meta *meta; - const struct sr_datafeed_analog_old *analog_old; const struct sr_datafeed_analog *analog; const struct sr_config *src; struct sr_channel *ch; @@ -262,7 +261,6 @@ static int receive(const struct sr_output *o, const struct sr_datafeed_packet *p outc->samplerate = g_variant_get_uint64(src->data); } break; - case SR_DF_ANALOG_OLD: case SR_DF_ANALOG: if (!outc->header_done) { *out = gen_header(o); @@ -270,25 +268,16 @@ static int receive(const struct sr_output *o, const struct sr_datafeed_packet *p } else *out = g_string_sized_new(512); - analog_old = packet->payload; analog = packet->payload; - - if (packet->type == SR_DF_ANALOG_OLD) { - num_samples = analog_old->num_samples; - channels = analog_old->channels; - num_channels = g_slist_length(analog_old->channels); - data = analog_old->data; - } else { - num_samples = analog->num_samples; - channels = analog->meaning->channels; - num_channels = g_slist_length(analog->meaning->channels); - if (!(data = g_try_realloc(outc->fdata, sizeof(float) * num_samples * num_channels))) - return SR_ERR_MALLOC; - outc->fdata = data; - ret = sr_analog_to_float(analog, data); - if (ret != SR_OK) - return ret; - } + num_samples = analog->num_samples; + channels = analog->meaning->channels; + num_channels = g_slist_length(analog->meaning->channels); + if (!(data = g_try_realloc(outc->fdata, sizeof(float) * num_samples * num_channels))) + return SR_ERR_MALLOC; + outc->fdata = data; + ret = sr_analog_to_float(analog, data); + if (ret != SR_OK) + return ret; if (num_samples == 0) return SR_OK; @@ -300,7 +289,7 @@ static int receive(const struct sr_output *o, const struct sr_datafeed_packet *p } if (num_samples > outc->chanbuf_size) { - if (realloc_chanbufs(o, analog_old->num_samples) != SR_OK) + if (realloc_chanbufs(o, analog->num_samples) != SR_OK) return SR_ERR_MALLOC; } @@ -315,7 +304,7 @@ static int receive(const struct sr_output *o, const struct sr_datafeed_packet *p for (j = 0; j < num_channels; j++) { idx = chan_idx[j]; buf = outc->chanbuf[idx] + outc->chanbuf_used[idx]++ * 4; - f = analog_old->data[i * num_channels + j]; + f = data[i * num_channels + j]; if (outc->scale != 0.0) f /= outc->scale; float_to_le(buf, f);