diff --git a/plugins/samplesource/testsource/testsourcegui.ui b/plugins/samplesource/testsource/testsourcegui.ui
index 90fb1f795..2abaa5717 100644
--- a/plugins/samplesource/testsource/testsourcegui.ui
+++ b/plugins/samplesource/testsource/testsourcegui.ui
@@ -482,7 +482,12 @@
-
- Pul
+ P0
+
+
+ -
+
+ P1
diff --git a/plugins/samplesource/testsource/testsourceinput.cpp b/plugins/samplesource/testsource/testsourceinput.cpp
index 94efed087..6a5509481 100644
--- a/plugins/samplesource/testsource/testsourceinput.cpp
+++ b/plugins/samplesource/testsource/testsourceinput.cpp
@@ -354,8 +354,15 @@ bool TestSourceInput::applySettings(const TestSourceSettings& settings, bool for
if ((m_settings.m_modulation != settings.m_modulation) || force)
{
- if (m_testSourceThread != 0) {
+ if (m_testSourceThread != 0)
+ {
m_testSourceThread->setModulation(settings.m_modulation);
+
+ if (settings.m_modulation == TestSourceSettings::ModulationPattern0) {
+ m_testSourceThread->setPattern0();
+ } else if (settings.m_modulation == TestSourceSettings::ModulationPattern1) {
+ m_testSourceThread->setPattern1();
+ }
}
}
diff --git a/plugins/samplesource/testsource/testsourcesettings.h b/plugins/samplesource/testsource/testsourcesettings.h
index 37dd52797..9c1c8f3fe 100644
--- a/plugins/samplesource/testsource/testsourcesettings.h
+++ b/plugins/samplesource/testsource/testsourcesettings.h
@@ -37,7 +37,8 @@ struct TestSourceSettings {
ModulationNone,
ModulationAM,
ModulationFM,
- ModulationPulse,
+ ModulationPattern0,
+ ModulationPattern1,
ModulationLast
} Modulation;
diff --git a/plugins/samplesource/testsource/testsourcethread.cpp b/plugins/samplesource/testsource/testsourcethread.cpp
index 432a5aa12..5f37d726f 100644
--- a/plugins/samplesource/testsource/testsourcethread.cpp
+++ b/plugins/samplesource/testsource/testsourcethread.cpp
@@ -267,7 +267,7 @@ void TestSourceThread::generate(quint32 chunksize)
m_buf[i++] = (int16_t) (im * (float) m_amplitudeBitsQ);
}
break;
- case TestSourceSettings::ModulationPulse:
+ case TestSourceSettings::ModulationPattern0: // binary pattern
{
if (m_pulseSampleCount < m_pulseWidth) // sync pattern: 0
{
@@ -288,7 +288,7 @@ void TestSourceThread::generate(quint32 chunksize)
{
uint32_t patPulseSampleCount = m_pulseSampleCount - 3*m_pulseWidth;
uint32_t patPulseIndex = patPulseSampleCount / m_pulseWidth;
- float patFigure = (m_pulsePatternCount & (1<