]> sigrok.org Git - libsigrok.git/blobdiff - sigrok.h.in
sr: add unit field to sr_df_analog packet
[libsigrok.git] / sigrok.h.in
index 442136ec72d3cc50826db8f675d32b5d937d7d0c..304f1d8f4f4f217e90a0da038a7c3044c86e4b2c 100644 (file)
@@ -142,6 +142,16 @@ enum {
        SR_T_UINT64,
        SR_T_CHAR,
        SR_T_BOOL,
+       SR_T_FLOAT,
+       SR_T_RATIONAL_PERIOD,
+       SR_T_RATIONAL_VOLT,
+};
+
+struct sr_rational {
+       /* numerator */
+       uint64_t p;
+       /* denominator */
+       uint64_t q;
 };
 
 /* sr_datafeed_packet.type values */
@@ -153,6 +163,14 @@ enum {
        SR_DF_META_LOGIC,
        SR_DF_ANALOG,
        SR_DF_META_ANALOG,
+       SR_DF_FRAME_BEGIN,
+       SR_DF_FRAME_END,
+};
+
+/* sr_datafeed_analog.unit values */
+enum {
+       SR_UNIT_VOLTAGE,
+       SR_UNIT_CURRENT,
 };
 
 struct sr_datafeed_packet {
@@ -182,6 +200,7 @@ struct sr_datafeed_meta_analog {
 
 struct sr_datafeed_analog {
        int num_samples;
+       int unit;
        float *data;
 };
 
@@ -291,7 +310,28 @@ enum {
        SR_HWCAP_RLE,
 
        /** The device supports setting trigger slope. */
-       SR_HWCAP_TRIGGERSLOPE,
+       SR_HWCAP_TRIGGER_SLOPE,
+
+       /** Trigger source. */
+       SR_HWCAP_TRIGGER_SOURCE,
+
+       /** Horizontal trigger position */
+       SR_HWCAP_HORIZ_TRIGGERPOS,
+
+       /** Buffer size. */
+       SR_HWCAP_BUFFERSIZE,
+
+       /** Time base. */
+       SR_HWCAP_TIMEBASE,
+
+       /** Filter. */
+       SR_HWCAP_FILTER,
+
+       /** Volts/div. */
+       SR_HWCAP_VDIV,
+
+       /** Coupling. */
+       SR_HWCAP_COUPLING,
 
        /*--- Special stuff -------------------------------------------------*/
 
@@ -321,6 +361,12 @@ enum {
         */
        SR_HWCAP_LIMIT_SAMPLES,
 
+       /**
+        * The device supports setting a frame limit, i.e. how many
+        * frames should be acquired.
+        */
+       SR_HWCAP_LIMIT_FRAMES,
+
        /**
         * The device supports continuous sampling, i.e. neither a time limit
         * nor a sample number limit has to be supplied, it will just acquire
@@ -381,12 +427,24 @@ enum {
        SR_DI_PROBE_NAMES,
        /* Samplerates supported by this device, (struct sr_samplerates) */
        SR_DI_SAMPLERATES,
-       /* Types of trigger supported, out of "01crf" (char *) */
+       /* Types of logic trigger supported, out of "01crf" (char *) */
        SR_DI_TRIGGER_TYPES,
        /* The currently set samplerate in Hz (uint64_t) */
        SR_DI_CUR_SAMPLERATE,
        /* Supported patterns (in pattern generator mode) */
        SR_DI_PATTERNS,
+       /* Supported buffer sizes */
+       SR_DI_BUFFERSIZES,
+       /* Supported time bases */
+       SR_DI_TIMEBASES,
+       /* Supported trigger sources */
+       SR_DI_TRIGGER_SOURCES,
+       /* Supported filter targets */
+       SR_DI_FILTERS,
+       /* Valid volts/div values */
+       SR_DI_VDIVS,
+       /* Coupling options */
+       SR_DI_COUPLING,
 };
 
 /*
@@ -398,7 +456,7 @@ struct sr_samplerates {
        uint64_t low;
        uint64_t high;
        uint64_t step;
-       uint64_t *list;
+       const uint64_t *list;
 };
 
 struct sr_dev_driver {
@@ -412,10 +470,10 @@ struct sr_dev_driver {
        /* Device-specific */
        int (*dev_open) (int dev_index);
        int (*dev_close) (int dev_index);
-       void *(*dev_info_get) (int dev_index, int dev_info_id);
+       const void *(*dev_info_get) (int dev_index, int dev_info_id);
        int (*dev_status_get) (int dev_index);
-       int *(*hwcap_get_all) (void);
-       int (*dev_config_set) (int dev_index, int hwcap, void *value);
+       const int *(*hwcap_get_all) (void);
+       int (*dev_config_set) (int dev_index, int hwcap, const void *value);
        int (*dev_acquisition_start) (int dev_index, void *session_dev_id);
        int (*dev_acquisition_stop) (int dev_index, void *session_dev_id);
 };