]> sigrok.org Git - libsigrok.git/blobdiff - sigrok.h
Add sr_ prefix to datafeed_callback typedef.
[libsigrok.git] / sigrok.h
index b7c4aaf5b0fbb1b9c2bddeb7372f785d7b55bc51..e2bbecc59a24281af38471a7ce5ec7701dc5570d 100644 (file)
--- a/sigrok.h
+++ b/sigrok.h
@@ -25,7 +25,9 @@
 #include <stdint.h>
 #include <inttypes.h>
 #include <glib.h>
+#ifdef HAVE_LIBUSB_1_0
 #include <libusb.h>
+#endif
 
 #ifdef __cplusplus
 extern "C" {
@@ -76,13 +78,13 @@ typedef int (*receive_data_callback) (int fd, int revents, void *user_data);
 
 /* Data types used by hardware plugins for set_configuration() */
 enum {
-       T_UINT64,
-       T_CHAR,
-       T_NULL,
+       SR_T_UINT64,
+       SR_T_CHAR,
+       SR_T_NULL,
 };
 
 enum {
-       PROTO_RAW,
+       SR_PROTO_RAW,
 };
 
 /* (Unused) protocol decoder stack entry */
@@ -94,12 +96,12 @@ struct protocol {
 
 /* sr_datafeed_packet.type values */
 enum {
-       DF_HEADER,
-       DF_END,
-       DF_TRIGGER,
-       DF_LOGIC,
-       DF_ANALOG,
-       DF_PD,
+       SR_DF_HEADER,
+       SR_DF_END,
+       SR_DF_TRIGGER,
+       SR_DF_LOGIC,
+       SR_DF_ANALOG,
+       SR_DF_PD,
 };
 
 struct sr_datafeed_packet {
@@ -132,7 +134,7 @@ struct analog_sample {
 struct sr_input {
        struct sr_input_format *format;
        char *param;
-       struct device *vdevice;
+       struct sr_device *vdevice;
 };
 
 struct sr_input_format {
@@ -145,7 +147,7 @@ struct sr_input_format {
 
 struct sr_output {
        struct sr_output_format *format;
-       struct device *device;
+       struct sr_device *device;
        char *param;
        void *internal;
 };
@@ -173,7 +175,7 @@ struct analyzer {
 /* Size of a chunk in units */
 #define DATASTORE_CHUNKSIZE 512000
 
-struct datastore {
+struct sr_datastore {
        /* Size in bytes of the number of units stored in this datastore */
        int ds_unitsize;
        unsigned int num_units; /* TODO: uint64_t */
@@ -186,23 +188,23 @@ struct datastore {
  * to the device index within that plugin; it may be handling more than one
  * device. All relevant plugin calls take a device_index parameter for this.
  */
-struct device {
+struct sr_device {
        /* Which plugin handles this device */
-       struct device_plugin *plugin;
+       struct sr_device_plugin *plugin;
        /* A plugin may handle multiple devices of the same type */
        int plugin_index;
-       /* List of struct probe* */
+       /* List of struct sr_probe* */
        GSList *probes;
        /* Data acquired by this device, if any */
-       struct datastore *datastore;
+       struct sr_datastore *datastore;
 };
 
 enum {
-       PROBE_TYPE_LOGIC,
-       PROBE_TYPE_ANALOG,
+       SR_PROBE_TYPE_LOGIC,
+       SR_PROBE_TYPE_ANALOG,
 };
 
-struct probe {
+struct sr_probe {
        int index;
        int type;
        gboolean enabled;
@@ -214,23 +216,28 @@ extern GSList *devices;
 
 /* Hardware plugin capabilities */
 enum {
-       HWCAP_DUMMY,             /* Used to terminate lists */
+       SR_HWCAP_DUMMY,             /* Used to terminate lists */
        /* device classes */
-       HWCAP_LOGIC_ANALYZER,
+       SR_HWCAP_LOGIC_ANALYZER,
 
        /* device options */
-       HWCAP_SAMPLERATE,        /* Change samplerate */
-       HWCAP_PROBECONFIG,       /* Configure probe mask */
-       HWCAP_CAPTURE_RATIO,     /* Set pre/post-trigger capture ratio */
-       HWCAP_PATTERN_MODE,      /* Pattern generator mode */
+       SR_HWCAP_SAMPLERATE,        /* Change samplerate */
+       SR_HWCAP_PROBECONFIG,       /* Configure probe mask */
+       SR_HWCAP_CAPTURE_RATIO,     /* Set pre/post-trigger capture ratio */
+       SR_HWCAP_PATTERN_MODE,      /* Pattern generator mode */
+
+       /* special stuff */
+       SR_HWCAP_CAPTUREFILE,       /* capturefile to inject */
+       SR_HWCAP_CAPTURE_UNITSIZE,  /* unitsize of capturefile data */
+       SR_HWCAP_CAPTURE_NUM_PROBES,/* set number of probes */
 
        /* acquisition modes */
-       HWCAP_LIMIT_MSEC,        /* Set a time limit for sample acquisition */
-       HWCAP_LIMIT_SAMPLES,     /* Set a limit on number of samples */
-       HWCAP_CONTINUOUS,
+       SR_HWCAP_LIMIT_MSEC,        /* Set a time limit for sample acquisition */
+       SR_HWCAP_LIMIT_SAMPLES,     /* Set a limit on number of samples */
+       SR_HWCAP_CONTINUOUS,
 };
 
-struct hwcap_option {
+struct sr_hwcap_option {
        int capability;
        int type;
        char *description;
@@ -246,37 +253,39 @@ struct sr_device_instance {
        char *version;
        void *priv;
        union {
-               struct usb_device_instance *usb;
-               struct serial_device_instance *serial;
+               struct sr_usb_device_instance *usb;
+               struct sr_serial_device_instance *serial;
        };
 };
 
 /* sr_device_instance types */
 enum {
-       USB_INSTANCE,
-       SERIAL_INSTANCE,
+       SR_USB_INSTANCE,
+       SR_SERIAL_INSTANCE,
 };
 
-struct usb_device_instance {
+#ifdef HAVE_LIBUSB_1_0
+struct sr_usb_device_instance {
        uint8_t bus;
        uint8_t address;
        struct libusb_device_handle *devhdl;
 };
+#endif
 
-struct serial_device_instance {
+struct sr_serial_device_instance {
        char *port;
        int fd;
 };
 
 /* Device instance status */
 enum {
-       ST_NOT_FOUND,
+       SR_ST_NOT_FOUND,
        /* Found, but still booting */
-       ST_INITIALIZING,
+       SR_ST_INITIALIZING,
        /* Live, but not in use */
-       ST_INACTIVE,
+       SR_ST_INACTIVE,
        /* Actively in use in a session */
-       ST_ACTIVE,
+       SR_ST_ACTIVE,
 };
 
 /*
@@ -287,17 +296,17 @@ enum {
 /* Device info IDs */
 enum {
        /* struct sr_device_instance for this specific device */
-       DI_INSTANCE,
+       SR_DI_INSTANCE,
        /* The number of probes connected to this device */
-       DI_NUM_PROBES,
-       /* Samplerates supported by this device, (struct samplerates) */
-       DI_SAMPLERATES,
+       SR_DI_NUM_PROBES,
+       /* Samplerates supported by this device, (struct sr_samplerates) */
+       SR_DI_SAMPLERATES,
        /* Types of trigger supported, out of "01crf" (char *) */
-       DI_TRIGGER_TYPES,
+       SR_DI_TRIGGER_TYPES,
        /* The currently set samplerate in Hz (uint64_t) */
-       DI_CUR_SAMPLERATE,
+       SR_DI_CUR_SAMPLERATE,
        /* Supported pattern generator modes */
-       DI_PATTERNMODES,
+       SR_DI_PATTERNMODES,
 };
 
 /*
@@ -305,14 +314,14 @@ enum {
  * granularity, or is limited to a set of defined samplerates. Use either
  * step or list, but not both.
  */
-struct samplerates {
+struct sr_samplerates {
        uint64_t low;
        uint64_t high;
        uint64_t step;
        uint64_t *list;
 };
 
-struct device_plugin {
+struct sr_device_plugin {
        /* Plugin-specific */
        char *name;
        char *longname;
@@ -331,15 +340,8 @@ struct device_plugin {
        void (*stop_acquisition) (int device_index, gpointer session_device_id);
 };
 
-struct gsource_fd {
-       GSource source;
-       GPollFD gpfd;
-       /* Not really using this */
-       GSource *timeout_source;
-};
-
-struct session {
-       /* List of struct device* */
+struct sr_session {
+       /* List of struct sr_device* */
        GSList *devices;
        /* List of struct analyzer* */
        GSList *analyzers;