]> sigrok.org Git - libsigrok.git/blobdiff - libsigrok.h
unify sr_datafeed_meta_* into one struct containing sr_config
[libsigrok.git] / libsigrok.h
index ee1e9e1037fe377bf01022f944b2c1f0045a0bf7..7b400f91baa7fce3b133ac2ab6fd61c2121fc334 100644 (file)
@@ -148,11 +148,10 @@ struct sr_rational {
 enum {
        SR_DF_HEADER = 10000,
        SR_DF_END,
+       SR_DF_META,
        SR_DF_TRIGGER,
        SR_DF_LOGIC,
-       SR_DF_META_LOGIC,
        SR_DF_ANALOG,
-       SR_DF_META_ANALOG,
        SR_DF_FRAME_BEGIN,
        SR_DF_FRAME_END,
 };
@@ -210,6 +209,11 @@ enum {
        SR_UNIT_UNITLESS,
        /** Sound pressure level relative so 20 micropascals. */
        SR_UNIT_DECIBEL_SPL,
+       /**
+        * Normalized (0 to 1) concentration of a substance or compound with 0
+        * representing a concentration of 0%, and 1 being 100%. This is
+        * represented as the fraction of number of particles of the substance.
+        */
        SR_UNIT_CONCENTRATION,
 };
 
@@ -263,7 +267,7 @@ struct sr_context;
 
 struct sr_datafeed_packet {
        uint16_t type;
-       void *payload;
+       const void *payload;
 };
 
 struct sr_datafeed_header {
@@ -271,6 +275,10 @@ struct sr_datafeed_header {
        struct timeval starttime;
 };
 
+struct sr_datafeed_meta {
+       GSList *config;
+};
+
 struct sr_datafeed_meta_logic {
        int num_probes;
        uint64_t samplerate;
@@ -331,17 +339,10 @@ struct sr_output_format {
        int (*event) (struct sr_output *o, int event_type, uint8_t **data_out,
                      uint64_t *length_out);
        GString *(*recv) (struct sr_output *o, const struct sr_dev_inst *sdi,
-                       struct sr_datafeed_packet *packet);
+                       const struct sr_datafeed_packet *packet);
        int (*cleanup) (struct sr_output *o);
 };
 
-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 */
-       GSList *chunklist;
-};
-
 /*
  * This represents a generic device connected to the system.
  * For device-specific information, ask the driver. The driver_index refers
@@ -355,8 +356,6 @@ struct sr_dev {
        int driver_index;
        /** List of struct sr_probe pointers. */
        GSList *probes;
-       /** Data acquired by this device, if any. */
-       struct sr_datastore *datastore;
 };
 
 enum {
@@ -372,11 +371,19 @@ struct sr_probe {
        char *trigger;
 };
 
-struct sr_hwopt {
-       int hwopt;
+struct sr_config {
+       int key;
        const void *value;
 };
 
+struct sr_config_info {
+       int key;
+       char *id;
+       char *name;
+       char *description;
+       int datatype;
+};
+
 /** Hardware driver options. */
 enum {
        /**
@@ -519,13 +526,6 @@ enum {
        SR_HWCAP_CONTINUOUS,
 };
 
-struct sr_hwcap_option {
-       int hwcap;
-       int type;
-       char *description;
-       char *shortname;
-};
-
 struct sr_dev_inst {
        struct sr_dev_driver *driver;
        int index;
@@ -571,10 +571,6 @@ enum {
        SR_DI_HWOPTS = 10000,
        /** A list of capabilities supported by the device. */
        SR_DI_HWCAPS,
-       /** The number of probes connected to this device. */
-       SR_DI_NUM_PROBES,
-       /** The probe names on this device. */
-       SR_DI_PROBE_NAMES,
        /** Samplerates supported by this device (struct sr_samplerates). */
        SR_DI_SAMPLERATES,
        /** Types of logic trigger supported, out of "01crf" (char *). */