]> sigrok.org Git - pulseview.git/blobdiff - pv/data/analogsnapshot.h
Rename 'probe' to 'channel' (libsigrokdecode change).
[pulseview.git] / pv / data / analogsnapshot.h
index 59c43187788e4c231dc85d652f0cb849ed5f7a91..b60c2ce72580c4fdf51d84940f0e836216759bae 100644 (file)
@@ -35,13 +35,22 @@ 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;
@@ -57,15 +66,19 @@ private:
        static const uint64_t EnvelopeDataUnit;
 
 public:
-       AnalogSnapshot(const sr_datafeed_analog &analog);
+       AnalogSnapshot(uint64_t expected_num_samples = 0);
 
        virtual ~AnalogSnapshot();
 
-       void append_payload(const sr_datafeed_analog &analog);
+       void append_interleaved_samples(const float *data,
+               size_t sample_count, size_t stride);
 
        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);