X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fsaleae-logic%2Fsaleae-logic.c;h=44fe0a4a5094c9c802cf952a120708f6cfbfe616;hb=15278f3e9cf4c4a4a6c331e042f9935709343c82;hp=c5a81e36e64cd30f14c250e3da43fa06f5112f56;hpb=9c939c5132d82575cc1ce8f8fef5b6c4289aec5b;p=libsigrok.git diff --git a/hardware/saleae-logic/saleae-logic.c b/hardware/saleae-logic/saleae-logic.c index c5a81e36..44fe0a4a 100644 --- a/hardware/saleae-logic/saleae-logic.c +++ b/hardware/saleae-logic/saleae-logic.c @@ -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);