]> sigrok.org Git - pulseview.git/blobdiff - pv/data/logicsegment.cpp
Add segment_id to all segment classes
[pulseview.git] / pv / data / logicsegment.cpp
index 62f188e383d4dff662874dce86d975f0ecbdf3a9..4b32f38d89992a6500293d0d462489a77a9e3243 100644 (file)
@@ -46,9 +46,9 @@ const int LogicSegment::MipMapScaleFactor = 1 << MipMapScalePower;
 const float LogicSegment::LogMipMapScaleFactor = logf(MipMapScaleFactor);
 const uint64_t LogicSegment::MipMapDataUnit = 64 * 1024; // bytes
 
-LogicSegment::LogicSegment(pv::data::Logic& owner, unsigned int unit_size,
-       uint64_t samplerate) :
-       Segment(samplerate, unit_size),
+LogicSegment::LogicSegment(pv::data::Logic& owner, uint32_t segment_id,
+       unsigned int unit_size, uint64_t samplerate) :
+       Segment(segment_id, samplerate, unit_size),
        owner_(owner),
        last_append_sample_(0)
 {
@@ -296,10 +296,11 @@ uint64_t LogicSegment::get_unpacked_sample(uint64_t index) const
 {
        assert(index < sample_count_);
 
-       uint8_t* data = new uint8_t[unit_size_];
+       assert(unit_size_ <= 8);  // 8 * 8 = 64 channels
+       uint8_t data[8];
+
        get_raw_samples(index, 1, data);
        uint64_t sample = unpack_sample(data);
-       delete[] data;
 
        return sample;
 }