]> sigrok.org Git - libsigrok.git/blobdiff - hardware/ikalogic-scanaplus/protocol.h
build: Portability fixes.
[libsigrok.git] / hardware / ikalogic-scanaplus / protocol.h
index 578a01103cb40e2e4c1235c0abcc416cad4a6dc9..1df0517ecec2e538308f6547c1083ca24f7390c8 100644 (file)
 #define LIBSIGROK_HARDWARE_IKALOGIC_SCANAPLUS_PROTOCOL_H
 
 #include <stdint.h>
+#include <string.h>
 #include <glib.h>
+#include <ftdi.h>
 #include "libsigrok.h"
 #include "libsigrok-internal.h"
 
-/* Message logging helpers with subsystem-specific prefix string. */
-#define LOG_PREFIX "ikalogic-scanaplus: "
-#define sr_log(l, s, args...) sr_log(l, LOG_PREFIX s, ## args)
-#define sr_spew(s, args...) sr_spew(LOG_PREFIX s, ## args)
-#define sr_dbg(s, args...) sr_dbg(LOG_PREFIX s, ## args)
-#define sr_info(s, args...) sr_info(LOG_PREFIX s, ## args)
-#define sr_warn(s, args...) sr_warn(LOG_PREFIX s, ## args)
-#define sr_err(s, args...) sr_err(LOG_PREFIX s, ## args)
+#define LOG_PREFIX "ikalogic-scanaplus"
 
-/** Private, per-device-instance driver context. */
+#define COMPRESSED_BUF_SIZE            (64 * 1024)
+
+/* Private, per-device-instance driver context. */
 struct dev_context {
+       /** FTDI device context (used by libftdi). */
+       struct ftdi_context *ftdic;
+
+       /** The current sampling limit (in ms). */
+       uint64_t limit_msec;
+
+       /** The current sampling limit (in number of samples). */
+       uint64_t limit_samples;
+
+       void *cb_data;
+
+       uint8_t *compressed_buf;
+       uint64_t compressed_bytes_ignored;
+       uint8_t *sample_buf;
+       uint64_t bytes_received;
+       uint64_t samples_sent;
+
+       /** ScanaPLUS unique device ID (3 bytes). */
+       uint8_t devid[3];
 };
 
-SR_PRIV int ikalogic_scanaplus_receive_data(int fd, int revents, void *cb_data);
+SR_PRIV int scanaplus_close(struct dev_context *devc);
+SR_PRIV int scanaplus_get_device_id(struct dev_context *devc);
+SR_PRIV int scanaplus_init(struct dev_context *devc);
+SR_PRIV int scanaplus_start_acquisition(struct dev_context *devc);
+SR_PRIV int scanaplus_receive_data(int fd, int revents, void *cb_data);
 
 #endif