]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/fx2lafw/protocol.h
output/csv: use intermediate time_t var, silence compiler warning
[libsigrok.git] / src / hardware / fx2lafw / protocol.h
index f6f87b0c965ea1da487626c08d34b20452cc8dbd..91f0e9fb64745154b4b0fddbbcab5c0157a213b5 100644 (file)
@@ -39,6 +39,8 @@
 #define NUM_SIMUL_TRANSFERS    32
 #define MAX_EMPTY_TRANSFERS    (NUM_SIMUL_TRANSFERS * 2)
 
+#define NUM_CHANNELS           16
+
 #define FX2LAFW_REQUIRED_VERSION_MAJOR 1
 
 #define MAX_8BIT_SAMPLE_RATE   SR_MHZ(24)
 #define DEV_CAPS_16BIT         (1 << DEV_CAPS_16BIT_POS)
 #define DEV_CAPS_AX_ANALOG     (1 << DEV_CAPS_AX_ANALOG_POS)
 
-#define DSLOGIC_FPGA_FIRMWARE "dreamsourcelab-dslogic-fpga.fw"
-#define DSCOPE_FPGA_FIRMWARE "dreamsourcelab-dscope-fpga.fw"
-#define DSLOGIC_PRO_FPGA_FIRMWARE "dreamsourcelab-dslogic-pro-fpga.fw"
-
 /* Protocol commands */
 #define CMD_GET_FW_VERSION             0xb0
 #define CMD_START                      0xb1
@@ -66,7 +64,7 @@
 #define CMD_START_FLAGS_WIDE_POS       5
 #define CMD_START_FLAGS_CLK_SRC_POS    6
 
-#define CMD_START_FLAGS_CLK_CTL2       (1 << CMD_START_FLAGS_CLK_CTL2)
+#define CMD_START_FLAGS_CLK_CTL2       (1 << CMD_START_FLAGS_CLK_CTL2_POS)
 #define CMD_START_FLAGS_SAMPLE_8BIT    (0 << CMD_START_FLAGS_WIDE_POS)
 #define CMD_START_FLAGS_SAMPLE_16BIT   (1 << CMD_START_FLAGS_WIDE_POS)
 
@@ -91,6 +89,8 @@ struct fx2lafw_profile {
 
 struct dev_context {
        const struct fx2lafw_profile *profile;
+       char **channel_names;
+       GSList *enabled_analog_channels;
        /*
         * Since we can't keep track of an fx2lafw device after upgrading
         * the firmware (it renumerates into a different device address
@@ -99,54 +99,36 @@ struct dev_context {
         */
        int64_t fw_updated;
 
-       /* Supported samplerates */
        const uint64_t *samplerates;
        int num_samplerates;
 
-       /* Device/capture settings */
        uint64_t cur_samplerate;
+       uint64_t limit_frames;
        uint64_t limit_samples;
        uint64_t capture_ratio;
 
-       /* Operational settings */
        gboolean trigger_fired;
        gboolean acq_aborted;
        gboolean sample_wide;
        struct soft_trigger_logic *stl;
 
-       unsigned int sent_samples;
+       uint64_t num_frames;
+       uint64_t sent_samples;
        int submitted_transfers;
        int empty_transfer_count;
 
-       void *cb_data;
        unsigned int num_transfers;
        struct libusb_transfer **transfers;
        struct sr_context *ctx;
-       void (*send_data_proc)(struct dev_context *devc,
+       void (*send_data_proc)(struct sr_dev_inst *sdi,
                uint8_t *data, size_t length, size_t sample_width);
        uint8_t *logic_buffer;
        float *analog_buffer;
-
-       /* Is this a DSLogic? */
-       gboolean dslogic;
-       uint16_t dslogic_mode;
-       int dslogic_external_clock;
-       gboolean trigger_en;
 };
 
-SR_PRIV int fx2lafw_command_start_acquisition(const struct sr_dev_inst *sdi);
-SR_PRIV gboolean match_manuf_prod(libusb_device *dev, const char *manufacturer,
-               const char *product);
 SR_PRIV int fx2lafw_dev_open(struct sr_dev_inst *sdi, struct sr_dev_driver *di);
 SR_PRIV struct dev_context *fx2lafw_dev_new(void);
+SR_PRIV int fx2lafw_start_acquisition(const struct sr_dev_inst *sdi);
 SR_PRIV void fx2lafw_abort_acquisition(struct dev_context *devc);
-SR_PRIV void LIBUSB_CALL fx2lafw_receive_transfer(struct libusb_transfer *transfer);
-SR_PRIV size_t fx2lafw_get_buffer_size(struct dev_context *devc);
-SR_PRIV unsigned int fx2lafw_get_number_of_transfers(struct dev_context *devc);
-SR_PRIV unsigned int fx2lafw_get_timeout(struct dev_context *devc);
-SR_PRIV void la_send_data_proc(struct dev_context *devc, uint8_t *data, size_t length,
-               size_t sample_width);
-SR_PRIV void mso_send_data_proc(struct dev_context *devc, uint8_t *data, size_t length,
-               size_t sample_width);
 
 #endif