X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fview%2Fdecodetrace.cpp;h=1f21b024fb4f79000d2bee510833a17950a54dcf;hb=47e9e7bbc3a4e91a960f4cbb1db48c5aff6dcace;hp=3ece1303ca513e5d40b6bc0d49848aa66dbea56c;hpb=bf0edd2b0cbb5f4bd5d69b0f00bcea7d037e2287;p=pulseview.git diff --git a/pv/view/decodetrace.cpp b/pv/view/decodetrace.cpp index 3ece1303..1f21b024 100644 --- a/pv/view/decodetrace.cpp +++ b/pv/view/decodetrace.cpp @@ -50,7 +50,6 @@ extern "C" { #include #include #include -#include #include #include #include @@ -604,7 +603,7 @@ void DecodeTrace::draw_unresolved_period(QPainter &p, int h, int left, assert(decoder_stack_); shared_ptr data; - shared_ptr logic_signal; + shared_ptr signalbase; const list< shared_ptr > &stack = decoder_stack_->stack(); @@ -613,8 +612,8 @@ void DecodeTrace::draw_unresolved_period(QPainter &p, int h, int left, // LogicSignals have the same data/segment for (const shared_ptr &dec : stack) if (dec && !dec->channels().empty() && - ((logic_signal = (*dec->channels().begin()).second)) && - ((data = logic_signal->logic_data()))) + ((signalbase = (*dec->channels().begin()).second)) && + ((data = signalbase->logic_data()))) break; if (!data || data->logic_segments().empty()) @@ -846,15 +845,15 @@ QComboBox* DecodeTrace::create_channel_selector( { assert(dec); - const auto sigs(session_.signals()); + const auto sigs(session_.signalbases()); - vector< shared_ptr > sig_list(sigs.begin(), sigs.end()); + vector< shared_ptr > sig_list(sigs.begin(), sigs.end()); std::sort(sig_list.begin(), sig_list.end(), - [](const shared_ptr &a, const shared_ptr b) { - return strnatcasecmp(a->channel()->name().toStdString(), - b->channel()->name().toStdString()) < 0; }); + [](const shared_ptr &a, + const shared_ptr &b) { + return strnatcasecmp(a->name().toStdString(), + b->name().toStdString()) < 0; }); - assert(decoder_stack_); const auto channel_iter = dec->channels().find(pdch); QComboBox *selector = new QComboBox(parent); @@ -864,14 +863,14 @@ QComboBox* DecodeTrace::create_channel_selector( if (channel_iter == dec->channels().end()) selector->setCurrentIndex(0); - for (const shared_ptr &s : sig_list) { - assert(s); - if (dynamic_pointer_cast(s) && s->enabled()) { - selector->addItem(s->channel()->name(), - qVariantFromValue((void*)s.get())); + for (const shared_ptr &b : sig_list) { + assert(b); + if (b->type() == sigrok::ChannelType::LOGIC && b->enabled()) { + selector->addItem(b->name(), + qVariantFromValue((void*)b.get())); if (channel_iter != dec->channels().end() && - (*channel_iter).second == s) + (*channel_iter).second == b) selector->setCurrentIndex( selector->count() - 1); } @@ -884,22 +883,22 @@ void DecodeTrace::commit_decoder_channels(shared_ptr &dec { assert(dec); - map > channel_map; + map > channel_map; - const unordered_set< shared_ptr > sigs(session_.signals()); + const unordered_set< shared_ptr > + sigs(session_.signalbases()); for (const ChannelSelector &s : channel_selectors_) { if (s.decoder_ != dec) break; - const LogicSignal *const selection = - (LogicSignal*)s.combo_->itemData( + const data::SignalBase *const selection = + (data::SignalBase*)s.combo_->itemData( s.combo_->currentIndex()).value(); - for (shared_ptr sig : sigs) + for (shared_ptr sig : sigs) if (sig.get() == selection) { - channel_map[s.pdch_] = - dynamic_pointer_cast(sig); + channel_map[s.pdch_] = sig; break; } }