]> sigrok.org Git - libsigrok.git/blobdiff - libsigrok.h
Don't define names ending with _t (POSIX reserved).
[libsigrok.git] / libsigrok.h
index f9678de76e4f7c6dca37a5b0d8401dd96e3f160d..552e1075e1d35ed1dd56f06f4e6e5df6a466c353 100644 (file)
@@ -92,7 +92,7 @@ enum {
 #define SR_HZ_TO_NS(n) ((uint64_t)(1000000000ULL) / (n))
 
 /** libsigrok loglevels. */
-enum {
+enum sr_loglevel {
        SR_LOG_NONE = 0, /**< Output no messages at all. */
        SR_LOG_ERR  = 1, /**< Output error messages. */
        SR_LOG_WARN = 2, /**< Output warnings. */
@@ -132,10 +132,10 @@ enum {
 #endif
 
 /** Type definition for callback function for data reception. */
-typedef int (*sr_receive_data_callback_t)(int fd, int revents, void *cb_data);
+typedef int (*sr_receive_data_callback)(int fd, int revents, void *cb_data);
 
 /** Data types used by sr_config_info(). */
-enum {
+enum sr_datatype {
        SR_T_UINT64 = 10000,
        SR_T_CHAR,
        SR_T_BOOL,
@@ -149,7 +149,7 @@ enum {
 };
 
 /** Value for sr_datafeed_packet.type. */
-enum {
+enum sr_packettype {
        /** Payload is sr_datafeed_header. */
        SR_DF_HEADER = 10000,
        /** End of stream (no further data). */
@@ -169,7 +169,7 @@ enum {
 };
 
 /** Measured quantity, sr_datafeed_analog.mq. */
-enum {
+enum sr_mq {
        SR_MQ_VOLTAGE = 10000,
        SR_MQ_CURRENT,
        SR_MQ_RESISTANCE,
@@ -198,7 +198,7 @@ enum {
 };
 
 /** Unit of measured quantity, sr_datafeed_analog.unit. */
-enum {
+enum sr_unit {
        /** Volt */
        SR_UNIT_VOLT = 10000,
        /** Ampere (current). */
@@ -255,7 +255,7 @@ enum {
 };
 
 /** Values for sr_datafeed_analog.flags. */
-enum {
+enum sr_mqflag {
        /** Voltage measurement is alternating current (AC). */
        SR_MQFLAG_AC = 0x01,
        /** Voltage measurement is direct current (DC). */
@@ -430,24 +430,21 @@ struct sr_input_format {
 
 /** Output (file) format struct. */
 struct sr_output {
-       /**
-        * A pointer to this output format's 'struct sr_output_format'.
-        * The frontend can use this to call the module's callbacks.
-        */
+       /** A pointer to this output's format.  */
        struct sr_output_format *format;
 
        /**
         * The device for which this output module is creating output. This
         * can be used by the module to find out channel names and numbers.
         */
-       struct sr_dev_inst *sdi;
+       const struct sr_dev_inst *sdi;
 
        /**
         * An optional parameter which the frontend can pass in to the
         * output module. How the string is interpreted is entirely up to
         * the module.
         */
-       char *param;
+       GHashTable *params;
 
        /**
         * A generic pointer which can be used by the module to keep internal
@@ -514,7 +511,7 @@ struct sr_output_format {
         * @retval SR_OK Success
         * @retval other Negative error code.
         */
-       int (*receive) (struct sr_output *o, const struct sr_dev_inst *sdi,
+       int (*receive) (struct sr_output *o,
                        const struct sr_datafeed_packet *packet, GString **out);
 
        /**
@@ -529,7 +526,7 @@ struct sr_output_format {
 };
 
 /** Constants for channel type. */
-enum {
+enum sr_channeltype {
        /** Channel type is logic channel. */
        SR_CHANNEL_LOGIC = 10000,
        /** Channel type is analog channel. */
@@ -583,7 +580,7 @@ struct sr_config_info {
 };
 
 /** Constants for device classes */
-enum {
+enum sr_configkey {
        /*--- Device classes ------------------------------------------------*/
 
        /** The device can act as logic analyzer. */
@@ -831,6 +828,12 @@ enum {
        /** The device has internal storage, into which data is logged. This
         * starts or stops the internal logging. */
        SR_CONF_DATALOG,
+
+       /** Device mode for multi-function devices. */
+       SR_CONF_DEVICE_MODE,
+
+       /** Self test mode. */
+       SR_CONF_TEST_MODE,
 };
 
 /** Device instance data