diff --git a/DSView/pv/sigsession.cpp b/DSView/pv/sigsession.cpp index d1082d6e..3b31594d 100755 --- a/DSView/pv/sigsession.cpp +++ b/DSView/pv/sigsession.cpp @@ -1016,16 +1016,22 @@ void SigSession::feed_in_dso(const sr_datafeed_dso &dso) } if (dso.num_samples != 0) { + // update current sample rate if (_dso_data) _dso_data->set_samplerate(_dev_inst->get_sample_rate()); - // reset measure of dso signal - BOOST_FOREACH(const boost::shared_ptr s, _signals) - { - assert(s); - boost::shared_ptr dsoSig; - if ((dsoSig = dynamic_pointer_cast(s))) - dsoSig->set_mValid(false); - } + if (_math_trace && _math_trace->enabled()) + _math_trace->get_math_stack()->set_samplerate(_dev_inst->get_sample_rate()); + BOOST_FOREACH(const boost::shared_ptr m, _spectrum_traces) + m->get_spectrum_stack()->set_samplerate(_cur_samplerate); + +// // reset measure of dso signal +// BOOST_FOREACH(const boost::shared_ptr s, _signals) +// { +// assert(s); +// boost::shared_ptr dsoSig; +// if ((dsoSig = dynamic_pointer_cast(s))) +// dsoSig->set_mValid(false); +// } } if (_cur_dso_snapshot->memory_failed()) { diff --git a/DSView/pv/view/mathtrace.cpp b/DSView/pv/view/mathtrace.cpp index 825e4e48..3a6c445e 100755 --- a/DSView/pv/view/mathtrace.cpp +++ b/DSView/pv/view/mathtrace.cpp @@ -218,7 +218,8 @@ void MathTrace::paint_mid(QPainter &p, int left, int right, QColor fore, QColor const int64_t offset = _view->offset(); const double pixels_offset = offset; - const double samplerate = _view->session().cur_samplerate(); + //const double samplerate = _view->session().cur_samplerate(); + const double samplerate = _math_stack->samplerate(); const int64_t last_sample = max((int64_t)(_math_stack->get_sample_num() - 1), (int64_t)0); const double samples_per_pixel = samplerate * scale; const double start = offset * samples_per_pixel;