mutex DecoderStack::_global_decode_mutex;
-DecoderStack::DecoderStack(const srd_decoder *const dec)
+DecoderStack::DecoderStack(const srd_decoder *const dec) :
+ _samples_decoded(0)
{
_stack.push_back(shared_ptr<decode::Decoder>(
new decode::Decoder(dec)));
_stack.erase(iter);
}
+int64_t DecoderStack::samples_decoded() const
+{
+ lock_guard<mutex> decode_lock(_mutex);
+ return _samples_decoded;
+}
+
const vector< shared_ptr<view::decode::Annotation> >
DecoderStack::annotations() const
{
_decode_thread.interrupt();
_decode_thread.join();
+ _samples_decoded = 0;
+
_annotations.clear();
// We get the logic data of the first probe in the list.
BOOST_FOREACH (const shared_ptr<decode::Decoder> &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)
_error_message = tr("Failed to initialise decoder");
break;
}
+
+ {
+ lock_guard<mutex> lock(_mutex);
+ _samples_decoded = chunk_end;
+ }
}
// Destroy the session