]> sigrok.org Git - sigrok-cli.git/blobdiff - session.c
session: make group of 'static' vars more visible
[sigrok-cli.git] / session.c
index e692970d6b2cf70982ce66c4401a704f8b1fa498..c5eb7aad3988e2ad67f8aae3725c5024f8f419c1 100644 (file)
--- a/session.c
+++ b/session.c
@@ -153,11 +153,6 @@ const struct sr_transform *setup_transform_module(const struct sr_dev_inst *sdi)
 void datafeed_in(const struct sr_dev_inst *sdi,
                const struct sr_datafeed_packet *packet, void *cb_data)
 {
-       const struct sr_datafeed_meta *meta;
-       const struct sr_datafeed_logic *logic;
-       const struct sr_datafeed_analog *analog;
-       struct sr_session *session;
-       struct sr_config *src;
        static const struct sr_output *o = NULL;
        static const struct sr_output *oa = NULL;
        static uint64_t rcvd_samples_logic = 0;
@@ -165,6 +160,12 @@ void datafeed_in(const struct sr_dev_inst *sdi,
        static uint64_t samplerate = 0;
        static int triggered = 0;
        static FILE *outfile = NULL;
+
+       const struct sr_datafeed_meta *meta;
+       const struct sr_datafeed_logic *logic;
+       const struct sr_datafeed_analog *analog;
+       struct sr_session *session;
+       struct sr_config *src;
        GSList *l;
        GString *out;
        GVariant *gvar;
@@ -178,7 +179,7 @@ void datafeed_in(const struct sr_dev_inst *sdi,
 
        driver = sr_dev_inst_driver_get(sdi);
 
-       /* If the first packet to come in isn't a header, don't even try. */
+       /* Skip all packets before the first header. */
        if (packet->type != SR_DF_HEADER && !o)
                return;
 
@@ -577,12 +578,18 @@ void run_session(void)
                }
        }
 
+       /* This is unlikely to happen but it makes static analyzers stop complaining. */
+       if (!devices) {
+               g_critical("No real devices found.");
+               return;
+       }
+
        sdi = devices->data;
        g_slist_free(devices);
        g_slist_free(real_devices);
 
        sr_session_new(sr_ctx, &session);
-       sr_session_datafeed_callback_add(session, datafeed_in, NULL);
+       sr_session_datafeed_callback_add(session, datafeed_in, session);
 
        if (sr_dev_open(sdi) != SR_OK) {
                g_critical("Failed to open device.");
@@ -669,7 +676,7 @@ void run_session(void)
 
        if (opt_frames) {
                if ((sr_parse_sizestring(opt_frames, &limit_frames) != SR_OK)) {
-                       g_critical("Invalid sample limit '%s'.", opt_samples);
+                       g_critical("Invalid frame limit '%s'.", opt_frames);
                        sr_session_destroy(session);
                        return;
                }