+ } else if (devc->state == LIVE_SPL_IDLE) {
+ buf[0] = CMD_GET_LOG_DATA;
+ offset = devc->num_samples / 63;
+ buf[1] = (offset >> 8) & 0xff;
+ buf[2] = offset & 0xff;
+ if (devc->stored_samples - devc->num_samples > 63)
+ buf[3] = 63;
+ else
+ /* Last chunk. */
+ buf[3] = devc->stored_samples - devc->num_samples;
+ ret = libusb_bulk_transfer(usb->devhdl, EP_OUT, buf, 4, &len, 5);
+ if (ret != 0 || len != 4) {
+ sr_dbg("Failed to request next chunk: %s",
+ libusb_error_name(ret));
+ sdi->driver->dev_acquisition_stop((struct sr_dev_inst *)sdi,
+ devc->cb_data);
+ return TRUE;
+ }
+ libusb_submit_transfer(devc->xfer);
+ devc->state = LIVE_SPL_WAIT;