X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fsession.cpp;h=0056e460b81ad92b2ef075bc43014914bd16ba3e;hp=2712af1200ab12082bb400c50d0e3f493b0ee5c5;hb=a7336fb2d5df57b2ac28db6a2e38c337463fcdce;hpb=472a80c58cfdbd37cb00b5ba2ef4bcd923f9b54b diff --git a/pv/session.cpp b/pv/session.cpp index 2712af1..0056e46 100644 --- a/pv/session.cpp +++ b/pv/session.cpp @@ -620,6 +620,9 @@ const unordered_set< shared_ptr > Session::signalbases() const #ifdef ENABLE_DECODE bool Session::add_decoder(srd_decoder *const dec) { + if (!dec) + return false; + map > channels; shared_ptr decoder_stack; @@ -637,7 +640,7 @@ bool Session::add_decoder(srd_decoder *const dec) // Auto select the initial channels for (const srd_channel *pdch : all_channels) for (shared_ptr b : signalbases_) { - if (b->type() == data::SignalBase::LogicChannel) { + if (b->logic_data()) { if (QString::fromUtf8(pdch->name).toLower(). contains(b->name().toLower())) channels[pdch] = b; @@ -962,7 +965,7 @@ void Session::feed_in_logic(shared_ptr logic) // Create a new data segment cur_logic_segment_ = make_shared( - *logic_data_, logic, cur_samplerate_); + *logic_data_, logic->unit_size(), cur_samplerate_); logic_data_->push_segment(cur_logic_segment_); // @todo Putting this here means that only listeners querying @@ -970,11 +973,10 @@ void Session::feed_in_logic(shared_ptr logic) // frame_began is DecoderStack, but in future we need to signal // this after both analog and logic sweeps have begun. frame_began(); - } else { - // Append to the existing data segment - cur_logic_segment_->append_payload(logic); } + cur_logic_segment_->append_payload(logic); + data_received(); }