X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=datasnapshot.cpp;h=80d9ba4318f53f83e8d89604d658870d677e4b69;hp=1a6376882286760b36a9be7acb8827312ef74a3e;hb=f556bc6a4d1798e59f6d0276cdb0d55b5ffab476;hpb=28a4c9c5eb20296199fc3496bb40b7733dffac75 diff --git a/datasnapshot.cpp b/datasnapshot.cpp index 1a637688..80d9ba43 100644 --- a/datasnapshot.cpp +++ b/datasnapshot.cpp @@ -20,12 +20,31 @@ #include "datasnapshot.h" -DataSnapshot::DataSnapshot() : - _sample_count(0) +#include +#include +#include + +DataSnapshot::DataSnapshot(int unit_size) : + _data(NULL), + _data_length(0), + _unit_size(unit_size) +{ + assert(_unit_size > 0); +} + +DataSnapshot::~DataSnapshot() { + free(_data); } uint64_t DataSnapshot::get_sample_count() { - return _sample_count; + return _data_length / _unit_size; +} + +void DataSnapshot::append_data(void *data, uint64_t length) +{ + _data = realloc(_data, _data_length + length); + memcpy((uint8_t*)_data + _data_length, data, length); + _data_length += length; }