X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Finput%2Fvcd.c;h=7614ba68a6f7bc192dab8c4f85cddccb91c34954;hb=3c9117094cf3c9da5c7c2a7e292c30d3a48882e9;hp=bf203193ef6ef06ea83ad1fe22083b83ba913b2a;hpb=f9bc17d4c0a23cb07065ece11f5c71facdba4eb2;p=libsigrok.git diff --git a/src/input/vcd.c b/src/input/vcd.c index bf203193..7614ba68 100644 --- a/src/input/vcd.c +++ b/src/input/vcd.c @@ -67,7 +67,7 @@ #define LOG_PREFIX "input/vcd" -#define CHUNKSIZE (1024 * 1024) +#define CHUNK_SIZE (4 * 1024 * 1024) struct context { gboolean started; @@ -265,7 +265,7 @@ static gboolean parse_header(const struct sr_input *in, GString *buf) return status; } -static int format_match(GHashTable *metadata) +static int format_match(GHashTable *metadata, unsigned int *confidence) { GString *buf, *tmpbuf; gboolean status; @@ -283,7 +283,11 @@ static int format_match(GHashTable *metadata) g_free(name); g_free(contents); - return status ? SR_OK : SR_ERR; + if (!status) + return SR_ERR; + *confidence = 1; + + return SR_OK; } /* Send all accumulated bytes from inc->buffer. */ @@ -319,7 +323,7 @@ static void add_samples(const struct sr_input *in, size_t count) uint8_t *p; inc = in->priv; - samples_per_chunk = CHUNKSIZE / inc->bytes_per_sample; + samples_per_chunk = CHUNK_SIZE / inc->bytes_per_sample; while (count) { space_left = samples_per_chunk - inc->samples_in_buffer; @@ -498,7 +502,7 @@ static int init(struct sr_input *in, GHashTable *options) in->sdi = g_malloc0(sizeof(struct sr_dev_inst)); in->priv = inc; - inc->buffer = g_malloc(CHUNKSIZE); + inc->buffer = g_malloc(CHUNK_SIZE); return SR_OK; } @@ -625,10 +629,11 @@ static int reset(struct sr_input *in) } static struct sr_option options[] = { - { "numchannels", "Number of channels", "Number of channels", NULL, NULL }, - { "skip", "Skip", "Skip until timestamp", NULL, NULL }, - { "downsample", "Downsample", "Divide samplerate by factor", NULL, NULL }, - { "compress", "Compress", "Compress idle periods longer than this value", NULL, NULL }, + { "numchannels", "Number of logic channels", "The number of (logic) channels in the data", NULL, NULL }, + { "skip", "Skip samples until timestamp", "Skip samples until the specified timestamp; " + "< 0: Skip until first timestamp listed; 0: Don't skip", NULL, NULL }, + { "downsample", "Downsampling factor", "Downsample, i.e. divide the samplerate by the specified factor", NULL, NULL }, + { "compress", "Compress idle periods", "Compress idle periods longer than the specified value", NULL, NULL }, ALL_ZERO }; @@ -647,7 +652,7 @@ static const struct sr_option *get_options(void) SR_PRIV struct sr_input_module input_vcd = { .id = "vcd", .name = "VCD", - .desc = "Value Change Dump", + .desc = "Value Change Dump data", .exts = (const char*[]){"vcd", NULL}, .metadata = { SR_INPUT_META_HEADER | SR_INPUT_META_REQUIRED }, .options = get_options,