]> sigrok.org Git - pulseview.git/blobdiff - pv/data/logicsnapshot.h
Make member variable underscores a suffix instead of a prefix
[pulseview.git] / pv / data / logicsnapshot.h
index 9868a212561fb17364cdd98f525c882432675371..db4d97b3b93ab59e6d1682c68567ebf33beb7972 100644 (file)
 #include <utility>
 #include <vector>
 
+namespace sigrok {
+       class Logic;
+}
+
 namespace LogicSnapshotTest {
-class Pow2;
-class Basic;
-class LargeData;
-class Pulses;
-class LongPulses;
+struct Pow2;
+struct Basic;
+struct LargeData;
+struct Pulses;
+struct LongPulses;
 }
 
 namespace pv {
@@ -58,13 +62,20 @@ public:
        typedef std::pair<int64_t, bool> EdgePair;
 
 public:
-       LogicSnapshot(const sr_datafeed_logic &logic);
+       LogicSnapshot(std::shared_ptr<sigrok::Logic> logic,
+                     uint64_t expected_num_samples = 0);
 
        virtual ~LogicSnapshot();
 
-       void append_payload(const sr_datafeed_logic &logic);
+       void append_payload(std::shared_ptr<sigrok::Logic> logic);
+
+       void get_samples(uint8_t *const data,
+               int64_t start_sample, int64_t end_sample) const;
 
 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();
@@ -92,14 +103,14 @@ private:
        static uint64_t pow2_ceil(uint64_t x, unsigned int power);
 
 private:
-       struct MipMapLevel _mip_map[ScaleStepCount];
-       uint64_t _last_append_sample;
-
-       friend class LogicSnapshotTest::Pow2;
-       friend class LogicSnapshotTest::Basic;
-       friend class LogicSnapshotTest::LargeData;
-       friend class LogicSnapshotTest::Pulses;
-       friend class LogicSnapshotTest::LongPulses;
+       struct MipMapLevel mip_map_[ScaleStepCount];
+       uint64_t last_append_sample_;
+
+       friend struct LogicSnapshotTest::Pow2;
+       friend struct LogicSnapshotTest::Basic;
+       friend struct LogicSnapshotTest::LargeData;
+       friend struct LogicSnapshotTest::Pulses;
+       friend struct LogicSnapshotTest::LongPulses;
 };
 
 } // namespace data