X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fview.cpp;h=47cb96b2da3ce6c2125a39472928e8e1a63cb1b0;hp=e2d9365efaf12d4c09a8a3df9b3891dd9ab38e94;hb=4640a84e926ac4b82e2a1b6ef9fc80ef44c2bd3c;hpb=20c99cfc69d3c7430817abd9a1f810698deb4a18 diff --git a/pv/views/trace/view.cpp b/pv/views/trace/view.cpp index e2d9365e..47cb96b2 100644 --- a/pv/views/trace/view.cpp +++ b/pv/views/trace/view.cpp @@ -41,27 +41,28 @@ #include -#include "analogsignal.hpp" -#include "header.hpp" -#include "logicsignal.hpp" -#include "ruler.hpp" -#include "signal.hpp" -#include "tracegroup.hpp" -#include "triggermarker.hpp" #include "view.hpp" -#include "viewport.hpp" +#include "pv/globalsettings.hpp" #include "pv/metadata_obj.hpp" +#include "pv/session.hpp" +#include "pv/util.hpp" #include "pv/data/logic.hpp" #include "pv/data/logicsegment.hpp" #include "pv/data/signalbase.hpp" #include "pv/devices/device.hpp" -#include "pv/globalsettings.hpp" -#include "pv/session.hpp" -#include "pv/util.hpp" +#include "pv/views/trace/mathsignal.hpp" +#include "pv/views/trace/analogsignal.hpp" +#include "pv/views/trace/header.hpp" +#include "pv/views/trace/logicsignal.hpp" +#include "pv/views/trace/ruler.hpp" +#include "pv/views/trace/signal.hpp" +#include "pv/views/trace/tracegroup.hpp" +#include "pv/views/trace/triggermarker.hpp" +#include "pv/views/trace/viewport.hpp" #ifdef ENABLE_DECODE -#include "decodetrace.hpp" +#include "pv/views/trace/decodetrace.hpp" #endif using pv::data::SignalBase; @@ -365,6 +366,10 @@ void View::add_signalbase(const shared_ptr signalbase) signal = shared_ptr(new AnalogSignal(session_, signalbase)); break; + case SignalBase::MathChannel: + signal = shared_ptr(new MathSignal(session_, signalbase)); + break; + default: qDebug() << "Unknown signalbase type:" << signalbase->type(); assert(false); @@ -777,7 +782,7 @@ void View::set_segment_display_mode(Trace::SegmentDisplayMode mode) for (const shared_ptr& signal : signals_) signal->set_segment_display_mode(mode); - uint32_t last_segment = session_.get_segment_count() - 1; + uint32_t last_segment = session_.get_highest_segment_id(); switch (mode) { case Trace::ShowLastSegmentOnly: @@ -929,7 +934,7 @@ pair View::get_time_extents() const return make_pair(0, 0); for (shared_ptr s : signals_) - if (s->data()->segments().size() > 0) + if (s->data() && (s->data()->segments().size() > 0)) data.push_back(s->data()); for (const shared_ptr& d : data) {