X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fdata%2Fdecoderstack.cpp;h=5b58761f9c1c3464121299c3c6259a907015a10a;hb=819f4c25391a9c74d3d2f528d462142d5c4aad4d;hp=7bd5e6e6c2431d4e182fbfe051aa2dc08357a577;hpb=7aa09b00585d5214cd91e77f1f1611e69f93d711;p=pulseview.git diff --git a/pv/data/decoderstack.cpp b/pv/data/decoderstack.cpp index 7bd5e6e..5b58761 100644 --- a/pv/data/decoderstack.cpp +++ b/pv/data/decoderstack.cpp @@ -32,11 +32,16 @@ #include #include #include +#include #include -#include -using namespace boost; -using namespace std; +using boost::lock_guard; +using boost::mutex; +using boost::shared_ptr; +using std::deque; +using std::min; +using std::list; +using std::vector; namespace pv { namespace data { @@ -94,8 +99,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 +137,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 +145,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) @@ -195,7 +207,8 @@ void DecoderStack::decode_proc(shared_ptr data) srd_session_start(session); for (int64_t i = 0; - !this_thread::interruption_requested() && i < sample_count; + !boost::this_thread::interruption_requested() && + i < sample_count; i += DecodeChunkLength) { lock_guard decode_lock(_global_decode_mutex); @@ -222,16 +235,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(); }