X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fdata%2Fdecodesignal.cpp;h=5fbc8b6ca630bab38093f61f4a3e230feea366d2;hb=b10b58f40fd9c71f1a8b020077ecda65cebc578c;hp=eb7a0d3b78557f413ba10a57fdf477681a13c75f;hpb=85a702806a15852f3684645dffdc38cb30274481;p=pulseview.git diff --git a/pv/data/decodesignal.cpp b/pv/data/decodesignal.cpp index eb7a0d3..5fbc8b6 100644 --- a/pv/data/decodesignal.cpp +++ b/pv/data/decodesignal.cpp @@ -978,6 +978,8 @@ void DecodeSignal::decode_proc() void DecodeSignal::start_srd_session() { + uint64_t samplerate; + if (srd_session_) stop_srd_session(); @@ -993,6 +995,7 @@ void DecodeSignal::start_srd_session() if (!di) { error_message_ = tr("Failed to create decoder instance"); srd_session_destroy(srd_session_); + srd_session_ = nullptr; return; } @@ -1003,8 +1006,10 @@ void DecodeSignal::start_srd_session() } // Start the session - srd_session_metadata_set(srd_session_, SRD_CONF_SAMPLERATE, - g_variant_new_uint64(segments_.at(current_segment_id_).samplerate)); + samplerate = segments_.at(current_segment_id_).samplerate; + if (samplerate) + srd_session_metadata_set(srd_session_, SRD_CONF_SAMPLERATE, + g_variant_new_uint64(samplerate)); srd_pd_output_callback_add(srd_session_, SRD_OUTPUT_ANN, DecodeSignal::annotation_callback, this); @@ -1035,7 +1040,7 @@ void DecodeSignal::connect_input_notifiers() const data::SignalBase *signal = ch.assigned_signal; connect(signal, SIGNAL(samples_cleared()), this, SLOT(on_data_cleared())); - connect(signal, SIGNAL(samples_added(QObject*, uint64_t, uint64_t)), + connect(signal, SIGNAL(samples_added(uint64_t, uint64_t, uint64_t)), this, SLOT(on_data_received())); } }