X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Flogicsegment.hpp;h=a18a59f2e154130de84f5b7c009c2f9f50199fff;hp=88576118d06eb180b281d0d8ee9a9b2f1def1e2c;hb=b4bc9b55381ff22196785291d3862c8c8c131885;hpb=4514c57217fc050918f211da391ac31d0272298b;ds=sidebyside diff --git a/pv/data/logicsegment.hpp b/pv/data/logicsegment.hpp index 88576118..a18a59f2 100644 --- a/pv/data/logicsegment.hpp +++ b/pv/data/logicsegment.hpp @@ -90,17 +90,6 @@ public: void continue_sample_iteration(SegmentLogicDataIterator* it, uint64_t increase); void end_sample_iteration(SegmentLogicDataIterator* it); -private: - uint64_t unpack_sample(const uint8_t *ptr) const; - void pack_sample(uint8_t *ptr, uint64_t value); - - void reallocate_mipmap_level(MipMapLevel &m); - - void append_payload_to_mipmap(); - - uint64_t get_unpacked_sample(uint64_t index) const; - -public: /** * Parses a logic data segment to generate a list of transitions * in a time interval to a given level of detail. @@ -113,7 +102,20 @@ public: */ void get_subsampled_edges(vector &edges, uint64_t start, uint64_t end, - float min_length, int sig_index); + float min_length, int sig_index, bool first_change_only = false); + + void get_surrounding_edges(vector &dest, + uint64_t origin_sample, float min_length, int sig_index); + +private: + uint64_t unpack_sample(const uint8_t *ptr) const; + void pack_sample(uint8_t *ptr, uint64_t value); + + void reallocate_mipmap_level(MipMapLevel &m); + + void append_payload_to_mipmap(); + + uint64_t get_unpacked_sample(uint64_t index) const; private: uint64_t get_subsample(int level, uint64_t offset) const;