X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;ds=sidebyside;f=pv%2Fsession.cpp;h=a1a078788c4e49631e7d00df1ab5e82646a6cbe3;hb=12ea3616767553ee0a615f14bbcb8ec614589e34;hp=f5f1e4974b6ea155dcdb923924a05c0fef4077c3;hpb=79c4a9c8a28765422075b77b0dca23cd248c4d18;p=pulseview.git diff --git a/pv/session.cpp b/pv/session.cpp index f5f1e49..a1a0787 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; @@ -785,6 +788,9 @@ void Session::update_signals() all_signal_data_.insert(logic_data_); signalbase->set_data(logic_data_); + + connect(this, SIGNAL(capture_state_changed(int)), + signalbase.get(), SLOT(on_capture_state_changed(int))); } signal = shared_ptr( @@ -803,6 +809,9 @@ void Session::update_signals() shared_ptr data(new data::Analog()); all_signal_data_.insert(data); signalbase->set_data(data); + + connect(this, SIGNAL(capture_state_changed(int)), + signalbase.get(), SLOT(on_capture_state_changed(int))); } signal = shared_ptr( @@ -962,7 +971,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 +979,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(); }