Made Decoder dialog export a map of probes, and routed through to pv::data::Decoder
[pulseview.git] / pv / sigsession.cpp
index c2c2dc983892dc65d1ff94b532b79b83e60a9cf6..cea71bda9cdc6ea4ab42ef42f1ed423762357362 100644 (file)
 #include "sigsession.h"
 
 #include "devicemanager.h"
+
 #include "data/analog.h"
 #include "data/analogsnapshot.h"
+#include "data/decoder.h"
 #include "data/logic.h"
 #include "data/logicsnapshot.h"
 
@@ -196,10 +198,16 @@ boost::shared_ptr<data::Logic> SigSession::get_data()
        return _logic_data;
 }
 
-void SigSession::add_decoder(srd_decoder *const dec)
+void SigSession::add_decoder(srd_decoder *const dec,
+       std::map<const srd_probe*,
+               boost::shared_ptr<view::Signal> > probes)
 {
        {
-               shared_ptr<view::DecodeSignal> d(new view::DecodeSignal(*this, dec));
+               lock_guard<mutex> lock(_signals_mutex);
+               shared_ptr<data::Decoder> decoder(
+                       new data::Decoder(dec, probes));
+               shared_ptr<view::DecodeSignal> d(
+                       new view::DecodeSignal(*this, decoder));
                _decode_traces.push_back(d);
        }
        signals_changed();
@@ -517,6 +525,8 @@ void SigSession::feed_in_meta(const sr_dev_inst *sdi,
                        break;
                }
        }
+
+       signals_changed();
 }
 
 void SigSession::feed_in_logic(const sr_datafeed_logic &logic)