]> sigrok.org Git - libsigrok.git/blobdiff - hardware/chronovu-la8/driver.h
la8: Adapt to new driver conventions.
[libsigrok.git] / hardware / chronovu-la8 / driver.h
index d972d182f6b70ca105167e7fc4fb89150cc01136..7eeffd6deed7669e60cc46fa08927d02cc87f480 100644 (file)
 #include "libsigrok.h"
 #include "libsigrok-internal.h"
 
+/* Message logging helpers with driver-specific prefix string. */
+#define DRIVER_LOG_DOMAIN "la8: "
+#define sr_log(l, s, args...) sr_log(l, DRIVER_LOG_DOMAIN s, ## args)
+#define sr_spew(s, args...) sr_spew(DRIVER_LOG_DOMAIN s, ## args)
+#define sr_dbg(s, args...) sr_dbg(DRIVER_LOG_DOMAIN s, ## args)
+#define sr_info(s, args...) sr_info(DRIVER_LOG_DOMAIN s, ## args)
+#define sr_warn(s, args...) sr_warn(DRIVER_LOG_DOMAIN s, ## args)
+#define sr_err(s, args...) sr_err(DRIVER_LOG_DOMAIN s, ## args)
+
 #define USB_VENDOR_ID                  0x0403
-#define USB_PRODUCT_ID                 0x6001
 #define USB_DESCRIPTION                        "ChronoVu LA8"
 #define USB_VENDOR_NAME                        "ChronoVu"
 #define USB_MODEL_NAME                 "LA8"
@@ -43,7 +51,7 @@
 #define NUM_BLOCKS                     2048 /* Number of blocks */
 
 /* Private, per-device-instance driver context. */
-struct context {
+struct dev_context {
        /** FTDI device context (used by libftdi). */
        struct ftdi_context *ftdic;
 
@@ -98,6 +106,9 @@ struct context {
 
        /** The divcount value (determines the sample period) for the LA8. */
        uint8_t divcount;
+
+       /** This ChronoVu LA8's USB PID (multiple versions exist). */
+       uint16_t usb_pid;
 };
 
 /* driver.c */
@@ -108,14 +119,14 @@ extern const struct sr_samplerates samplerates;
 SR_PRIV void fill_supported_samplerates_if_needed(void);
 SR_PRIV int is_valid_samplerate(uint64_t samplerate);
 SR_PRIV uint8_t samplerate_to_divcount(uint64_t samplerate);
-SR_PRIV int la8_write(struct context *ctx, uint8_t *buf, int size);
-SR_PRIV int la8_read(struct context *ctx, uint8_t *buf, int size);
-SR_PRIV int la8_close(struct context *ctx);
-SR_PRIV int la8_close_usb_reset_sequencer(struct context *ctx);
-SR_PRIV int la8_reset(struct context *ctx);
-SR_PRIV int configure_probes(struct context *ctx, const GSList *probes);
-SR_PRIV int set_samplerate(struct sr_dev_inst *sdi, uint64_t samplerate);
-SR_PRIV int la8_read_block(struct context *ctx);
-SR_PRIV void send_block_to_session_bus(struct context *ctx, int block);
+SR_PRIV int la8_write(struct dev_context *devc, uint8_t *buf, int size);
+SR_PRIV int la8_read(struct dev_context *devc, uint8_t *buf, int size);
+SR_PRIV int la8_close(struct dev_context *devc);
+SR_PRIV int la8_close_usb_reset_sequencer(struct dev_context *devc);
+SR_PRIV int la8_reset(struct dev_context *devc);
+SR_PRIV int configure_probes(const struct sr_dev_inst *sdi);
+SR_PRIV int set_samplerate(const struct sr_dev_inst *sdi, uint64_t samplerate);
+SR_PRIV int la8_read_block(struct dev_context *devc);
+SR_PRIV void send_block_to_session_bus(struct dev_context *devc, int block);
 
 #endif