X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fsession.cpp;h=0fef9c91764bc75366bc8db57cfd6880783465b3;hp=f5f1e4974b6ea155dcdb923924a05c0fef4077c3;hb=83b1c8d251386ac1980284c4668cbdd8e425550f;hpb=79c4a9c8a28765422075b77b0dca23cd248c4d18 diff --git a/pv/session.cpp b/pv/session.cpp index f5f1e497..0fef9c91 100644 --- a/pv/session.cpp +++ b/pv/session.cpp @@ -22,8 +22,6 @@ #define NOGDI #define NORESOURCE #endif -#include -#include #include @@ -62,10 +60,6 @@ #include #endif -using boost::shared_lock; -using boost::shared_mutex; -using boost::unique_lock; - using std::bad_alloc; using std::dynamic_pointer_cast; using std::find_if; @@ -81,7 +75,6 @@ using std::mutex; using std::pair; using std::recursive_mutex; using std::runtime_error; -using std::set; using std::shared_ptr; using std::string; using std::unordered_set; @@ -92,18 +85,13 @@ using sigrok::Channel; using sigrok::ConfigKey; using sigrok::DatafeedCallbackFunction; using sigrok::Error; -using sigrok::Header; using sigrok::InputFormat; using sigrok::Logic; using sigrok::Meta; -using sigrok::OutputFormat; using sigrok::Packet; -using sigrok::PacketPayload; using sigrok::Session; -using sigrok::SessionDevice; using Glib::VariantBase; -using Glib::Variant; namespace pv { Session::Session(DeviceManager &device_manager, QString name) : @@ -620,6 +608,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 +776,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 +797,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 +959,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 +967,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(); }