]> sigrok.org Git - libsigrok.git/blobdiff - hardware/saleae-logic/saleae-logic.c
datastore.c: Improve error handling and docs.
[libsigrok.git] / hardware / saleae-logic / saleae-logic.c
index c5a81e36e64cd30f14c250e3da43fa06f5112f56..44fe0a4a5094c9c802cf952a120708f6cfbfe616 100644 (file)
@@ -292,7 +292,7 @@ static int hw_init(const char *deviceinfo)
        int err, devcnt, i, j;
 
        /* Avoid compiler warnings. */
-       deviceinfo = deviceinfo;
+       (void)deviceinfo;
 
        if (libusb_init(&usb_context) != 0) {
                sr_warn("Failed to initialize USB.");
@@ -554,9 +554,9 @@ static int receive_data(int fd, int revents, void *user_data)
        struct timeval tv;
 
        /* Avoid compiler warnings. */
-       fd = fd;
-       revents = revents;
-       user_data = user_data;
+       (void)fd;
+       (void)revents;
+       (void)user_data;
 
        tv.tv_sec = tv.tv_usec = 0;
        libusb_handle_events_timeout(usb_context, &tv);
@@ -633,6 +633,7 @@ void receive_transfer(struct libusb_transfer *transfer)
                                /* Match on this trigger stage. */
                                fx2->trigger_buffer[fx2->trigger_stage] = cur_buf[i];
                                fx2->trigger_stage++;
+
                                if (fx2->trigger_stage == NUM_TRIGGER_STAGES || fx2->trigger_mask[fx2->trigger_stage] == 0) {
                                        /* Match on all trigger stages, we're done. */
                                        trigger_offset = i + 1;
@@ -642,7 +643,7 @@ void receive_transfer(struct libusb_transfer *transfer)
                                         * Tell the frontend we hit the trigger here.
                                         */
                                        packet.type = SR_DF_TRIGGER;
-                                       packet.timeoffset = (num_samples - fx2->trigger_stage) * fx2->period_ps;
+                                       packet.timeoffset = (num_samples + i) * fx2->period_ps;
                                        packet.duration = 0;
                                        packet.payload = NULL;
                                        sr_session_bus(fx2->session_data, &packet);
@@ -652,7 +653,7 @@ void receive_transfer(struct libusb_transfer *transfer)
                                         * skipping past them.
                                         */
                                        packet.type = SR_DF_LOGIC;
-                                       packet.timeoffset = (num_samples - fx2->trigger_stage) * fx2->period_ps;
+                                       packet.timeoffset = (num_samples + i) * fx2->period_ps;
                                        packet.duration = fx2->trigger_stage * fx2->period_ps;
                                        packet.payload = &logic;
                                        logic.length = fx2->trigger_stage;
@@ -779,7 +780,7 @@ static void hw_stop_acquisition(int device_index, gpointer session_data)
        struct sr_datafeed_packet packet;
 
        /* Avoid compiler warnings. */
-       device_index = device_index;
+       (void)device_index;
 
        packet.type = SR_DF_END;
        sr_session_bus(session_data, &packet);