X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fdata%2Fdecoderstack.cpp;h=e588ad6b9bf173be8791b5ee392b6c2f574659d4;hb=db62bbfda512aeddca5b9d7b5960e9cf24b8859c;hp=333741ad80c2219f1f961566a9a3784319c3b45f;hpb=dd6b500953a32e05681a0304ff6e5e4d9d6f8773;p=pulseview.git diff --git a/pv/data/decoderstack.cpp b/pv/data/decoderstack.cpp index 333741a..e588ad6 100644 --- a/pv/data/decoderstack.cpp +++ b/pv/data/decoderstack.cpp @@ -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; @@ -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; @@ -146,6 +145,13 @@ 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) { srd_session *session; @@ -230,9 +236,8 @@ void DecoderStack::annotation_callback(srd_proto_data *pdata, void *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(); }