diff --git a/plugins/channelrx/chanalyzer/chanalyzergui.cpp b/plugins/channelrx/chanalyzer/chanalyzergui.cpp index 6ca79a07b..c30f308ab 100644 --- a/plugins/channelrx/chanalyzer/chanalyzergui.cpp +++ b/plugins/channelrx/chanalyzer/chanalyzergui.cpp @@ -359,7 +359,7 @@ void ChannelAnalyzerGUI::on_signalSelect_currentIndexChanged(int index) if (m_settings.m_inputType == ChannelAnalyzerSettings::InputAutoCorr) { m_scopeVis->setTraceChunkSize(ChannelAnalyzerSink::m_corrFFTLen); } else { - m_scopeVis->setTraceChunkSize(ScopeVis::m_traceChunkDefaultSize); + m_scopeVis->setTraceChunkSize(GLScopeSettings::m_traceChunkDefaultSize); } ui->scopeGUI->traceLengthChange(); diff --git a/sdrbase/dsp/glscopesettings.h b/sdrbase/dsp/glscopesettings.h index c4055ff74..847971934 100644 --- a/sdrbase/dsp/glscopesettings.h +++ b/sdrbase/dsp/glscopesettings.h @@ -165,6 +165,11 @@ public: std::vector m_tracesData; std::vector m_triggersData; static const double AMPS[27]; + static const uint32_t m_traceChunkDefaultSize = 4800; + static const uint32_t m_maxNbTriggers = 10; + static const uint32_t m_maxNbTraces = 10; + static const uint32_t m_nbTraceMemories = 50; + static const uint32_t m_nbTraceBuffers = 2; GLScopeSettings(); virtual ~GLScopeSettings(); diff --git a/sdrbase/dsp/scopevis.cpp b/sdrbase/dsp/scopevis.cpp index 2305800bd..dccbe3414 100644 --- a/sdrbase/dsp/scopevis.cpp +++ b/sdrbase/dsp/scopevis.cpp @@ -38,8 +38,6 @@ MESSAGE_CLASS_DEFINITION(ScopeVis::MsgScopeVisNGFocusOnTrace, Message) MESSAGE_CLASS_DEFINITION(ScopeVis::MsgScopeVisNGOneShot, Message) MESSAGE_CLASS_DEFINITION(ScopeVis::MsgScopeVisNGMemoryTrace, Message) -const uint ScopeVis::m_traceChunkDefaultSize = 4800; - ScopeVis::ScopeVis(GLScopeInterface* glScope) : m_glScope(glScope), @@ -50,9 +48,9 @@ ScopeVis::ScopeVis(GLScopeInterface* glScope) : m_focusedTriggerIndex(0), m_triggerState(TriggerUntriggered), m_focusedTraceIndex(0), - m_traceChunkSize(m_traceChunkDefaultSize), - m_traceSize(m_traceChunkDefaultSize), - m_liveTraceSize(m_traceChunkDefaultSize), + m_traceChunkSize(GLScopeSettings::m_traceChunkDefaultSize), + m_traceSize(GLScopeSettings::m_traceChunkDefaultSize), + m_liveTraceSize(GLScopeSettings::m_traceChunkDefaultSize), m_nbSamples(0), m_timeBase(1), m_timeOfsProMill(0), @@ -60,7 +58,7 @@ ScopeVis::ScopeVis(GLScopeInterface* glScope) : m_triggerLocation(0), m_sampleRate(0), m_liveSampleRate(0), - m_traceDiscreteMemory(m_nbTraceMemories), + m_traceDiscreteMemory(GLScopeSettings::m_nbTraceMemories), m_freeRun(true), m_maxTraceDelay(0), m_triggerOneShot(false), @@ -68,7 +66,7 @@ ScopeVis::ScopeVis(GLScopeInterface* glScope) : m_currentTraceMemoryIndex(0) { setObjectName("ScopeVis"); - m_traceDiscreteMemory.resize(m_traceChunkDefaultSize); // arbitrary + m_traceDiscreteMemory.resize(GLScopeSettings::m_traceChunkDefaultSize); // arbitrary m_glScope->setTraces(&m_traces.m_tracesData, &m_traces.m_traces[0]); for (int i = 0; i < (int) Projector::nbProjectionTypes; i++) { m_projectorCache[i] = 0.0; @@ -217,7 +215,6 @@ void ScopeVis::setMemoryIndex(uint32_t memoryIndex) } void ScopeVis::feed(const std::vector& vbegin, int nbSamples) -//void ScopeVis::feed(const SampleVector::const_iterator& cbegin, const SampleVector::const_iterator& end, bool positiveOnly) { if (vbegin.size() == 0) { return; @@ -286,12 +283,12 @@ void ScopeVis::feed(const std::vector& vbegin, int void ScopeVis::processMemoryTrace() { - if ((m_currentTraceMemoryIndex > 0) && (m_currentTraceMemoryIndex < m_nbTraceMemories)) + if ((m_currentTraceMemoryIndex > 0) && (m_currentTraceMemoryIndex < GLScopeSettings::m_nbTraceMemories)) { int traceMemoryIndex = m_traceDiscreteMemory.currentIndex() - m_currentTraceMemoryIndex; // actual index in memory bank if (traceMemoryIndex < 0) { - traceMemoryIndex += m_nbTraceMemories; + traceMemoryIndex += GLScopeSettings::m_nbTraceMemories; } SampleVector::const_iterator mend = m_traceDiscreteMemory.at(traceMemoryIndex).m_endPoint; diff --git a/sdrbase/dsp/scopevis.h b/sdrbase/dsp/scopevis.h index 0b6d4f4a2..6e626dad6 100644 --- a/sdrbase/dsp/scopevis.h +++ b/sdrbase/dsp/scopevis.h @@ -43,63 +43,6 @@ class GLScopeInterface; class SDRGUI_API ScopeVis : public QObject { Q_OBJECT public: - struct TriggerData - { - uint32_t m_streamIndex; //!< I/Q stream index - Projector::ProjectionType m_projectionType; //!< Complex to real projection type - uint32_t m_inputIndex; //!< Input or feed index this trigger is associated with - Real m_triggerLevel; //!< Level in real units - int m_triggerLevelCoarse; - int m_triggerLevelFine; - bool m_triggerPositiveEdge; //!< Trigger on the positive edge (else negative) - bool m_triggerBothEdges; //!< Trigger on both edges (else only one) - uint32_t m_triggerHoldoff; //!< Trigger holdoff in number of samples - uint32_t m_triggerDelay; //!< Delay before the trigger is kicked off in number of samples (trigger delay) - double m_triggerDelayMult; //!< Trigger delay as a multiplier of trace length - int m_triggerDelayCoarse; - int m_triggerDelayFine; - uint32_t m_triggerRepeat; //!< Number of trigger conditions before the final decisive trigger - QColor m_triggerColor; //!< Trigger line display color - float m_triggerColorR; //!< Trigger line display color - red shortcut - float m_triggerColorG; //!< Trigger line display color - green shortcut - float m_triggerColorB; //!< Trigger line display color - blue shortcut - - TriggerData() : - m_streamIndex(0), - m_projectionType(Projector::ProjectionReal), - m_inputIndex(0), - m_triggerLevel(0.0f), - m_triggerLevelCoarse(0), - m_triggerLevelFine(0), - m_triggerPositiveEdge(true), - m_triggerBothEdges(false), - m_triggerHoldoff(1), - m_triggerDelay(0), - m_triggerDelayMult(0.0), - m_triggerDelayCoarse(0), - m_triggerDelayFine(0), - m_triggerRepeat(0), - m_triggerColor(0,255,0) - { - setColor(m_triggerColor); - } - - void setColor(QColor color) - { - m_triggerColor = color; - qreal r,g,b,a; - m_triggerColor.getRgbF(&r, &g, &b, &a); - m_triggerColorR = r; - m_triggerColorG = g; - m_triggerColorB = b; - } - }; - - static const uint32_t m_traceChunkDefaultSize; - static const uint32_t m_maxNbTriggers = 10; - static const uint32_t m_maxNbTraces = 10; - static const uint32_t m_nbTraceMemories = 50; - ScopeVis(GLScopeInterface* glScope = nullptr); virtual ~ScopeVis(); @@ -151,7 +94,7 @@ public: QByteArray buf; bool traceDiscreteMemorySuccess; - d.readU32(1, &traceSize, m_traceChunkDefaultSize); + d.readU32(1, &traceSize, GLScopeSettings::m_traceChunkDefaultSize); d.readU32(2, &preTriggerDelay, 0); d.readS32(3, &sampleRate, 0); setSampleRate(sampleRate); @@ -191,7 +134,6 @@ public: uint32_t getNbTriggers() const { return m_triggerConditions.size(); } void feed(const std::vector& vbegin, int nbSamples); - //virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly); //virtual void start(); //virtual void stop(); bool handleMessage(const Message& message); @@ -869,7 +811,7 @@ private: void addTrace(const GLScopeSettings::TraceData& traceData, int traceSize) { - if (m_traces[0].size() < m_maxNbTraces) + if (m_traces[0].size() < GLScopeSettings::m_maxNbTraces) { qDebug("ScopeVis::addTrace"); m_traces[0].push_back(0); @@ -955,8 +897,8 @@ private: { delete[] m_x0; delete[] m_x1; - m_x0 = new float[2*m_traceSize*m_maxNbTraces]; - m_x1 = new float[2*m_traceSize*m_maxNbTraces]; + m_x0 = new float[2*m_traceSize*GLScopeSettings::m_maxNbTraces]; + m_x1 = new float[2*m_traceSize*GLScopeSettings::m_maxNbTraces]; m_maxTraceSize = m_traceSize; } diff --git a/sdrgui/gui/glscopegui.cpp b/sdrgui/gui/glscopegui.cpp index 87acd4d80..c02f2206f 100644 --- a/sdrgui/gui/glscopegui.cpp +++ b/sdrgui/gui/glscopegui.cpp @@ -51,13 +51,13 @@ GLScopeGUI::GLScopeGUI(QWidget* parent) : qDebug("GLScopeGUI::GLScopeGUI"); setEnabled(false); ui->setupUi(this); - ui->trigDelayFine->setMaximum(ScopeVis::m_traceChunkDefaultSize / 10.0); + ui->trigDelayFine->setMaximum(GLScopeSettings::m_traceChunkDefaultSize / 10.0); ui->traceColor->setStyleSheet("QLabel { background-color : rgb(255,255,64); }"); m_focusedTraceColor.setRgb(255,255,64); ui->trigColor->setStyleSheet("QLabel { background-color : rgb(0,255,0); }"); m_focusedTriggerColor.setRgb(0,255,0); ui->traceText->setText("X"); - ui->mem->setMaximum(ScopeVis::m_nbTraceMemories - 1); + ui->mem->setMaximum(GLScopeSettings::m_nbTraceMemories - 1); } GLScopeGUI::~GLScopeGUI()