X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Fdecoderstack.cpp;h=c2ae9116856161a94826db1adeadcfe9366d647b;hp=d6fa17cafe8b6780239be558eeec88486923c1be;hb=06e810f29b6e9e3fe8ba8aba5d3823375da9bbb2;hpb=5dfeb70fc60f1c4752697d8ad6f80e1415213197 diff --git a/pv/data/decoderstack.cpp b/pv/data/decoderstack.cpp index d6fa17ca..c2ae9116 100644 --- a/pv/data/decoderstack.cpp +++ b/pv/data/decoderstack.cpp @@ -32,8 +32,8 @@ #include #include #include +#include #include -#include using namespace boost; using namespace std; @@ -94,8 +94,7 @@ int64_t DecoderStack::samples_decoded() const return _samples_decoded; } -const vector< shared_ptr > - DecoderStack::annotations() const +const vector DecoderStack::annotations() const { lock_guard lock(_mutex); return _annotations; @@ -125,7 +124,7 @@ void DecoderStack::begin_decode() BOOST_FOREACH (const shared_ptr &dec, _stack) if (dec && !dec->probes().empty() && ((logic_signal = (*dec->probes().begin()).second)) && - ((data = logic_signal->data()))) + ((data = logic_signal->logic_data()))) break; if (!data) @@ -133,7 +132,7 @@ void DecoderStack::begin_decode() // Get the samplerate and start time _start_time = data->get_start_time(); - _samplerate = data->get_samplerate(); + _samplerate = data->samplerate(); if (_samplerate == 0.0) _samplerate = 1.0; @@ -141,8 +140,16 @@ void DecoderStack::begin_decode() data); } -void DecoderStack::clear_snapshots() +void DecoderStack::clear() { + _annotations.clear(); +} + +uint64_t DecoderStack::get_max_sample_count() const +{ + if (_annotations.empty()) + return 0; + return _annotations.back().end_sample(); } void DecoderStack::decode_proc(shared_ptr data) @@ -222,16 +229,15 @@ void DecoderStack::decode_proc(shared_ptr data) void DecoderStack::annotation_callback(srd_proto_data *pdata, void *decoder) { - using namespace pv::view::decode; + using pv::data::decode::Annotation; assert(pdata); assert(decoder); DecoderStack *const d = (DecoderStack*)decoder; - shared_ptr a(new Annotation(pdata)); lock_guard lock(d->_mutex); - d->_annotations.push_back(a); + d->_annotations.push_back(Annotation(pdata)); d->new_decode_data(); }