]> sigrok.org Git - pulseview.git/blobdiff - pv/view/decodetrace.cpp
View: Place non-grouped logic channels in a TraceGroup
[pulseview.git] / pv / view / decodetrace.cpp
index 7bb62b2b288703c69dc9f725fad7cd43e071daf5..38cbecb85337500cf3c20ca5963aa769918bb728 100644 (file)
@@ -29,6 +29,8 @@ extern "C" {
 #include <tuple>
 
 #include <boost/functional/hash.hpp>
+#include <boost/thread/locks.hpp>
+#include <boost/thread/shared_mutex.hpp>
 
 #include <QAction>
 #include <QApplication>
@@ -525,7 +527,7 @@ pair<double, double> DecodeTrace::get_pixels_offset_samples_per_pixel() const
        assert(scale > 0);
 
        const double pixels_offset =
-               (view->offset() - decoder_stack_->start_time()) / scale;
+               ((view->offset() - decoder_stack_->start_time()) / scale).convert_to<double>();
 
        double samplerate = decoder_stack_->samplerate();
 
@@ -708,8 +710,7 @@ QComboBox* DecodeTrace::create_channel_selector(
 {
        assert(dec);
 
-       shared_lock<shared_mutex> lock(session_.signals_mutex());
-       const auto &sigs(session_.signals());
+       const auto sigs(session_.signals());
 
        vector< shared_ptr<Signal> > sig_list(sigs.begin(), sigs.end());
        std::sort(sig_list.begin(), sig_list.end(),
@@ -747,8 +748,7 @@ void DecodeTrace::commit_decoder_channels(shared_ptr<data::decode::Decoder> &dec
 
        map<const srd_channel*, shared_ptr<LogicSignal> > channel_map;
 
-       shared_lock<shared_mutex> lock(session_.signals_mutex());
-       const unordered_set< shared_ptr<Signal> > &sigs(session_.signals());
+       const unordered_set< shared_ptr<Signal> > sigs(session_.signals());
 
        for (const ChannelSelector &s : channel_selectors_)
        {