output/vcd: Extend output stream to last sample.

(receive): Write a dummy timestamp after the last sample
to indicate the length of the sampled stream.
This commit is contained in:
Daniel Elstner 2014-02-05 00:56:49 +01:00
parent 4f2dad42f4
commit fb9e91aed4
1 changed files with 9 additions and 3 deletions

View File

@ -165,9 +165,6 @@ static int receive(struct sr_output *o, const struct sr_dev_inst *sdi,
return SR_ERR_BUG;
ctx = o->internal;
if (packet->type != SR_DF_LOGIC)
return SR_OK;
if (ctx->header) {
/* The header is still here, this must be the first packet. */
*out = ctx->header;
@ -177,6 +174,15 @@ static int receive(struct sr_output *o, const struct sr_dev_inst *sdi,
*out = g_string_sized_new(512);
}
if (packet->type != SR_DF_LOGIC) {
if (packet->type == SR_DF_END)
/* Write final timestamp as length indicator. */
g_string_append_printf(*out, "#%.0f\n",
(double)ctx->samplecount /
ctx->samplerate * ctx->period);
return SR_OK;
}
logic = packet->payload;
for (i = 0; i <= logic->length - logic->unitsize; i += logic->unitsize) {
sample = logic->data + i;