X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Fdecoderstack.h;h=339c1e0386daf3cd1b9421b67613956564444428;hp=9d032ad9756080c19fc8a83d5bc6f407260b906e;hb=dd048a7ec035447c051c7937ce04aca5be065b4e;hpb=9242129958c996f9ff71da7c7b74d7983b5c59f6 diff --git a/pv/data/decoderstack.h b/pv/data/decoderstack.h index 9d032ad9..339c1e03 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_visible_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;