X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fdata%2Fsegment.hpp;h=66085fafc935d151f5ded69cc7863bff984858a4;hb=1c552f400ee967f7a489853578c4d8d4bd2edfbf;hp=f5a00c9581530529044cb33d283f52cbb7c1d162;hpb=50e56db003055e96c5a12e675889e4afad07b65c;p=pulseview.git diff --git a/pv/data/segment.hpp b/pv/data/segment.hpp index f5a00c95..66085faf 100644 --- a/pv/data/segment.hpp +++ b/pv/data/segment.hpp @@ -23,14 +23,16 @@ #include "pv/util.hpp" +#include #include #include -#include +#include #include +using std::atomic; using std::recursive_mutex; -using std::vector; +using std::deque; namespace SegmentTest { struct SmallSize8Single; @@ -81,9 +83,13 @@ public: void free_unused_memory(); +Q_SIGNALS: + void completed(); + protected: void append_single_sample(void *data); void append_samples(void *data, uint64_t samples); + const uint8_t* get_raw_sample(uint64_t sample_num) const; void get_raw_samples(uint64_t start, uint64_t count, uint8_t *dest) const; SegmentDataIterator* begin_sample_iteration(uint64_t start); @@ -94,10 +100,10 @@ protected: uint32_t segment_id_; mutable recursive_mutex mutex_; - vector data_chunks_; + deque data_chunks_; uint8_t* current_chunk_; uint64_t used_samples_, unused_samples_; - uint64_t sample_count_; + atomic sample_count_; pv::util::Timestamp start_time_; double samplerate_; uint64_t chunk_size_; @@ -121,4 +127,8 @@ protected: } // namespace data } // namespace pv +typedef std::shared_ptr SharedPtrToSegment; + +Q_DECLARE_METATYPE(SharedPtrToSegment); + #endif // PULSEVIEW_PV_DATA_SEGMENT_HPP