diff --git a/sdrgui/dsp/scopevis.cpp b/sdrgui/dsp/scopevis.cpp index 44a9a3834..cb5b63f3c 100644 --- a/sdrgui/dsp/scopevis.cpp +++ b/sdrgui/dsp/scopevis.cpp @@ -414,7 +414,7 @@ void ScopeVis::processTrace(const SampleVector::const_iterator& cbegin, const Sa { mbegin = mend - remainder; m_traceDiscreteMemory.current().m_endPoint = mbegin; - m_traceDiscreteMemory.store(); // next memory trace + m_traceDiscreteMemory.store(m_preTriggerDelay+remainder); // next memory trace. m_triggerState = TriggerUntriggered; m_triggerWaitForReset = m_triggerOneShot; diff --git a/sdrgui/dsp/scopevis.h b/sdrgui/dsp/scopevis.h index 9eb5dd963..d32ca47a0 100644 --- a/sdrgui/dsp/scopevis.h +++ b/sdrgui/dsp/scopevis.h @@ -721,12 +721,13 @@ private: /** * Move index forward by one position and return reference to the trace at this position * Copy a trace length of samples into the new memory slot + * samplesToReport are the number of samples to report on the next trace */ - TraceBackBuffer &store() + TraceBackBuffer &store(int samplesToReport) { uint32_t nextMemIndex = m_currentMemIndex < (m_memSize-1) ? m_currentMemIndex+1 : 0; m_traceBackBuffers[nextMemIndex].reset(); - m_traceBackBuffers[nextMemIndex].write(m_traceBackBuffers[m_currentMemIndex].m_endPoint - m_traceSize, + m_traceBackBuffers[nextMemIndex].write(m_traceBackBuffers[m_currentMemIndex].m_endPoint - samplesToReport, m_traceBackBuffers[m_currentMemIndex].m_endPoint); m_currentMemIndex = nextMemIndex; return m_traceBackBuffers[m_currentMemIndex]; // new trace