]> sigrok.org Git - pulseview.git/blobdiff - pv/sigsession.cpp
Added support for auto-apply in Binding
[pulseview.git] / pv / sigsession.cpp
index ffe37d2008e2ac626aa6c686434b284033872c25..dacf65e56b55df4c8266d603928c86c0ce02a6fc 100644 (file)
@@ -195,7 +195,8 @@ boost::shared_ptr<data::Logic> SigSession::get_data()
 
 void SigSession::add_decoder(srd_decoder *const dec,
        std::map<const srd_probe*,
-               boost::shared_ptr<view::Signal> > probes)
+               boost::shared_ptr<view::Signal> > probes,
+       GHashTable *options)
 {
        {
                lock_guard<mutex> lock(_signals_mutex);
@@ -207,9 +208,10 @@ void SigSession::add_decoder(srd_decoder *const dec,
                }
 
                shared_ptr<data::Decoder> decoder(
-                       new data::Decoder(dec, probes));
+                       new data::Decoder(dec, probes, options));
                shared_ptr<view::DecodeSignal> d(
-                       new view::DecodeSignal(*this, decoder));
+                       new view::DecodeSignal(*this, decoder,
+                               _decode_traces.size()));
                _decode_traces.push_back(d);
        }
        signals_changed();
@@ -221,6 +223,20 @@ vector< shared_ptr<view::DecodeSignal> > SigSession::get_decode_signals() const
        return _decode_traces;
 }
 
+void SigSession::remove_decode_signal(view::DecodeSignal *signal)
+{
+       for (vector< shared_ptr<view::DecodeSignal> >::iterator i =
+               _decode_traces.begin();
+               i != _decode_traces.end();
+               i++)
+               if ((*i).get() == signal)
+               {
+                       _decode_traces.erase(i);
+                       signals_changed();
+                       return;
+               }
+}
+
 void SigSession::set_capture_state(capture_state state)
 {
        lock_guard<mutex> lock(_sampling_mutex);