X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Fdecoderstack.h;fp=pv%2Fdata%2Fdecoderstack.h;h=80ad64cdfebf90398213d801ef184f128cc7d4bd;hp=9d032ad9756080c19fc8a83d5bc6f407260b906e;hb=f9101a91fc942a28515872ae6c7285973bd54b91;hpb=d2899ad580eea569f3b167e8c9ebcb913194c6b6 diff --git a/pv/data/decoderstack.h b/pv/data/decoderstack.h index 9d032ad9..80ad64cd 100644 --- a/pv/data/decoderstack.h +++ b/pv/data/decoderstack.h @@ -31,7 +31,11 @@ #include #include +#include +#include + struct srd_decoder; +struct srd_decoder_annotation_row; struct srd_probe; struct srd_proto_data; @@ -74,12 +78,15 @@ public: int64_t samples_decoded() const; + std::vector get_rows() const; + /** * Extracts sorted annotations between two period into a vector. */ void get_annotation_subset( std::vector &dest, - uint64_t start_sample, uint64_t end_sample) const; + const decode::Row &row, uint64_t start_sample, + uint64_t end_sample) const; QString error_message(); @@ -92,20 +99,6 @@ public: private: void decode_proc(boost::shared_ptr data); - bool index_entry_start_sample_gt( - const uint64_t sample, const size_t index) const; - bool index_entry_end_sample_lt( - const size_t index, const uint64_t sample) const; - bool index_entry_end_sample_gt( - const uint64_t sample, const size_t index) const; - - void insert_annotation_into_start_index( - const pv::data::decode::Annotation &a, - const size_t storage_offset); - void insert_annotation_into_end_index( - const pv::data::decode::Annotation &a, - const size_t storage_offset); - static void annotation_callback(srd_proto_data *pdata, void *decoder); @@ -126,14 +119,10 @@ private: mutable boost::mutex _mutex; int64_t _samples_decoded; - std::vector _annotations; - /** - * _ann_start_index and _ann_end_index contain lists of annotions - * (represented by offsets in the _annotations vector), sorted in - * ascending ordered by the start_sample and end_sample respectively. - */ - std::vector _ann_start_index, _ann_end_index; + std::map _rows; + + std::map, decode::Row> _class_rows; QString _error_message;