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);
- if (!_decode_traces.empty()) {
- qDebug("Currently only one decode trace can be added "
- "at once");
- _decode_traces.clear();
- }
-
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();
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);
if(sdi) {
for (const GSList *l = sdi->probes; l; l = l->next) {
- const sr_probe *const probe =
- (const sr_probe *)l->data;
+ sr_probe *const probe = (sr_probe *)l->data;
assert(probe);
switch(probe->type) {