diff --git a/sdrbase/dsp/scopevisng.cpp b/sdrbase/dsp/scopevisng.cpp index a348157bf..b853e8681 100644 --- a/sdrbase/dsp/scopevisng.cpp +++ b/sdrbase/dsp/scopevisng.cpp @@ -31,7 +31,6 @@ MESSAGE_CLASS_DEFINITION(ScopeVisNG::MsgScopeVisNGRemoveTrace, Message) const uint ScopeVisNG::m_traceChunkSize = 4800; const Real ScopeVisNG::ProjectorMagDB::mult = (10.0f / log2f(10.0f)); - ScopeVisNG::ScopeVisNG(GLScopeNG* glScope) : m_glScope(glScope), m_preTriggerDelay(0), @@ -479,7 +478,7 @@ bool ScopeVisNG::handleMessage(const Message& message) { MsgScopeVisNGAddTrigger& conf = (MsgScopeVisNGAddTrigger&) message; m_triggerConditions.push_back(TriggerCondition(conf.getTriggerData())); - m_triggerConditions.back().init(); + m_triggerConditions.back().initProjector(); return true; } else if (MsgScopeVisNGChangeTrigger::match(message)) @@ -499,6 +498,7 @@ bool ScopeVisNG::handleMessage(const Message& message) int triggerIndex = conf.getTriggerIndex(); if (triggerIndex < m_triggerConditions.size()) { + m_triggerConditions[triggerIndex].releaseProjector(); m_triggerConditions.erase(m_triggerConditions.begin() + triggerIndex); } diff --git a/sdrbase/dsp/scopevisng.h b/sdrbase/dsp/scopevisng.h index 7aa232bd9..86bef4a32 100644 --- a/sdrbase/dsp/scopevisng.h +++ b/sdrbase/dsp/scopevisng.h @@ -360,17 +360,6 @@ private: } return dPhi; - -// Real dPhi = curArg - m_prevArg; -// m_prevArg = curArg; -// -// if (dPhi < -M_PI) { -// dPhi += 2.0 * M_PI; -// } else if (dPhi > M_PI) { -// dPhi -= 2.0 * M_PI; -// } -// -// return dPhi/M_PI; } private: @@ -430,14 +419,18 @@ private: ~TriggerCondition() { - if (m_projector) delete m_projector; } - void init() + void initProjector() { m_projector = createProjector(m_triggerData.m_projectionType); } + void releaseProjector() + { + delete m_projector; + } + void setData(const TriggerData& triggerData) { m_triggerData = triggerData; diff --git a/sdrbase/gui/glscopenggui.cpp b/sdrbase/gui/glscopenggui.cpp index ab2b128c9..c63957eab 100644 --- a/sdrbase/gui/glscopenggui.cpp +++ b/sdrbase/gui/glscopenggui.cpp @@ -257,6 +257,31 @@ void GLScopeNGGUI::on_traceLen_valueChanged(int value) setTimeOfsDisplay(); } +void GLScopeNGGUI::on_trig_valueChanged(int value) +{ + ui->trigText->setText(tr("%1").arg(value)); +} + +void GLScopeNGGUI::on_trigAdd_clicked(bool checked) +{ + if (ui->trig->maximum() < 9) + { + ScopeVisNG::TriggerData triggerData; + fillTriggerData(triggerData); + m_scopeVis->addTrigger(triggerData); + ui->trig->setMaximum(ui->trig->maximum() + 1); + } +} + +void GLScopeNGGUI::on_trigDel_clicked(bool checked) +{ + if (ui->trig->maximum() > 0) + { + m_scopeVis->removeTrigger(ui->trig->value()); + ui->trig->setMaximum(ui->trig->maximum() - 1); + } +} + void GLScopeNGGUI::on_traceMode_currentIndexChanged(int index) { setAmpScaleDisplay(); @@ -656,6 +681,11 @@ void GLScopeNGGUI::fillTriggerData(ScopeVisNG::TriggerData& triggerData) triggerData.m_triggerDelay = (int) (m_traceLenMult * ScopeVisNG::m_traceChunkSize * delayMult); } +void GLScopeNGGUI::setTriggerUI(ScopeVisNG::TriggerData& triggerData) +{ + +} + void GLScopeNGGUI::applySettings() { } diff --git a/sdrbase/gui/glscopenggui.h b/sdrbase/gui/glscopenggui.h index 1d6b21f3e..57269c613 100644 --- a/sdrbase/gui/glscopenggui.h +++ b/sdrbase/gui/glscopenggui.h @@ -83,6 +83,7 @@ private: void fillTraceData(ScopeVisNG::TraceData& traceData); void fillTriggerData(ScopeVisNG::TriggerData& triggerData); + void setTriggerUI(ScopeVisNG::TriggerData& triggerData); void fillProjectionCombo(QComboBox* comboBox); @@ -106,6 +107,9 @@ private slots: void on_ofsFine_valueChanged(int value); void on_traceDelay_valueChanged(int value); // Third row + void on_trig_valueChanged(int value); + void on_trigAdd_clicked(bool checked); + void on_trigDel_clicked(bool checked); void on_trigMode_currentIndexChanged(int index); void on_trigCount_valueChanged(int value); void on_trigPos_toggled(bool checked); diff --git a/sdrbase/gui/glscopenggui.ui b/sdrbase/gui/glscopenggui.ui index a2cc681e4..21168a026 100644 --- a/sdrbase/gui/glscopenggui.ui +++ b/sdrbase/gui/glscopenggui.ui @@ -700,7 +700,7 @@ kS/s - 32 + 36 0 @@ -749,7 +749,7 @@ kS/s - 32 + 36 0 @@ -1292,7 +1292,7 @@ kS/s - 32 + 36 0