]> sigrok.org Git - pulseview.git/blobdiff - pv/session.cpp
session: make sure signals set is initialized
[pulseview.git] / pv / session.cpp
index 2a794f0fb0c4af8a79b662e12b810ffdb28b510d..0ac5bb7286dbe2cd6c76dbd07ca967ec2d289176 100644 (file)
@@ -486,6 +486,11 @@ void Session::feed_in_meta(shared_ptr<Meta> meta)
        for (auto entry : meta->config()) {
                switch (entry.first->id()) {
                case SR_CONF_SAMPLERATE:
+                       // We can't rely on the header to always contain the sample rate,
+                       // so in case it's supplied via a meta packet, we use it.
+                       if (!cur_samplerate_)
+                               cur_samplerate_ = g_variant_get_uint64(entry.second.gobj());
+
                        /// @todo handle samplerate changes
                        break;
                default:
@@ -574,6 +579,10 @@ void Session::feed_in_analog(shared_ptr<Analog> analog)
        const float *data = static_cast<const float *>(analog->data_pointer());
        bool sweep_beginning = false;
 
+       if (signals_.empty()) {
+               update_signals();
+       }
+
        for (auto channel : channels)
        {
                shared_ptr<data::AnalogSegment> segment;