X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Flogicsegment.hpp;h=a7a38ebefa7761a7929073272d5e7dcabf1b0361;hp=43fd41126617bd0b9d76dbc0f8bbf7875c5569bd;hb=7db61e770abd2d1c7eb326a09e35cd4266664c1d;hpb=26a883ede0bcf68d087eda5dd2082890d36c7aef diff --git a/pv/data/logicsegment.hpp b/pv/data/logicsegment.hpp index 43fd4112..a7a38ebe 100644 --- a/pv/data/logicsegment.hpp +++ b/pv/data/logicsegment.hpp @@ -25,6 +25,8 @@ #include #include +#include + namespace sigrok { class Logic; } @@ -40,14 +42,18 @@ struct LongPulses; namespace pv { namespace data { +class Logic; + typedef struct { uint64_t sample_index, chunk_num, chunk_offs; uint8_t* chunk; uint8_t* value; } SegmentLogicDataIterator; -class LogicSegment : public Segment +class LogicSegment : public QObject, public Segment { + Q_OBJECT + private: struct MipMapLevel { @@ -67,7 +73,7 @@ public: typedef std::pair EdgePair; public: - LogicSegment(std::shared_ptr logic, uint64_t samplerate); + LogicSegment(pv::data::Logic& owner, std::shared_ptr data, uint64_t samplerate); virtual ~LogicSegment(); @@ -110,6 +116,8 @@ private: static uint64_t pow2_ceil(uint64_t x, unsigned int power); private: + Logic& owner_; + struct MipMapLevel mip_map_[ScaleStepCount]; uint64_t last_append_sample_;