diff --git a/include-gpl/gui/glscope.h b/include-gpl/gui/glscope.h
index 7008c9ec2..e776544d4 100644
--- a/include-gpl/gui/glscope.h
+++ b/include-gpl/gui/glscope.h
@@ -60,6 +60,7 @@ public:
void setDisplays(Displays displays);
void setOrientation(Qt::Orientation orientation);
void setDisplayGridIntensity(int intensity);
+ void setDisplayTraceIntensity(int intensity);
void setTriggerChannel(ScopeVis::TriggerChannel triggerChannel);
void setTriggerLevel(Real triggerLevel);
@@ -112,6 +113,7 @@ private:
QRectF m_glScopeRect1;
QRectF m_glScopeRect2;
int m_displayGridIntensity;
+ int m_displayTraceIntensity;
QRectF m_glLeft1ScaleRect;
QRectF m_glLeft2ScaleRect;
QRectF m_glBot1ScaleRect;
diff --git a/include-gpl/gui/glscopegui.h b/include-gpl/gui/glscopegui.h
index 499636b6e..d9f25fc16 100644
--- a/include-gpl/gui/glscopegui.h
+++ b/include-gpl/gui/glscopegui.h
@@ -47,6 +47,7 @@ private:
qint32 m_amplification;
qint32 m_ampOffset;
int m_displayGridIntensity;
+ int m_displayTraceIntensity;
qint32 m_triggerChannel;
qint32 m_triggerLevel; // percent
bool m_triggerPositiveEdge;
@@ -70,6 +71,7 @@ private slots:
void on_timeOfs_valueChanged(int value);
void on_dataMode_currentIndexChanged(int index);
void on_gridIntensity_valueChanged(int index);
+ void on_traceIntensity_valueChanged(int index);
void on_horizView_clicked();
void on_vertView_clicked();
diff --git a/sdrbase/gui/glscope.cpp b/sdrbase/gui/glscope.cpp
index b40f4b6cb..ea352491e 100644
--- a/sdrbase/gui/glscope.cpp
+++ b/sdrbase/gui/glscope.cpp
@@ -36,6 +36,7 @@ GLScope::GLScope(QWidget* parent) :
m_triggerChannel(ScopeVis::TriggerFreeRun),
m_triggerLevel(0.0),
m_displayGridIntensity(5),
+ m_displayTraceIntensity(50),
m_left1ScaleTextureAllocated(false),
m_left2ScaleTextureAllocated(false),
m_bot1ScaleTextureAllocated(false),
@@ -134,6 +135,19 @@ void GLScope::setDisplayGridIntensity(int intensity)
m_displayGridIntensity = intensity;
if (m_displayGridIntensity > 100) {
m_displayGridIntensity = 100;
+ } else if (m_displayGridIntensity < 0) {
+ m_displayGridIntensity = 0;
+ }
+ update();
+}
+
+void GLScope::setDisplayTraceIntensity(int intensity)
+{
+ m_displayTraceIntensity = intensity;
+ if (m_displayTraceIntensity > 100) {
+ m_displayTraceIntensity = 100;
+ } else if (m_displayTraceIntensity < 0) {
+ m_displayTraceIntensity = 0;
}
update();
}
@@ -338,7 +352,7 @@ void GLScope::paintGL()
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_LINE_SMOOTH);
glLineWidth(1.0f);
- glColor4f(1, 1, 0.25f, 0.4f);
+ glColor4f(1, 1, 0.25f, m_displayTraceIntensity / 100.0);
int start = (m_timeOfsProMill/1000.0) * m_displayTrace->size();
int end = std::min(start + m_displayTrace->size()/m_timeBase, m_displayTrace->size());
if(end - start < 2)
@@ -510,7 +524,7 @@ void GLScope::paintGL()
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_LINE_SMOOTH);
glLineWidth(1.0f);
- glColor4f(1, 1, 0.25f, 0.4f);
+ glColor4f(1, 1, 0.25f, m_displayTraceIntensity / 100.0);
int start = (m_timeOfsProMill/1000.0) * m_displayTrace->size();
int end = std::min(start + m_displayTrace->size()/m_timeBase, m_displayTrace->size());
if(end - start < 2)
diff --git a/sdrbase/gui/glscopegui.cpp b/sdrbase/gui/glscopegui.cpp
index e76022591..cdd966d2b 100644
--- a/sdrbase/gui/glscopegui.cpp
+++ b/sdrbase/gui/glscopegui.cpp
@@ -80,6 +80,7 @@ QByteArray GLScopeGUI::serialize() const
s.writeS32(9, m_triggerChannel);
s.writeS32(10, m_triggerLevel);
s.writeBool(11, m_triggerPositiveEdge);
+ s.writeS32(12, m_displayTraceIntensity);
return s.final();
}
@@ -112,6 +113,7 @@ bool GLScopeGUI::deserialize(const QByteArray& data)
d.readBool(11, &m_triggerPositiveEdge, true);
ui->slopePos->setChecked(m_triggerPositiveEdge);
ui->slopeNeg->setChecked(!m_triggerPositiveEdge);
+ d.readS32(12, &m_displayTraceIntensity, 50);
applySettings();
applyTriggerSettings();
return true;
@@ -161,6 +163,7 @@ void GLScopeGUI::applySettings()
ui->amp->setValue(m_amplification);
ui->ampOfs->setValue(m_ampOffset);
ui->gridIntensity->setSliderPosition(m_displayGridIntensity);
+ ui->traceIntensity->setSliderPosition(m_displayTraceIntensity);
}
void GLScopeGUI::applyTriggerSettings()
@@ -380,10 +383,19 @@ void GLScopeGUI::on_onlySecondView_clicked()
void GLScopeGUI::on_gridIntensity_valueChanged(int index)
{
m_displayGridIntensity = index;
+ ui->gridIntensity->setToolTip(QString("Grid intensity: %1").arg(m_displayGridIntensity));
if(m_glScope != NULL)
m_glScope->setDisplayGridIntensity(m_displayGridIntensity);
}
+void GLScopeGUI::on_traceIntensity_valueChanged(int index)
+{
+ m_displayTraceIntensity = index;
+ ui->traceIntensity->setToolTip(QString("Trace intensity: %1").arg(m_displayTraceIntensity));
+ if(m_glScope != NULL)
+ m_glScope->setDisplayTraceIntensity(m_displayTraceIntensity);
+}
+
void GLScopeGUI::on_trigMode_currentIndexChanged(int index)
{
m_triggerChannel = index;
diff --git a/sdrbase/gui/glscopegui.ui b/sdrbase/gui/glscopegui.ui
index e125fe7e6..4156a633a 100644
--- a/sdrbase/gui/glscopegui.ui
+++ b/sdrbase/gui/glscopegui.ui
@@ -460,6 +460,9 @@
24
+
+ Grid intensity
+
100
@@ -692,6 +695,35 @@
+ -
+
+
+ Qt::Vertical
+
+
+
+ -
+
+
+
+ 24
+ 24
+
+
+
+ Trace intensity
+
+
+ 100
+
+
+ 1
+
+
+ 50
+
+
+