X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=blobdiff_plain;f=libsigrokdecode.h.in;h=b75942808e2421207df994e49014263d7a43dc34;hp=c61a0e4d17d6c0a11c094fd8509b9d79d676d62e;hb=a929afa618be52072786b51f1b9ea7be03edcd49;hpb=32cfb920625182c03eb4a4564ffdfa9d2b08f15c diff --git a/libsigrokdecode.h.in b/libsigrokdecode.h.in index c61a0e4..b759428 100644 --- a/libsigrokdecode.h.in +++ b/libsigrokdecode.h.in @@ -160,16 +160,15 @@ enum { */ enum { SRD_OUTPUT_ANN, - SRD_OUTPUT_PROTO, + SRD_OUTPUT_PYTHON, SRD_OUTPUT_BINARY, + SRD_OUTPUT_META, }; #define SRD_MAX_NUM_PROBES 64 enum { - SRD_CONF_NUM_PROBES = 10000, - SRD_CONF_UNITSIZE, - SRD_CONF_SAMPLERATE, + SRD_CONF_SAMPLERATE = 10000, }; struct srd_decoder { @@ -203,6 +202,12 @@ struct srd_decoder { */ GSList *annotations; + /** + * List of NULL-terminated char[], containing descriptions of the + * supported binary output. + */ + GSList *binary; + /** List of decoder options. */ GSList *options; @@ -242,9 +247,7 @@ struct srd_decoder_inst { GSList *pd_output; int dec_num_probes; int *dec_probemap; - int data_num_probes; int data_unitsize; - uint64_t data_samplerate; GSList *next_di; }; @@ -253,15 +256,27 @@ struct srd_pd_output { int output_type; struct srd_decoder_inst *di; char *proto_id; + /* Only used for OUTPUT_META. */ + const GVariantType *meta_type; + char *meta_name; + char *meta_descr; }; struct srd_proto_data { uint64_t start_sample; uint64_t end_sample; struct srd_pd_output *pdo; - int ann_format; void *data; }; +struct srd_proto_data_annotation { + int ann_format; + char **ann_text; +}; +struct srd_proto_data_binary { + int bin_class; + uint64_t size; + const unsigned char *data; +}; typedef void (*srd_pd_output_callback_t)(struct srd_proto_data *pdata, void *cb_data); @@ -304,10 +319,11 @@ SRD_API struct srd_decoder_inst *srd_inst_find_by_id(struct srd_session *sess, const char *inst_id); SRD_API int srd_session_new(struct srd_session **sess); SRD_API int srd_session_start(struct srd_session *sess); -SRD_API int srd_session_config_set(struct srd_session *sess, int key, +SRD_API int srd_session_metadata_set(struct srd_session *sess, int key, GVariant *data); SRD_API int srd_session_send(struct srd_session *sess, - uint64_t start_samplenum, const uint8_t *inbuf, uint64_t inbuflen); + uint64_t start_samplenum, uint64_t end_samplenum, + const uint8_t *inbuf, uint64_t inbuflen); SRD_API int srd_session_destroy(struct srd_session *sess); SRD_API int srd_pd_output_callback_add(struct srd_session *sess, int output_type, srd_pd_output_callback_t cb, void *cb_data);