+static void abort_acquisition(struct context *ctx)
+{
+ ctx->num_samples = -1;
+}
+
+static void finish_acquisition(struct context *ctx)
+{
+ struct sr_datafeed_packet packet;
+ int i;
+
+ /* Terminate session */
+ packet.type = SR_DF_END;
+ sr_session_send(ctx->session_dev_id, &packet);
+
+ /* Remove fds from polling */
+ const struct libusb_pollfd **const lupfd =
+ libusb_get_pollfds(usb_context);
+ for (i = 0; lupfd[i]; i++)
+ sr_source_remove(lupfd[i]->fd);
+ free(lupfd); /* NOT g_free()! */
+}
+
+static void receive_transfer(struct libusb_transfer *transfer)