]> sigrok.org Git - pulseview.git/blobdiff - pv/data/analogsnapshot.h
Ported pv::prop::binding::DeviceOptions to GVariants
[pulseview.git] / pv / data / analogsnapshot.h
index 8eec2797f1a4aa77b5945ccf31f2eef926600dce..74d26763825167a41c81390c08647ba0a3b03560 100644 (file)
 #include <utility>
 #include <vector>
 
+namespace AnalogSnapshotTest {
+class Basic;
+}
+
 namespace pv {
 namespace data {
 
 class AnalogSnapshot : public Snapshot
 {
-private:
+public:
        struct EnvelopeSample
        {
                float min;
                float max;
        };
 
+       struct EnvelopeSection
+       {
+               uint64_t start;
+               unsigned int scale;
+               uint64_t length;
+               EnvelopeSample *samples;
+       };
+
+private:
        struct Envelope
        {
                uint64_t length;
@@ -62,6 +75,9 @@ public:
        const float* get_samples(int64_t start_sample,
                int64_t end_sample) const;
 
+       void get_envelope_section(EnvelopeSection &s,
+               uint64_t start, uint64_t end, float min_length) const;
+
 private:
        void reallocate_envelope(Envelope &l);
 
@@ -69,6 +85,10 @@ private:
 
 private:
        struct Envelope _envelope_levels[ScaleStepCount];
+
+       friend class AnalogSnapshotTest::Basic;
+};
+
 } // namespace data
 } // namespace pv