X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Flogicsnapshot.h;h=0f6f410c962487dd8828bda493e86fe33670e050;hp=8a851ac203539e92d93fb971b499960afe0d4d7e;hb=8bd26d8b9c831b509ee3241ea4dac6f50c023622;hpb=1b1ec774978b65209ce2b454cbf81da499b797d2 diff --git a/pv/data/logicsnapshot.h b/pv/data/logicsnapshot.h index 8a851ac2..0f6f410c 100644 --- a/pv/data/logicsnapshot.h +++ b/pv/data/logicsnapshot.h @@ -27,11 +27,11 @@ #include namespace LogicSnapshotTest { - class Pow2; - class Basic; - class LargeData; - class Pulses; - class LongPulses; +class Pow2; +class Basic; +class LargeData; +class Pulses; +class LongPulses; } namespace pv { @@ -58,14 +58,21 @@ public: typedef std::pair EdgePair; public: - LogicSnapshot(const sr_datafeed_logic &logic); + LogicSnapshot(const sr_datafeed_logic &logic, + uint64_t expected_num_samples = 0); virtual ~LogicSnapshot(); void append_payload(const sr_datafeed_logic &logic); + void get_samples(uint8_t *const data, + int64_t start_sample, int64_t end_sample) const; + private: - void reallocate_mip_map(MipMapLevel &m); + 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();