]> sigrok.org Git - pulseview.git/blobdiff - pv/data/decodesignal.cpp
Fix #1182 by only considering enabled channels
[pulseview.git] / pv / data / decodesignal.cpp
index d60c53e48b6e8df403d7350deaf091d94e866740..fbbdd793952d4ffd578532944ae4cab9c66ecfe5 100644 (file)
@@ -280,6 +280,9 @@ void DecodeSignal::auto_assign_signals(const shared_ptr<Decoder> dec)
                        continue;
 
                for (shared_ptr<data::SignalBase> s : session_.signalbases()) {
+                       if (!s->enabled())
+                               continue;
+
                        const QString ch_name = ch.name.toLower();
                        const QString s_name = s->name().toLower();
 
@@ -1020,9 +1023,12 @@ void DecodeSignal::start_srd_session()
                terminate_srd_session();
 
                // Metadata is cleared also, so re-set it
+               uint64_t samplerate = 0;
                if (segments_.size() > 0)
+                       samplerate = segments_.at(current_segment_id_).samplerate;
+               if (samplerate)
                        srd_session_metadata_set(srd_session_, SRD_CONF_SAMPLERATE,
-                               g_variant_new_uint64(segments_.at(current_segment_id_).samplerate));
+                               g_variant_new_uint64(samplerate));
                for (const shared_ptr<decode::Decoder> &dec : stack_)
                        dec->apply_all_options();
                srd_session_start(srd_session_);
@@ -1077,9 +1083,12 @@ void DecodeSignal::terminate_srd_session()
                srd_session_terminate_reset(srd_session_);
 
                // Metadata is cleared also, so re-set it
+               uint64_t samplerate = 0;
                if (segments_.size() > 0)
+                       samplerate = segments_.at(current_segment_id_).samplerate;
+               if (samplerate)
                        srd_session_metadata_set(srd_session_, SRD_CONF_SAMPLERATE,
-                               g_variant_new_uint64(segments_.at(current_segment_id_).samplerate));
+                               g_variant_new_uint64(samplerate));
                for (const shared_ptr<decode::Decoder> &dec : stack_)
                        dec->apply_all_options();
        }