]> sigrok.org Git - libsigrok.git/commitdiff
Use new SR_DF_META packet.
authorBert Vermeulen <redacted>
Sun, 20 Jan 2013 14:45:09 +0000 (15:45 +0100)
committerBert Vermeulen <redacted>
Mon, 21 Jan 2013 22:32:49 +0000 (23:32 +0100)
Since input modules determine a samplerate by reading from their
file format (or having it overridden with an option), they need
to pass this up to the frontend.

input/binary.c
input/chronovu_la8.c
input/vcd.c

index 6e11cde0844eb5e0562657eafaf9f7511a0e921e..3d4418ca41044077a771afc3898e8940210d22cb 100644 (file)
@@ -100,8 +100,9 @@ static int loadfile(struct sr_input *in, const char *filename)
 {
        struct sr_datafeed_header header;
        struct sr_datafeed_packet packet;
-       struct sr_datafeed_meta_logic meta;
+       struct sr_datafeed_meta meta;
        struct sr_datafeed_logic logic;
+       struct sr_config *src;
        unsigned char buffer[CHUNKSIZE];
        int fd, size, num_probes;
        struct context *ctx;
@@ -120,12 +121,13 @@ static int loadfile(struct sr_input *in, const char *filename)
        packet.payload = &header;
        sr_session_send(in->sdi, &packet);
 
-       /* Send metadata about the SR_DF_LOGIC packets to come. */
-       packet.type = SR_DF_META_LOGIC;
-       packet.payload = &meta;
-       meta.samplerate = ctx->samplerate;
-       meta.num_probes = num_probes;
-       sr_session_send(in->sdi, &packet);
+       if (ctx->samplerate) {
+               packet.type = SR_DF_META;
+               packet.payload = &meta;
+               src = sr_config_make(SR_HWCAP_SAMPLERATE, (const void *)&ctx->samplerate);
+               meta.config = g_slist_append(NULL, src);
+               sr_session_send(in->sdi, &packet);
+       }
 
        /* Chop up the input file into chunks & send it to the session bus. */
        packet.type = SR_DF_LOGIC;
index 146d9da9d581154c2caf029e1c58eaf0d9f1ca24..c3913789a3e67b82a1ff2b783f8acf3d88ee9b30 100644 (file)
@@ -139,8 +139,9 @@ static int loadfile(struct sr_input *in, const char *filename)
 {
        struct sr_datafeed_header header;
        struct sr_datafeed_packet packet;
-       struct sr_datafeed_meta_logic meta;
+       struct sr_datafeed_meta meta;
        struct sr_datafeed_logic logic;
+       struct sr_config *src;
        uint8_t buf[PACKET_SIZE], divcount;
        int i, fd, size, num_probes;
        uint64_t samplerate;
@@ -173,10 +174,10 @@ static int loadfile(struct sr_input *in, const char *filename)
        sr_session_send(in->sdi, &packet);
 
        /* Send metadata about the SR_DF_LOGIC packets to come. */
-       packet.type = SR_DF_META_LOGIC;
+       packet.type = SR_DF_META;
        packet.payload = &meta;
-       meta.samplerate = samplerate;
-       meta.num_probes = num_probes;
+       src = sr_config_make(SR_HWCAP_SAMPLERATE, (const void *)&samplerate);
+       meta.config = g_slist_append(NULL, src);
        sr_session_send(in->sdi, &packet);
 
        /* TODO: Handle trigger point. */
index 138aa3c1526bbebee085de5d4289f8bcda865b3d..25192f88fa7894b1850b682c93d03382345ca53a 100644 (file)
@@ -545,9 +545,11 @@ static int loadfile(struct sr_input *in, const char *filename)
 {
        struct sr_datafeed_header header;
        struct sr_datafeed_packet packet;
-       struct sr_datafeed_meta_logic meta;
+       struct sr_datafeed_meta meta;
+       struct sr_config *src;
        FILE *file;
        struct context *ctx;
+       uint64_t samplerate;
 
        ctx = in->internal;
 
@@ -569,10 +571,11 @@ static int loadfile(struct sr_input *in, const char *filename)
        sr_session_send(in->sdi, &packet);
 
        /* Send metadata about the SR_DF_LOGIC packets to come. */
-       packet.type = SR_DF_META_LOGIC;
+       packet.type = SR_DF_META;
        packet.payload = &meta;
-       meta.samplerate = ctx->samplerate / ctx->downsample;
-       meta.num_probes = ctx->probecount;
+       samplerate = ctx->samplerate / ctx->downsample;
+       src = sr_config_make(SR_HWCAP_SAMPLERATE, (const void *)&samplerate);
+       meta.config = g_slist_append(NULL, src);
        sr_session_send(in->sdi, &packet);
 
        /* Parse the contents of the VCD file */