Change PD options to be a tuple of dictionaries.
[libsigrokdecode.git] / libsigrokdecode.h
index 3a72d2ccee5779801847185b2051a2dc53f8f0a9..f07e1ee32da91542e506ec2b9ef3c81e234e4161 100644 (file)
@@ -133,8 +133,6 @@ enum {
        SRD_OUTPUT_META,
 };
 
-#define SRD_MAX_NUM_PROBES 64
-
 enum {
        SRD_CONF_SAMPLERATE = 10000,
 };
@@ -170,6 +168,12 @@ struct srd_decoder {
         */
        GSList *annotations;
 
+       /**
+        * List of annotation rows (row items: id, description, and a list
+        * of annotation classes belonging to this row).
+        */
+       GSList *annotation_rows;
+
        /**
         * List of NULL-terminated char[], containing descriptions of the
         * supported binary output.
@@ -205,6 +209,13 @@ struct srd_decoder_option {
        char *id;
        char *desc;
        GVariant *def;
+    GSList *values;
+};
+
+struct srd_decoder_annotation_row {
+       char *id;
+       char *desc;
+       GSList *ann_classes;
 };
 
 struct srd_decoder_inst {
@@ -216,6 +227,7 @@ struct srd_decoder_inst {
        int dec_num_probes;
        int *dec_probemap;
        int data_unitsize;
+       uint8_t *probe_samples;
        GSList *next_di;
 };
 
@@ -301,7 +313,7 @@ SRD_API int srd_decoder_unload_all(void);
 SRD_API int srd_inst_option_set(struct srd_decoder_inst *di,
                GHashTable *options);
 SRD_API int srd_inst_probe_set_all(struct srd_decoder_inst *di,
-               GHashTable *probes);
+               GHashTable *probes, int unit_size);
 SRD_API struct srd_decoder_inst *srd_inst_new(struct srd_session *sess,
                const char *id, GHashTable *options);
 SRD_API int srd_inst_stack(struct srd_session *sess,