]> sigrok.org Git - pulseview.git/blobdiff - pv/session.cpp
Random simplifications, cosmetics/whitespace/consistency fixes.
[pulseview.git] / pv / session.cpp
index 2712af1200ab12082bb400c50d0e3f493b0ee5c5..d00ff97a0bbe78ae7a9e55a82e2913b36c602807 100644 (file)
@@ -22,8 +22,6 @@
 #define NOGDI
 #define NORESOURCE
 #endif
-#include <boost/thread/locks.hpp>
-#include <boost/thread/shared_mutex.hpp>
 
 #include <QFileInfo>
 
 #include <libsigrokdecode/libsigrokdecode.h>
 #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<data::SignalBase> > Session::signalbases() const
 #ifdef ENABLE_DECODE
 bool Session::add_decoder(srd_decoder *const dec)
 {
+       if (!dec)
+               return false;
+
        map<const srd_channel*, shared_ptr<data::SignalBase> > channels;
        shared_ptr<data::DecoderStack> decoder_stack;
 
@@ -637,7 +628,7 @@ bool Session::add_decoder(srd_decoder *const dec)
                // Auto select the initial channels
                for (const srd_channel *pdch : all_channels)
                        for (shared_ptr<data::SignalBase> 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;
@@ -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<views::TraceView::Signal>(
@@ -803,6 +797,9 @@ void Session::update_signals()
                                                        shared_ptr<data::Analog> 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<views::TraceView::Signal>(
@@ -813,7 +810,7 @@ void Session::update_signals()
                                        }
 
                                        default:
-                                               assert(0);
+                                               assert(false);
                                                break;
                                        }
                                }
@@ -862,7 +859,7 @@ void Session::sample_thread_proc(function<void (const QString)> error_handler)
        // Confirm that SR_DF_END was received
        if (cur_logic_segment_) {
                qDebug("SR_DF_END was not received.");
-               assert(0);
+               assert(false);
        }
 
        // Optimize memory usage
@@ -962,7 +959,7 @@ void Session::feed_in_logic(shared_ptr<Logic> logic)
 
                // Create a new data segment
                cur_logic_segment_ = make_shared<data::LogicSegment>(
-                       *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> 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();
 }
 
@@ -1039,7 +1035,7 @@ void Session::feed_in_analog(shared_ptr<Analog> analog)
 void Session::data_feed_in(shared_ptr<sigrok::Device> device,
        shared_ptr<Packet> packet)
 {
-       static bool frame_began=false;
+       static bool frame_began = false;
 
        (void)device;