X-Git-Url: http://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fview%2Fview.cpp;h=7e47140c6bf2f3d4335df419e8cea74dd8976ecf;hp=570e7b766a4c80f980e5feb5e9417f0c12b3d0b9;hb=47e9e7bbc3a4e91a960f4cbb1db48c5aff6dcace;hpb=04394ded8776d2163c1e815ccc8170b81d76b028 diff --git a/pv/view/view.cpp b/pv/view/view.cpp index 570e7b76..7e47140c 100644 --- a/pv/view/view.cpp +++ b/pv/view/view.cpp @@ -186,6 +186,21 @@ const Session& View::session() const return session_; } +std::unordered_set< std::shared_ptr > View::signals() const +{ + return signals_; +} + +void View::clear_signals() +{ + signals_.clear(); +} + +void View::add_signal(const shared_ptr signal) +{ + signals_.insert(signal); +} + View* View::view() { return this; @@ -397,11 +412,9 @@ void View::set_scale_offset(double scale, const Timestamp& offset) set< shared_ptr > View::get_visible_data() const { - const unordered_set< shared_ptr > sigs(session().signals()); - // Make a set of all the visible data objects set< shared_ptr > visible_data; - for (const shared_ptr sig : sigs) + for (const shared_ptr sig : signals_) if (sig->enabled()) visible_data.insert(sig->data()); @@ -803,10 +816,8 @@ void View::determine_time_unit() { // Check whether we know the sample rate and hence can use time as the unit if (time_unit_ == util::TimeUnit::Samples) { - const unordered_set< shared_ptr > sigs(session().signals()); - // Check all signals but... - for (const shared_ptr signal : sigs) { + for (const shared_ptr signal : signals_) { const shared_ptr data = signal->data(); // ...only check first segment of each @@ -938,6 +949,7 @@ void View::signals_changed() if (!session_.device()) { reset_scroll(); + signals_.clear(); } else { sr_dev = session_.device()->device(); assert(sr_dev); @@ -952,9 +964,7 @@ void View::signals_changed() const set> prev_traces( prev_trace_list.begin(), prev_trace_list.end()); - const unordered_set< shared_ptr > sigs(session_.signals()); - - set< shared_ptr > traces(sigs.begin(), sigs.end()); + set< shared_ptr > traces(signals_.begin(), signals_.end()); #ifdef ENABLE_DECODE const vector< shared_ptr > decode_traces( @@ -975,7 +985,7 @@ void View::signals_changed() // Make a look-up table of sigrok Channels to pulseview Signals unordered_map, shared_ptr > signal_map; - for (const shared_ptr &sig : sigs) + for (const shared_ptr &sig : signals_) signal_map[sig->base()] = sig; // Populate channel groups