diff --git a/sdrgui/dsp/scopevis.h b/sdrgui/dsp/scopevis.h index 9f6ddd367..b162408ea 100644 --- a/sdrgui/dsp/scopevis.h +++ b/sdrgui/dsp/scopevis.h @@ -246,6 +246,7 @@ public: virtual void stop(); virtual bool handleMessage(const Message& message); int getTriggerLocation() const { return m_triggerLocation; } + bool getFreeRun() const { return m_freeRun; } private: // === messages === diff --git a/sdrgui/dsp/spectrumscopecombovis.cpp b/sdrgui/dsp/spectrumscopecombovis.cpp index 62de78b74..18178df96 100644 --- a/sdrgui/dsp/spectrumscopecombovis.cpp +++ b/sdrgui/dsp/spectrumscopecombovis.cpp @@ -20,12 +20,15 @@ void SpectrumScopeComboVis::feed(const SampleVector::const_iterator& begin, cons m_scopeVis->feed(begin, end, false); //SampleVector::const_iterator triggerPoint = m_scopeVis->getTriggerPoint(); //m_spectrumVis->feedTriggered(triggerPoint, end, positiveOnly); - int triggerPointLocation = m_scopeVis->getTriggerLocation(); - if ((triggerPointLocation >= 0) && (triggerPointLocation <= end - begin)) { - m_spectrumVis->feedTriggered(end - triggerPointLocation, end, positiveOnly); - } else { - m_spectrumVis->feedTriggered(begin, end, positiveOnly); - } + int triggerPointLocation = m_scopeVis->getTriggerLocation(); + + if (m_scopeVis->getFreeRun()) { + m_spectrumVis->feed(begin, end, positiveOnly); + } else if ((triggerPointLocation >= 0) && (triggerPointLocation <= end - begin)) { + m_spectrumVis->feedTriggered(end - triggerPointLocation, end, positiveOnly); + } else { + m_spectrumVis->feedTriggered(begin, end, positiveOnly); + } } void SpectrumScopeComboVis::start()