X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Fdecode%2Fdecoder.hpp;h=7b1a20134acaccd7ce4adec6462d11a02c11ffcb;hp=bc1673c97e032cc59ab900cd35cd1a926de7ad6a;hb=f54e68b03d5d24c7787962fcc701d8d52b0ec8ab;hpb=ac9494eff3ebc74ae7a87746a4d8668c68f32b52 diff --git a/pv/data/decode/decoder.hpp b/pv/data/decode/decoder.hpp index bc1673c9..7b1a2013 100644 --- a/pv/data/decode/decoder.hpp +++ b/pv/data/decode/decoder.hpp @@ -28,6 +28,7 @@ #include #include +#include using std::map; using std::string; @@ -49,6 +50,15 @@ namespace decode { class Decoder; +struct AnnotationClass +{ + size_t id; + char* name; + char* description; + Row* row; + bool visible; +}; + struct DecodeChannel { uint16_t id; ///< Global numerical ID for the decode channels in the stack @@ -72,22 +82,23 @@ struct DecodeBinaryClassInfo class Decoder { public: - Decoder(const srd_decoder *const dec); + Decoder(const srd_decoder *const dec, uint8_t stack_level); virtual ~Decoder(); - const srd_decoder* decoder() const; + const srd_decoder* get_srd_decoder() const; + + uint8_t get_stack_level() const; const char* name() const; - bool shown() const; - void show(bool show = true); + bool visible() const; + void set_visible(bool visible); const vector& channels() const; void set_channels(vector channels); const map& options() const; - void set_option(const char *id, GVariant *value); void apply_all_options(); @@ -97,15 +108,26 @@ public: srd_decoder_inst* create_decoder_inst(srd_session *session); void invalidate_decoder_inst(); + vector get_rows(); + Row* get_row_by_id(size_t id); + + vector ann_classes() const; + vector ann_classes(); + AnnotationClass* get_ann_class_by_id(size_t id); + const AnnotationClass* get_ann_class_by_id(size_t id) const; + uint32_t get_binary_class_count() const; const DecodeBinaryClassInfo* get_binary_class(uint32_t id) const; private: - const srd_decoder *const decoder_; + const srd_decoder* const srd_decoder_; + uint8_t stack_level_; - bool shown_; + bool visible_; vector channels_; + vector rows_; + vector ann_classes_; vector bin_classes_; map options_; srd_decoder_inst *decoder_inst_;