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:
parent
4f2dad42f4
commit
fb9e91aed4
12
output/vcd.c
12
output/vcd.c
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue