X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fview%2Fdecodetrace.cpp;h=b4201dd9c022005ce50d673c9ebc6747ee6c6d0a;hp=2d9a6bf82227a3b50f59c3fa746a216fcc5e3ef5;hb=04394ded8776d2163c1e815ccc8170b81d76b028;hpb=0aa57689a8abc7eb313de50774b8d0cf271bc61f diff --git a/pv/view/decodetrace.cpp b/pv/view/decodetrace.cpp index 2d9a6bf8..b4201dd9 100644 --- a/pv/view/decodetrace.cpp +++ b/pv/view/decodetrace.cpp @@ -50,7 +50,7 @@ extern "C" { #include #include #include -#include +#include #include #include #include @@ -604,7 +604,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 +613,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()) @@ -866,12 +866,12 @@ QComboBox* DecodeTrace::create_channel_selector( for (const shared_ptr &s : sig_list) { assert(s); - if (dynamic_pointer_cast(s) && s->enabled()) { + if (s->base()->type() == sigrok::ChannelType::LOGIC && s->enabled()) { selector->addItem(s->base()->name(), - qVariantFromValue((void*)s.get())); + qVariantFromValue((void*)s->base().get())); if (channel_iter != dec->channels().end() && - (*channel_iter).second == s) + (*channel_iter).second == s->base()) selector->setCurrentIndex( selector->count() - 1); } @@ -884,7 +884,7 @@ void DecodeTrace::commit_decoder_channels(shared_ptr &dec { assert(dec); - map > channel_map; + map > channel_map; const unordered_set< shared_ptr > sigs(session_.signals()); @@ -892,14 +892,13 @@ void DecodeTrace::commit_decoder_channels(shared_ptr &dec 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) - if (sig.get() == selection) { - channel_map[s.pdch_] = - dynamic_pointer_cast(sig); + if (sig->base().get() == selection) { + channel_map[s.pdch_] = sig->base(); break; } }