+ set< shared_ptr<Trace> > traces(sigs.begin(), sigs.end());
+
+#ifdef ENABLE_DECODE
+ const vector< shared_ptr<DecodeTrace> > decode_traces(
+ session().get_decode_signals());
+ traces.insert(decode_traces.begin(), decode_traces.end());
+#endif
+
+ set< shared_ptr<Trace> > add_traces;
+ set_difference(traces.begin(), traces.end(),
+ prev_traces.begin(), prev_traces.end(),
+ inserter(add_traces, add_traces.begin()));
+
+ set< shared_ptr<Trace> > remove_traces;
+ set_difference(prev_traces.begin(), prev_traces.end(),
+ traces.begin(), traces.end(),
+ inserter(remove_traces, remove_traces.begin()));
+
+ // Make a look-up table of sigrok Channels to pulseview Signals
+ unordered_map<shared_ptr<sigrok::Channel>, shared_ptr<Signal> >
+ signal_map;