]> sigrok.org Git - pulseview.git/blobdiff - pv/data/segment.hpp
Implement Trace::ShowLastCompleteSegmentOnly display mode
[pulseview.git] / pv / data / segment.hpp
index 3305f4c8d3033b7ce05f0b06cfcd98cd4549ae82..62750c11c9c62e0d0de0f948e8d4896417970a22 100644 (file)
@@ -39,6 +39,7 @@ struct MediumSize32Single;
 struct MaxSize32Single;
 struct MediumSize32Multi;
 struct MaxSize32Multi;
+struct MaxSize32MultiAtOnce;
 struct MaxSize32MultiIterated;
 }  // namespace SegmentTest
 
@@ -70,12 +71,15 @@ public:
 
        unsigned int unit_size() const;
 
+       void set_complete();
+       bool is_complete() const;
+
        void free_unused_memory();
 
 protected:
        void append_single_sample(void *data);
        void append_samples(void *data, uint64_t samples);
-       uint8_t* get_raw_samples(uint64_t start, uint64_t count) const;
+       void get_raw_samples(uint64_t start, uint64_t count, uint8_t *dest) const;
 
        SegmentRawDataIterator* begin_raw_sample_iteration(uint64_t start);
        void continue_raw_sample_iteration(SegmentRawDataIterator* it, uint64_t increase);
@@ -92,6 +96,7 @@ protected:
        unsigned int unit_size_;
        int iterator_count_;
        bool mem_optimization_requested_;
+       bool is_complete_;
 
        friend struct SegmentTest::SmallSize8Single;
        friend struct SegmentTest::MediumSize8Single;
@@ -101,6 +106,7 @@ protected:
        friend struct SegmentTest::MaxSize32Single;
        friend struct SegmentTest::MediumSize32Multi;
        friend struct SegmentTest::MaxSize32Multi;
+       friend struct SegmentTest::MaxSize32MultiAtOnce;
        friend struct SegmentTest::MaxSize32MultiIterated;
 };