]> sigrok.org Git - libsigrok.git/blobdiff - hardware/saleae-logic/saleae-logic.h
salae: Only terminate session after all transfers have been aborted
[libsigrok.git] / hardware / saleae-logic / saleae-logic.h
index e7fe9c00385bfe195e509fc7108d153afcf8844d..6a96d458b93f40cb2fc1e621b975182aeab390b1 100644 (file)
@@ -25,7 +25,6 @@
 #define NUM_TRIGGER_STAGES     4
 #define TRIGGER_TYPES          "01"
 #define FIRMWARE               FIRMWARE_DIR "/saleae-logic.fw"
-#define GTV_TO_MSEC(gtv)       (gtv.tv_sec * 1000 + gtv.tv_usec / 1000)
 
 /* delay in ms */
 #define MAX_RENUM_DELAY        3000
@@ -48,13 +47,14 @@ struct fx2_profile {
        int num_probes;
 };
 
-struct fx2_device {
+/* Private, per-device-instance driver context. */
+struct context {
        struct fx2_profile *profile;
        /*
-        * Since we can't keep track of a Saleae Logic device after upgrading the
-        * firmware (it re-enumerates into a different device address after the
-        * upgrade) this is like a global lock. No device will open until a proper
-        * delay after the last device was upgraded.
+        * Since we can't keep track of a Saleae Logic device after upgrading
+        * the firmware (it re-enumerates into a different device address
+        * after the upgrade) this is like a global lock. No device will open
+        * until a proper delay after the last device was upgraded.
         */
        GTimeVal fw_updated;
        /* device/capture settings */
@@ -65,13 +65,16 @@ struct fx2_device {
        uint8_t trigger_value[NUM_TRIGGER_STAGES];
        int trigger_stage;
        uint8_t trigger_buffer[NUM_TRIGGER_STAGES];
+       int num_samples;
+       int submitted_transfers;
+
        /*
         * opaque session data passed in by the frontend, will be passed back
         * on the session bus along with samples.
         */
-       void *session_data;
+       void *session_dev_id;
 
-       struct sr_usb_device_instance *usb;
+       struct sr_usb_dev_inst *usb;
 };
 
 #endif