X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=sigrok.h.in;h=304f1d8f4f4f217e90a0da038a7c3044c86e4b2c;hb=6e6eeff47a93e48b31ef5d16feb707e8725dbbd3;hp=442136ec72d3cc50826db8f675d32b5d937d7d0c;hpb=ee7489d23449a3f5a81777fbdb3309dfe22bcecd;p=libsigrok.git diff --git a/sigrok.h.in b/sigrok.h.in index 442136ec..304f1d8f 100644 --- a/sigrok.h.in +++ b/sigrok.h.in @@ -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); };