From 43d40a4acedaa367a9ce398c71e0e2d3351fb5cc Mon Sep 17 00:00:00 2001
From: f4exb <f4exb06@gmail.com>
Date: Sun, 12 Mar 2017 21:41:01 +0100
Subject: [PATCH] ATV Modulator: PAL-M (525l) effective support

---
 devices/bladerf/devicebladerfvalues.cpp       |  2 ++
 devices/hackrf/devicehackrfvalues.cpp         |  4 ++-
 plugins/channeltx/modatv/atvmodgui.cpp        |  5 ++++
 plugins/channeltx/modatv/atvmodgui.h          |  1 +
 plugins/channeltx/modatv/atvmodgui.ui         | 17 +++++++----
 .../hackrfoutput/hackrfoutputgui.cpp          |  2 +-
 .../hackrfoutput/hackrfoutputgui.ui           | 19 ++++++++++--
 .../hackrfoutput/hackrfoutputplugin.cpp       |  2 +-
 .../hackrfinput/hackrfinputgui.cpp            |  2 +-
 .../hackrfinput/hackrfinputgui.ui             | 30 ++++++++++++++++---
 .../hackrfinput/hackrfinputplugin.cpp         |  2 +-
 11 files changed, 68 insertions(+), 18 deletions(-)

diff --git a/devices/bladerf/devicebladerfvalues.cpp b/devices/bladerf/devicebladerfvalues.cpp
index 5be586443..8bd7aa077 100644
--- a/devices/bladerf/devicebladerfvalues.cpp
+++ b/devices/bladerf/devicebladerfvalues.cpp
@@ -25,11 +25,13 @@ unsigned int DeviceBladeRFSampleRates::m_rates[] = {
         2304,
         2400,
         3000,
+        3024,
         3072,
         3200,
         4608,
         4800,
         6000,
+        6048,
         6144,
         7680,
         9216,
diff --git a/devices/hackrf/devicehackrfvalues.cpp b/devices/hackrf/devicehackrfvalues.cpp
index 5cc9b30ce..3edef3153 100644
--- a/devices/hackrf/devicehackrfvalues.cpp
+++ b/devices/hackrf/devicehackrfvalues.cpp
@@ -16,16 +16,18 @@
 
 #include "devicehackrfvalues.h"
 
-const unsigned int HackRFSampleRates::m_nb_rates = 17;
+const unsigned int HackRFSampleRates::m_nb_rates = 19;
 const unsigned int HackRFSampleRates::m_rates[HackRFSampleRates::m_nb_rates] = {
         2400000,
         3000000,
+        3024000, // for PAL-M
         3200000,
         4000000,
         4333333, // for GSM
         4800000,
         5600000,
         6000000,
+        6048000, // for PAL-M
         6400000,
         8000000,
         9600000,
diff --git a/plugins/channeltx/modatv/atvmodgui.cpp b/plugins/channeltx/modatv/atvmodgui.cpp
index 90279a5a0..e1b496e07 100644
--- a/plugins/channeltx/modatv/atvmodgui.cpp
+++ b/plugins/channeltx/modatv/atvmodgui.cpp
@@ -249,6 +249,11 @@ void ATVModGUI::on_rfBW_valueChanged(int value)
 	applySettings();
 }
 
+void ATVModGUI::on_standard_currentIndexChanged(int index)
+{
+    applySettings();
+}
+
 void ATVModGUI::on_uniformLevel_valueChanged(int value)
 {
 	ui->uniformLevelText->setText(QString("%1").arg(value));
diff --git a/plugins/channeltx/modatv/atvmodgui.h b/plugins/channeltx/modatv/atvmodgui.h
index 549f8f8e0..58a742ef5 100644
--- a/plugins/channeltx/modatv/atvmodgui.h
+++ b/plugins/channeltx/modatv/atvmodgui.h
@@ -64,6 +64,7 @@ private slots:
     void on_deltaMinus_toggled(bool minus);
     void on_modulation_currentIndexChanged(int index);
     void on_rfBW_valueChanged(int value);
+    void on_standard_currentIndexChanged(int index);
     void on_uniformLevel_valueChanged(int value);
     void on_inputSelect_currentIndexChanged(int index);
     void on_channelMute_toggled(bool checked);
diff --git a/plugins/channeltx/modatv/atvmodgui.ui b/plugins/channeltx/modatv/atvmodgui.ui
index bcabbcdea..3e9b384d9 100644
--- a/plugins/channeltx/modatv/atvmodgui.ui
+++ b/plugins/channeltx/modatv/atvmodgui.ui
@@ -6,19 +6,19 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>491</width>
+    <width>490</width>
     <height>364</height>
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+   <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
   <property name="minimumSize">
    <size>
-    <width>0</width>
+    <width>490</width>
     <height>0</height>
    </size>
   </property>
@@ -37,15 +37,15 @@
   <widget class="QWidget" name="settingsContainer" native="true">
    <property name="geometry">
     <rect>
-     <x>10</x>
+     <x>0</x>
      <y>10</y>
-     <width>461</width>
+     <width>480</width>
      <height>341</height>
     </rect>
    </property>
    <property name="minimumSize">
     <size>
-     <width>360</width>
+     <width>480</width>
      <height>0</height>
     </size>
    </property>
@@ -316,6 +316,11 @@
           <string>PAL625L</string>
          </property>
         </item>
+        <item>
+         <property name="text">
+          <string>PAL525L</string>
+         </property>
+        </item>
        </widget>
       </item>
       <item>
diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp b/plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp
index a4e0266ce..030cdf94c 100644
--- a/plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp
+++ b/plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp
@@ -189,7 +189,7 @@ void HackRFOutputGui::displaySampleRates()
 
 	for (int i = 0; i < HackRFSampleRates::m_nb_rates; i++)
 	{
-		ui->sampleRate->addItem(QString("%1M").arg(QString::number(HackRFSampleRates::m_rates[i] / 1000000.0f, 'f', 1)));
+		ui->sampleRate->addItem(QString("%1").arg(QString::number(HackRFSampleRates::m_rates[i] / 1000.0f, 'f', 0)));
 	}
 
 	ui->sampleRate->blockSignals(false);
diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputgui.ui b/plugins/samplesink/hackrfoutput/hackrfoutputgui.ui
index 7f53befe2..746fe3c84 100644
--- a/plugins/samplesink/hackrfoutput/hackrfoutputgui.ui
+++ b/plugins/samplesink/hackrfoutput/hackrfoutputgui.ui
@@ -327,26 +327,32 @@
      </item>
      <item row="0" column="1">
       <widget class="QComboBox" name="sampleRate">
+       <property name="maximumSize">
+        <size>
+         <width>70</width>
+         <height>16777215</height>
+        </size>
+       </property>
        <property name="toolTip">
         <string>Device sample rate</string>
        </property>
       </widget>
      </item>
-     <item row="0" column="3">
+     <item row="0" column="4">
       <widget class="QLabel" name="bbFiltLabel">
        <property name="text">
         <string>BBF</string>
        </property>
       </widget>
      </item>
-     <item row="0" column="4">
+     <item row="0" column="5">
       <widget class="QComboBox" name="bbFilter">
        <property name="toolTip">
         <string>RF bandpas filter</string>
        </property>
       </widget>
      </item>
-     <item row="0" column="2">
+     <item row="0" column="3">
       <spacer name="horizontalSpacer">
        <property name="orientation">
         <enum>Qt::Horizontal</enum>
@@ -359,6 +365,13 @@
        </property>
       </spacer>
      </item>
+     <item row="0" column="2">
+      <widget class="QLabel" name="sampleRateUnits">
+       <property name="text">
+        <string>kS/s</string>
+       </property>
+      </widget>
+     </item>
     </layout>
    </item>
    <item>
diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputplugin.cpp b/plugins/samplesink/hackrfoutput/hackrfoutputplugin.cpp
index 45bad6b7c..9e9c79fc5 100644
--- a/plugins/samplesink/hackrfoutput/hackrfoutputplugin.cpp
+++ b/plugins/samplesink/hackrfoutput/hackrfoutputplugin.cpp
@@ -29,7 +29,7 @@
 
 const PluginDescriptor HackRFOutputPlugin::m_pluginDescriptor = {
 	QString("HackRF Output"),
-	QString("3.1.0"),
+	QString("3.3.0"),
 	QString("(c) Edouard Griffiths, F4EXB"),
 	QString("https://github.com/f4exb/sdrangel"),
 	true,
diff --git a/plugins/samplesource/hackrfinput/hackrfinputgui.cpp b/plugins/samplesource/hackrfinput/hackrfinputgui.cpp
index 992de106e..bb5f6d3fd 100644
--- a/plugins/samplesource/hackrfinput/hackrfinputgui.cpp
+++ b/plugins/samplesource/hackrfinput/hackrfinputgui.cpp
@@ -206,7 +206,7 @@ void HackRFInputGui::displaySampleRates()
 
 	for (int i = 0; i < HackRFSampleRates::m_nb_rates; i++)
 	{
-		ui->sampleRate->addItem(QString("%1M").arg(QString::number(HackRFSampleRates::m_rates[i] / 1000000.0f, 'f', 1)));
+		ui->sampleRate->addItem(QString("%1").arg(QString::number(HackRFSampleRates::m_rates[i] / 1000.0f, 'f', 0)));
 	}
 
 	ui->sampleRate->blockSignals(false);
diff --git a/plugins/samplesource/hackrfinput/hackrfinputgui.ui b/plugins/samplesource/hackrfinput/hackrfinputgui.ui
index 26b4068ba..61f526993 100644
--- a/plugins/samplesource/hackrfinput/hackrfinputgui.ui
+++ b/plugins/samplesource/hackrfinput/hackrfinputgui.ui
@@ -35,7 +35,16 @@
    <property name="spacing">
     <number>3</number>
    </property>
-   <property name="margin">
+   <property name="leftMargin">
+    <number>2</number>
+   </property>
+   <property name="topMargin">
+    <number>2</number>
+   </property>
+   <property name="rightMargin">
+    <number>2</number>
+   </property>
+   <property name="bottomMargin">
     <number>2</number>
    </property>
    <item>
@@ -300,26 +309,32 @@
      </item>
      <item row="0" column="1">
       <widget class="QComboBox" name="sampleRate">
+       <property name="maximumSize">
+        <size>
+         <width>70</width>
+         <height>16777215</height>
+        </size>
+       </property>
        <property name="toolTip">
         <string>Device sample rate</string>
        </property>
       </widget>
      </item>
-     <item row="0" column="3">
+     <item row="0" column="4">
       <widget class="QLabel" name="bbFiltLabel">
        <property name="text">
         <string>BBF</string>
        </property>
       </widget>
      </item>
-     <item row="0" column="4">
+     <item row="0" column="5">
       <widget class="QComboBox" name="bbFilter">
        <property name="toolTip">
         <string>RF bandpas filter</string>
        </property>
       </widget>
      </item>
-     <item row="0" column="2">
+     <item row="0" column="3">
       <spacer name="horizontalSpacer">
        <property name="orientation">
         <enum>Qt::Horizontal</enum>
@@ -332,6 +347,13 @@
        </property>
       </spacer>
      </item>
+     <item row="0" column="2">
+      <widget class="QLabel" name="sampleRateUnits">
+       <property name="text">
+        <string>kS/s</string>
+       </property>
+      </widget>
+     </item>
     </layout>
    </item>
    <item>
diff --git a/plugins/samplesource/hackrfinput/hackrfinputplugin.cpp b/plugins/samplesource/hackrfinput/hackrfinputplugin.cpp
index 051f21948..967c6bad0 100644
--- a/plugins/samplesource/hackrfinput/hackrfinputplugin.cpp
+++ b/plugins/samplesource/hackrfinput/hackrfinputplugin.cpp
@@ -29,7 +29,7 @@
 
 const PluginDescriptor HackRFInputPlugin::m_pluginDescriptor = {
 	QString("HackRF Input"),
-	QString("3.1.0"),
+	QString("3.3.0"),
 	QString("(c) Edouard Griffiths, F4EXB"),
 	QString("https://github.com/f4exb/sdrangel"),
 	true,