]> sigrok.org Git - pulseview.git/blobdiff - pv/data/decode/decoder.hpp
DecodeTrace: Highlight row expand markers when a class is hidden
[pulseview.git] / pv / data / decode / decoder.hpp
index 2a7ef11ea14365fe8947e41154d493a3d46d9425..4baf86a026aeb4b62bf140f6af273ebae8d4156c 100644 (file)
@@ -28,6 +28,7 @@
 #include <glib.h>
 
 #include <pv/data/signalbase.hpp>
+#include <pv/data/decode/row.hpp>
 
 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
@@ -63,7 +73,7 @@ struct DecodeChannel
 
 struct DecodeBinaryClassInfo
 {
-       uint8_t bin_class_id;
+       uint32_t bin_class_id;
        char* name;
        char* description;
 };
@@ -76,7 +86,7 @@ public:
 
        virtual ~Decoder();
 
-       const srd_decoder* decoder() const;
+       const srd_decoder* get_srd_decoder() const;
 
        const char* name() const;
 
@@ -97,15 +107,23 @@ public:
        srd_decoder_inst* create_decoder_inst(srd_session *session);
        void invalidate_decoder_inst();
 
-       uint8_t get_binary_class_count() const;
-       const DecodeBinaryClassInfo* get_binary_class(uint8_t id) const;
+       vector<Row*> get_rows();
+       Row* get_row_by_id(size_t id);
+
+       vector<const AnnotationClass*> ann_classes() const;
+       AnnotationClass* get_ann_class_by_id(size_t id);
+
+       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_;
 
        bool shown_;
 
        vector<DecodeChannel*> channels_;
+       vector<Row> rows_;
+       vector<AnnotationClass> ann_classes_;
        vector<DecodeBinaryClassInfo> bin_classes_;
        map<string, GVariant*> options_;
        srd_decoder_inst *decoder_inst_;