diff --git a/devices/plutosdr/deviceplutosdrparams.h b/devices/plutosdr/deviceplutosdrparams.h
index e318d3f72..69f83de66 100644
--- a/devices/plutosdr/deviceplutosdrparams.h
+++ b/devices/plutosdr/deviceplutosdrparams.h
@@ -30,7 +30,7 @@ class DEVICES_API DevicePlutoSDRBox;
  * There is only one copy that is constructed by the first participant and destroyed by the last.
  * A participant knows it is the first or last by checking the lists of buddies (Rx + Tx).
  */
-struct DevicePlutoSDRParams
+class DevicePlutoSDRParams
 {
 public:
     DevicePlutoSDRParams();
diff --git a/plugins/channelrx/demodbfm/CMakeLists.txt b/plugins/channelrx/demodbfm/CMakeLists.txt
index 8eae42d0b..090cce81d 100644
--- a/plugins/channelrx/demodbfm/CMakeLists.txt
+++ b/plugins/channelrx/demodbfm/CMakeLists.txt
@@ -22,7 +22,9 @@ set(bfm_HEADERS
 	rdstmc.h
 )
 
-set_source_files_properties(rdstmc.cpp PROPERTIES COMPILE_FLAGS -fno-var-tracking-assignments)
+if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+    set_source_files_properties(rdstmc.cpp PROPERTIES COMPILE_FLAGS -fno-var-tracking-assignments)
+endif()
 
 set(bfm_FORMS
 	bfmdemodgui.ui
diff --git a/plugins/channelrx/demoddatv/leansdr/generic.h b/plugins/channelrx/demoddatv/leansdr/generic.h
index eb44ac05b..47577328e 100644
--- a/plugins/channelrx/demoddatv/leansdr/generic.h
+++ b/plugins/channelrx/demoddatv/leansdr/generic.h
@@ -329,7 +329,7 @@ private:
 template<typename Tin, typename Tout>
 struct serializer: runnable
 {
-    serializer(scheduler *sch, pipebuf<Tin> &_in, pipebuf<Tout> &_out) :
+    serializer(scheduler *sch __attribute__((unused)), pipebuf<Tin> &_in, pipebuf<Tout> &_out) :
             nin(max((size_t) 1, sizeof(Tin) / sizeof(Tout))), nout(max((size_t) 1, sizeof(Tout) / sizeof(Tin))), in(_in), out(_out, nout)
     {
         if (nin * sizeof(Tin) != nout * sizeof(Tout))
diff --git a/plugins/channelrx/demoddatv/leansdr/sdr.h b/plugins/channelrx/demoddatv/leansdr/sdr.h
index 94b35db94..6d4da2b57 100644
--- a/plugins/channelrx/demoddatv/leansdr/sdr.h
+++ b/plugins/channelrx/demoddatv/leansdr/sdr.h
@@ -325,7 +325,6 @@ private:
             float gain = estimated ? out_rms / sqrtf(estimated) : 0;
             pin = in.rd();
             complex<T> *pout = out.wr();
-            float bwcomp = 1 - bw;
             for (; pin < pend; ++pin, ++pout)
             {
                 pout->re = pin->re * gain;
diff --git a/plugins/channelrx/demoddsd/dsddemod.cpp b/plugins/channelrx/demoddsd/dsddemod.cpp
index d668cc743..34b3e86e1 100644
--- a/plugins/channelrx/demoddsd/dsddemod.cpp
+++ b/plugins/channelrx/demoddsd/dsddemod.cpp
@@ -50,7 +50,6 @@ DSDDemod::DSDDemod(DeviceSourceAPI *deviceAPI) :
         m_squelchGate(0),
         m_squelchLevel(1e-4),
         m_squelchOpen(false),
-        m_fmExcursion(24),
         m_audioFifo1(48000),
         m_audioFifo2(48000),
         m_scope(0),
diff --git a/plugins/channelrx/demoddsd/dsddemod.h b/plugins/channelrx/demoddsd/dsddemod.h
index 2554f4f2a..5c47cb5fe 100644
--- a/plugins/channelrx/demoddsd/dsddemod.h
+++ b/plugins/channelrx/demoddsd/dsddemod.h
@@ -181,8 +181,6 @@ private:
     double m_magsqPeak;
     int  m_magsqCount;
 
-	Real m_fmExcursion;
-
 	SampleVector m_scopeSampleBuffer;
 	AudioVector m_audioBuffer;
 	uint m_audioBufferFill;
diff --git a/plugins/channelrx/demodnfm/nfmdemod.cpp b/plugins/channelrx/demodnfm/nfmdemod.cpp
index 0a097bee0..f3fb247a4 100644
--- a/plugins/channelrx/demodnfm/nfmdemod.cpp
+++ b/plugins/channelrx/demodnfm/nfmdemod.cpp
@@ -55,7 +55,6 @@ NFMDemod::NFMDemod(DeviceSourceAPI *devieAPI) :
         m_sampleCount(0),
         m_squelchCount(0),
         m_squelchGate(2),
-        m_audioMute(false),
         m_squelchLevel(-990),
         m_squelchOpen(false),
         m_afSquelchOpen(false),
@@ -64,7 +63,6 @@ NFMDemod::NFMDemod(DeviceSourceAPI *devieAPI) :
         m_magsqPeak(0.0f),
         m_magsqCount(0),
         m_afSquelch(2, afSqTones),
-        m_fmExcursion(2400),
         m_audioFifo(48000),
         m_settingsMutex(QMutex::Recursive)
 {
diff --git a/plugins/channelrx/demodnfm/nfmdemod.h b/plugins/channelrx/demodnfm/nfmdemod.h
index 7fe8d2569..eea637641 100644
--- a/plugins/channelrx/demodnfm/nfmdemod.h
+++ b/plugins/channelrx/demodnfm/nfmdemod.h
@@ -191,7 +191,6 @@ private:
 	int m_sampleCount;
 	int m_squelchCount;
 	int m_squelchGate;
-	bool m_audioMute;
 
 	Real m_squelchLevel;
 	bool m_squelchOpen;
@@ -201,16 +200,9 @@ private:
 	double m_magsqPeak;
     int  m_magsqCount;
 
-	Real m_lastArgument;
-	//Complex m_m1Sample;
-	//Complex m_m2Sample;
 	MovingAverageUtil<Real, double, 32> m_movingAverage;
 	AFSquelch m_afSquelch;
 	Real m_agcLevel; // AGC will aim to  this level
-	Real m_agcFloor; // AGC will not go below this level
-
-	Real m_fmExcursion;
-	//Real m_fmScaling;
 
 	AudioVector m_audioBuffer;
 	uint m_audioBufferFill;
diff --git a/plugins/channelrx/demodwfm/wfmdemod.h b/plugins/channelrx/demodwfm/wfmdemod.h
index 7cb60b43b..507b2a8f6 100644
--- a/plugins/channelrx/demodwfm/wfmdemod.h
+++ b/plugins/channelrx/demodwfm/wfmdemod.h
@@ -149,7 +149,6 @@ private:
     double m_magsqPeak;
     int  m_magsqCount;
 
-	Real m_lastArgument;
 	MovingAverageUtil<Real, double, 16> m_movingAverage;
 	Real m_fmExcursion;
 
diff --git a/plugins/channelrx/tcpsrc/tcpsrcsettings.h b/plugins/channelrx/tcpsrc/tcpsrcsettings.h
index 372a032f0..9c1aee574 100644
--- a/plugins/channelrx/tcpsrc/tcpsrcsettings.h
+++ b/plugins/channelrx/tcpsrc/tcpsrcsettings.h
@@ -21,7 +21,7 @@
 #include <QString>
 #include <stdint.h>
 
-struct Serializable;
+class Serializable;
 
 struct TCPSrcSettings
 {
diff --git a/plugins/channelrx/udpsrc/udpsrcsettings.h b/plugins/channelrx/udpsrc/udpsrcsettings.h
index 45ee20a14..7286d5fcf 100644
--- a/plugins/channelrx/udpsrc/udpsrcsettings.h
+++ b/plugins/channelrx/udpsrc/udpsrcsettings.h
@@ -21,7 +21,7 @@
 #include <QString>
 #include <stdint.h>
 
-struct Serializable;
+class Serializable;
 
 struct UDPSrcSettings
 {
diff --git a/plugins/channeltx/modatv/atvmodsettings.h b/plugins/channeltx/modatv/atvmodsettings.h
index 2293a8ea5..c54e1d4eb 100644
--- a/plugins/channeltx/modatv/atvmodsettings.h
+++ b/plugins/channeltx/modatv/atvmodsettings.h
@@ -21,7 +21,7 @@
 #include <QString>
 #include <stdint.h>
 
-struct Serializable;
+class Serializable;
 
 struct ATVModSettings
 {
diff --git a/plugins/channeltx/modnfm/nfmmod.cpp b/plugins/channeltx/modnfm/nfmmod.cpp
index 4a3c9d825..347385c82 100644
--- a/plugins/channeltx/modnfm/nfmmod.cpp
+++ b/plugins/channeltx/modnfm/nfmmod.cpp
@@ -179,10 +179,10 @@ void NFMMod::pullAF(Real& sample)
 {
     switch (m_settings.m_modAFInput)
     {
-    case NFMModInputTone:
+    case NFMModSettings::NFMModInputTone:
         sample = m_toneNco.next();
         break;
-    case NFMModInputFile:
+    case NFMModSettings::NFMModInputFile:
         // sox f4exb_call.wav --encoding float --endian little f4exb_call.raw
         // ffplay -f f32le -ar 48k -ac 1 f4exb_call.raw
         if (m_ifstream.is_open())
@@ -211,10 +211,10 @@ void NFMMod::pullAF(Real& sample)
             sample = 0.0f;
         }
         break;
-    case NFMModInputAudio:
+    case NFMModSettings::NFMModInputAudio:
         sample = ((m_audioBuffer[m_audioBufferFill].l + m_audioBuffer[m_audioBufferFill].r) / 65536.0f) * m_settings.m_volumeFactor;
         break;
-    case NFMModInputCWTone:
+    case NFMModSettings::NFMModInputCWTone:
         Real fadeFactor;
 
         if (m_cwKeyer.getSample())
@@ -235,7 +235,7 @@ void NFMMod::pullAF(Real& sample)
             }
         }
         break;
-    case NFMModInputNone:
+    case NFMModSettings::NFMModInputNone:
     default:
         sample = 0.0f;
         break;
diff --git a/plugins/channeltx/modnfm/nfmmod.h b/plugins/channeltx/modnfm/nfmmod.h
index 1a7c84039..9276b10b1 100644
--- a/plugins/channeltx/modnfm/nfmmod.h
+++ b/plugins/channeltx/modnfm/nfmmod.h
@@ -91,15 +91,6 @@ public:
         { }
     };
 
-    typedef enum
-    {
-        NFMModInputNone,
-        NFMModInputTone,
-        NFMModInputFile,
-        NFMModInputAudio,
-        NFMModInputCWTone
-    } NFMModInputAF;
-
     class MsgConfigureFileSourceName : public Message
     {
         MESSAGE_CLASS_DECLARATION
@@ -296,7 +287,7 @@ private:
     quint32 m_recordLength; //!< record length in seconds computed from file size
     int m_sampleRate;
 
-    NFMModInputAF m_afInput;
+    NFMModSettings::NFMModInputAF m_afInput;
     quint32 m_levelCalcCount;
     Real m_peakLevel;
     Real m_levelSum;
diff --git a/plugins/channeltx/modnfm/nfmmodgui.h b/plugins/channeltx/modnfm/nfmmodgui.h
index d07a7b1a0..8d144480d 100644
--- a/plugins/channeltx/modnfm/nfmmodgui.h
+++ b/plugins/channeltx/modnfm/nfmmodgui.h
@@ -72,7 +72,7 @@ private:
     int m_samplesCount;
     std::size_t m_tickCount;
     bool m_enableNavTime;
-    NFMMod::NFMModInputAF m_modAFInput;
+    NFMModSettings::NFMModInputAF m_modAFInput;
     MessageQueue m_inputMessageQueue;
 
     explicit NFMModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSource *channelTx, QWidget* parent = 0);
diff --git a/plugins/channeltx/modssb/ssbmodsettings.h b/plugins/channeltx/modssb/ssbmodsettings.h
index 516d283e0..2cab6cb18 100644
--- a/plugins/channeltx/modssb/ssbmodsettings.h
+++ b/plugins/channeltx/modssb/ssbmodsettings.h
@@ -21,7 +21,7 @@
 #include <QString>
 #include <stdint.h>
 
-struct Serializable;
+class Serializable;
 
 struct SSBModSettings
 {
diff --git a/plugins/channeltx/udpsink/udpsinkgui.cpp b/plugins/channeltx/udpsink/udpsinkgui.cpp
index f6e01794c..f4741295b 100644
--- a/plugins/channeltx/udpsink/udpsinkgui.cpp
+++ b/plugins/channeltx/udpsink/udpsinkgui.cpp
@@ -255,7 +255,7 @@ void UDPSinkGUI::on_deltaFrequency_changed(qint64 value)
 
 void UDPSinkGUI::on_sampleFormat_currentIndexChanged(int index)
 {
-    if ((index == (int) UDPSinkSettings::FormatNFM)) {
+    if (index == (int) UDPSinkSettings::FormatNFM) {
         ui->fmDeviation->setEnabled(true);
     } else {
         ui->fmDeviation->setEnabled(false);
diff --git a/plugins/channeltx/udpsink/udpsinksettings.h b/plugins/channeltx/udpsink/udpsinksettings.h
index ae44f6b9a..e060752a0 100644
--- a/plugins/channeltx/udpsink/udpsinksettings.h
+++ b/plugins/channeltx/udpsink/udpsinksettings.h
@@ -21,7 +21,7 @@
 #include <QString>
 #include <stdint.h>
 
-struct Serializable;
+class Serializable;
 
 struct UDPSinkSettings
 {
diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcebuffer.cpp b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcebuffer.cpp
index 594434cf2..a4e721c96 100644
--- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcebuffer.cpp
+++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcebuffer.cpp
@@ -28,7 +28,7 @@
 const int SDRdaemonSourceBuffer::m_sampleSize = 2;
 const int SDRdaemonSourceBuffer::m_iqSampleSize = 2 * m_sampleSize;
 
-SDRdaemonSourceBuffer::SDRdaemonSourceBuffer(uint32_t throttlems) :
+SDRdaemonSourceBuffer::SDRdaemonSourceBuffer() :
         m_decoderIndexHead(nbDecoderSlots/2),
         m_frameHead(0),
         m_curNbBlocks(0),
@@ -39,7 +39,6 @@ SDRdaemonSourceBuffer::SDRdaemonSourceBuffer(uint32_t throttlems) :
         m_maxNbRecovery(0),
         m_framesDecoded(true),
         m_readIndex(0),
-        m_throttlemsNominal(throttlems),
         m_readBuffer(0),
         m_readSize(0),
         m_bufferLenSec(0.0f),
diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcebuffer.h b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcebuffer.h
index 5613ecac0..c051061e9 100644
--- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcebuffer.h
+++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcebuffer.h
@@ -83,7 +83,7 @@ public:
     };
 #pragma pack(pop)
 
-	SDRdaemonSourceBuffer(uint32_t throttlems);
+	SDRdaemonSourceBuffer();
 	~SDRdaemonSourceBuffer();
 
 	// R/W operations
@@ -207,7 +207,6 @@ private:
     uint32_t             m_tvOut_usec;           //!< Estimated returned samples timestamp (microseconds)
     int                  m_readNbBytes;          //!< Nominal number of bytes per read (50ms)
 
-	uint32_t m_throttlemsNominal;  //!< Initial throttle in ms
     uint8_t* m_readBuffer;         //!< Read buffer to hold samples when looping back to beginning of raw buffer
     int      m_readSize;           //!< Read buffer size
 
diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp
index 5013a3f38..622ccfa3e 100644
--- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp
+++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp
@@ -52,9 +52,7 @@ SDRdaemonSourceInput::SDRdaemonSourceInput(DeviceSourceAPI *deviceAPI) :
     m_settings(),
 	m_SDRdaemonUDPHandler(0),
 	m_deviceDescription(),
-	m_startingTimeStamp(0),
-    m_autoFollowRate(false),
-    m_autoCorrBuffer(false)
+	m_startingTimeStamp(0)
 {
     m_sender = nn_socket(AF_SP, NN_PAIR);
     assert(m_sender != -1);
diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.h b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.h
index 8e640428c..0de1e372b 100644
--- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.h
+++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.h
@@ -297,8 +297,6 @@ private:
 	int m_sender;
 	QString m_deviceDescription;
 	std::time_t m_startingTimeStamp;
-    bool m_autoFollowRate;
-    bool m_autoCorrBuffer;
     FileRecord *m_fileSink; //!< File sink to record device I/Q output
 
     void applySettings(const SDRdaemonSourceSettings& settings, bool force = false);
diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceudphandler.cpp b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceudphandler.cpp
index 5ae6f0778..5110e75ea 100644
--- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceudphandler.cpp
+++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceudphandler.cpp
@@ -32,7 +32,6 @@ SDRdaemonSourceUDPHandler::SDRdaemonSourceUDPHandler(SampleSinkFifo *sampleFifo,
     m_masterTimerConnected(false),
     m_running(false),
     m_rateDivider(1000/SDRDAEMONSOURCE_THROTTLE_MS),
-	m_sdrDaemonBuffer(m_rateDivider),
 	m_dataSocket(0),
 	m_dataAddress(QHostAddress::LocalHost),
 	m_remoteAddress(QHostAddress::LocalHost),
diff --git a/sdrbase/resources/webapi/doc/html2/index.html b/sdrbase/resources/webapi/doc/html2/index.html
index 0c50ca5ef..faedb146f 100644
--- a/sdrbase/resources/webapi/doc/html2/index.html
+++ b/sdrbase/resources/webapi/doc/html2/index.html
@@ -16925,7 +16925,7 @@ except ApiException as e:
           </div>
           <div id="generator">
             <div class="content">
-              Generated 2018-02-20T20:02:08.315+01:00
+              Generated 2018-03-03T23:35:13.013+01:00
             </div>
           </div>
       </div>
diff --git a/sdrbase/util/bitfieldindex.h b/sdrbase/util/bitfieldindex.h
index e1c8d93a3..0a4b00ac1 100644
--- a/sdrbase/util/bitfieldindex.h
+++ b/sdrbase/util/bitfieldindex.h
@@ -45,9 +45,19 @@ struct BitfieldIndex
 };
 
 template <unsigned int size>
-BitfieldIndex<size> operator+(const BitfieldIndex<size> &a, const BitfieldIndex<size> &b) { BitfieldIndex<size> x; x.v = x.a + x.b; return x; }
+BitfieldIndex<size> operator+(const BitfieldIndex<size> &a, const BitfieldIndex<size> &b)
+{
+    BitfieldIndex<size> x;
+    x.v = a.v + b.v;
+    return x;
+}
 
 template <unsigned int size>
-BitfieldIndex<size> operator-(const BitfieldIndex<size> &a, const BitfieldIndex<size> &b) { BitfieldIndex<size> x; x.v = x.a - x.b; return x; }
+BitfieldIndex<size> operator-(const BitfieldIndex<size> &a, const BitfieldIndex<size> &b)
+{
+    BitfieldIndex<size> x;
+    x.v = a.v - b.v;
+    return x;
+}
 
 #endif // _UTIL_BITFIELDINDEX_H_
diff --git a/sdrgui/dsp/scopevisng.cpp b/sdrgui/dsp/scopevisng.cpp
index 19195f4d6..f44485055 100644
--- a/sdrgui/dsp/scopevisng.cpp
+++ b/sdrgui/dsp/scopevisng.cpp
@@ -51,8 +51,6 @@ ScopeVisNG::ScopeVisNG(GLScopeNG* glScope) :
     m_timeBase(1),
     m_timeOfsProMill(0),
     m_traceStart(true),
-    m_traceFill(0),
-    m_zTraceIndex(-1),
     m_sampleRate(0),
     m_traceDiscreteMemory(m_nbTraceMemories),
     m_freeRun(true),
diff --git a/sdrgui/dsp/scopevisng.h b/sdrgui/dsp/scopevisng.h
index 0cbbb64b9..1c723a9ad 100644
--- a/sdrgui/dsp/scopevisng.h
+++ b/sdrgui/dsp/scopevisng.h
@@ -1033,8 +1033,6 @@ private:
     uint32_t m_timeBase;                           //!< Trace display time divisor
     uint32_t m_timeOfsProMill;                     //!< Start trace shift in 1/1000 trace size
     bool m_traceStart;                             //!< Trace is at start point
-    int m_traceFill;                               //!< Count of samples accumulated into trace
-    int m_zTraceIndex;                             //!< Index of the trace used for Z input (luminance or false colors)
     SampleVector::const_iterator m_triggerPoint;   //!< Trigger start location in the samples vector
     int m_sampleRate;
     TraceBackDiscreteMemory m_traceDiscreteMemory; //!< Complex trace memory for triggered states TODO: vectorize when more than on input is allowed
diff --git a/swagger/sdrangel/code/html2/index.html b/swagger/sdrangel/code/html2/index.html
index 0c50ca5ef..faedb146f 100644
--- a/swagger/sdrangel/code/html2/index.html
+++ b/swagger/sdrangel/code/html2/index.html
@@ -16925,7 +16925,7 @@ except ApiException as e:
           </div>
           <div id="generator">
             <div class="content">
-              Generated 2018-02-20T20:02:08.315+01:00
+              Generated 2018-03-03T23:35:13.013+01:00
             </div>
           </div>
       </div>
diff --git a/swagger/sdrangel/code/qt5/client/SWGAudioDevice.h b/swagger/sdrangel/code/qt5/client/SWGAudioDevice.h
index 7bcc3d58d..26d1f18f3 100644
--- a/swagger/sdrangel/code/qt5/client/SWGAudioDevice.h
+++ b/swagger/sdrangel/code/qt5/client/SWGAudioDevice.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGAudioDevice* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGAudioDevice* fromJson(QString &jsonString) override;
 
     QString* getName();
     void setName(QString* name);
diff --git a/swagger/sdrangel/code/qt5/client/SWGAudioDevices.h b/swagger/sdrangel/code/qt5/client/SWGAudioDevices.h
index 985c3b2ff..ef6adb324 100644
--- a/swagger/sdrangel/code/qt5/client/SWGAudioDevices.h
+++ b/swagger/sdrangel/code/qt5/client/SWGAudioDevices.h
@@ -37,10 +37,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGAudioDevices* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGAudioDevices* fromJson(QString &jsonString) override;
 
     float getInputVolume();
     void setInputVolume(float input_volume);
diff --git a/swagger/sdrangel/code/qt5/client/SWGAudioDevicesSelect.h b/swagger/sdrangel/code/qt5/client/SWGAudioDevicesSelect.h
index c7698ddab..72badf455 100644
--- a/swagger/sdrangel/code/qt5/client/SWGAudioDevicesSelect.h
+++ b/swagger/sdrangel/code/qt5/client/SWGAudioDevicesSelect.h
@@ -35,10 +35,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGAudioDevicesSelect* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGAudioDevicesSelect* fromJson(QString &jsonString) override;
 
     float getInputVolume();
     void setInputVolume(float input_volume);
diff --git a/swagger/sdrangel/code/qt5/client/SWGCWKeyerSettings.h b/swagger/sdrangel/code/qt5/client/SWGCWKeyerSettings.h
index a73fb536d..4c5550b96 100644
--- a/swagger/sdrangel/code/qt5/client/SWGCWKeyerSettings.h
+++ b/swagger/sdrangel/code/qt5/client/SWGCWKeyerSettings.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGCWKeyerSettings* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGCWKeyerSettings* fromJson(QString &jsonString) override;
 
     qint32 getSampleRate();
     void setSampleRate(qint32 sample_rate);
diff --git a/swagger/sdrangel/code/qt5/client/SWGChannel.h b/swagger/sdrangel/code/qt5/client/SWGChannel.h
index 48ab8a6dd..315b4b958 100644
--- a/swagger/sdrangel/code/qt5/client/SWGChannel.h
+++ b/swagger/sdrangel/code/qt5/client/SWGChannel.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGChannel* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGChannel* fromJson(QString &jsonString) override;
 
     qint32 getIndex();
     void setIndex(qint32 index);
diff --git a/swagger/sdrangel/code/qt5/client/SWGChannelListItem.h b/swagger/sdrangel/code/qt5/client/SWGChannelListItem.h
index d3069e8c6..71da54406 100644
--- a/swagger/sdrangel/code/qt5/client/SWGChannelListItem.h
+++ b/swagger/sdrangel/code/qt5/client/SWGChannelListItem.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGChannelListItem* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGChannelListItem* fromJson(QString &jsonString) override;
 
     QString* getName();
     void setName(QString* name);
diff --git a/swagger/sdrangel/code/qt5/client/SWGChannelSettings.h b/swagger/sdrangel/code/qt5/client/SWGChannelSettings.h
index 6f2132964..d1c9efec9 100644
--- a/swagger/sdrangel/code/qt5/client/SWGChannelSettings.h
+++ b/swagger/sdrangel/code/qt5/client/SWGChannelSettings.h
@@ -38,10 +38,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGChannelSettings* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGChannelSettings* fromJson(QString &jsonString) override;
 
     QString* getChannelType();
     void setChannelType(QString* channel_type);
diff --git a/swagger/sdrangel/code/qt5/client/SWGDVSeralDevices.h b/swagger/sdrangel/code/qt5/client/SWGDVSeralDevices.h
index 295be16ee..06415c4cf 100644
--- a/swagger/sdrangel/code/qt5/client/SWGDVSeralDevices.h
+++ b/swagger/sdrangel/code/qt5/client/SWGDVSeralDevices.h
@@ -37,10 +37,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGDVSeralDevices* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGDVSeralDevices* fromJson(QString &jsonString) override;
 
     qint32 getNbDevices();
     void setNbDevices(qint32 nb_devices);
diff --git a/swagger/sdrangel/code/qt5/client/SWGDVSerialDevice.h b/swagger/sdrangel/code/qt5/client/SWGDVSerialDevice.h
index 8adcf632b..a761de4a4 100644
--- a/swagger/sdrangel/code/qt5/client/SWGDVSerialDevice.h
+++ b/swagger/sdrangel/code/qt5/client/SWGDVSerialDevice.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGDVSerialDevice* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGDVSerialDevice* fromJson(QString &jsonString) override;
 
     QString* getDeviceName();
     void setDeviceName(QString* device_name);
diff --git a/swagger/sdrangel/code/qt5/client/SWGDeviceListItem.h b/swagger/sdrangel/code/qt5/client/SWGDeviceListItem.h
index b6fd960d0..51a5e56d2 100644
--- a/swagger/sdrangel/code/qt5/client/SWGDeviceListItem.h
+++ b/swagger/sdrangel/code/qt5/client/SWGDeviceListItem.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGDeviceListItem* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGDeviceListItem* fromJson(QString &jsonString) override;
 
     QString* getDisplayedName();
     void setDisplayedName(QString* displayed_name);
diff --git a/swagger/sdrangel/code/qt5/client/SWGDeviceSet.h b/swagger/sdrangel/code/qt5/client/SWGDeviceSet.h
index fb6bcb931..f12f08ca9 100644
--- a/swagger/sdrangel/code/qt5/client/SWGDeviceSet.h
+++ b/swagger/sdrangel/code/qt5/client/SWGDeviceSet.h
@@ -38,10 +38,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGDeviceSet* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGDeviceSet* fromJson(QString &jsonString) override;
 
     SWGSamplingDevice* getSamplingDevice();
     void setSamplingDevice(SWGSamplingDevice* sampling_device);
diff --git a/swagger/sdrangel/code/qt5/client/SWGDeviceSetList.h b/swagger/sdrangel/code/qt5/client/SWGDeviceSetList.h
index 6c0980081..6f8f518d0 100644
--- a/swagger/sdrangel/code/qt5/client/SWGDeviceSetList.h
+++ b/swagger/sdrangel/code/qt5/client/SWGDeviceSetList.h
@@ -37,10 +37,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGDeviceSetList* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGDeviceSetList* fromJson(QString &jsonString) override;
 
     qint32 getDevicesetcount();
     void setDevicesetcount(qint32 devicesetcount);
diff --git a/swagger/sdrangel/code/qt5/client/SWGDeviceSettings.h b/swagger/sdrangel/code/qt5/client/SWGDeviceSettings.h
index a690c7ba8..1f926232b 100644
--- a/swagger/sdrangel/code/qt5/client/SWGDeviceSettings.h
+++ b/swagger/sdrangel/code/qt5/client/SWGDeviceSettings.h
@@ -42,10 +42,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGDeviceSettings* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGDeviceSettings* fromJson(QString &jsonString) override;
 
     QString* getDeviceHwType();
     void setDeviceHwType(QString* device_hw_type);
diff --git a/swagger/sdrangel/code/qt5/client/SWGDeviceState.h b/swagger/sdrangel/code/qt5/client/SWGDeviceState.h
index 5741bea1b..9978df7f5 100644
--- a/swagger/sdrangel/code/qt5/client/SWGDeviceState.h
+++ b/swagger/sdrangel/code/qt5/client/SWGDeviceState.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGDeviceState* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGDeviceState* fromJson(QString &jsonString) override;
 
     QString* getState();
     void setState(QString* state);
diff --git a/swagger/sdrangel/code/qt5/client/SWGErrorResponse.h b/swagger/sdrangel/code/qt5/client/SWGErrorResponse.h
index 3b90da05a..22e1db85b 100644
--- a/swagger/sdrangel/code/qt5/client/SWGErrorResponse.h
+++ b/swagger/sdrangel/code/qt5/client/SWGErrorResponse.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGErrorResponse* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGErrorResponse* fromJson(QString &jsonString) override;
 
     QString* getMessage();
     void setMessage(QString* message);
diff --git a/swagger/sdrangel/code/qt5/client/SWGFileSourceSettings.h b/swagger/sdrangel/code/qt5/client/SWGFileSourceSettings.h
index 9f83483a0..248bc61e9 100644
--- a/swagger/sdrangel/code/qt5/client/SWGFileSourceSettings.h
+++ b/swagger/sdrangel/code/qt5/client/SWGFileSourceSettings.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGFileSourceSettings* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGFileSourceSettings* fromJson(QString &jsonString) override;
 
     QString* getFileName();
     void setFileName(QString* file_name);
diff --git a/swagger/sdrangel/code/qt5/client/SWGHackRFInputSettings.h b/swagger/sdrangel/code/qt5/client/SWGHackRFInputSettings.h
index 5a7bed901..c2be99dec 100644
--- a/swagger/sdrangel/code/qt5/client/SWGHackRFInputSettings.h
+++ b/swagger/sdrangel/code/qt5/client/SWGHackRFInputSettings.h
@@ -35,10 +35,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGHackRFInputSettings* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGHackRFInputSettings* fromJson(QString &jsonString) override;
 
     qint64 getCenterFrequency();
     void setCenterFrequency(qint64 center_frequency);
diff --git a/swagger/sdrangel/code/qt5/client/SWGHackRFOutputSettings.h b/swagger/sdrangel/code/qt5/client/SWGHackRFOutputSettings.h
index eba2f71c9..2511f50f7 100644
--- a/swagger/sdrangel/code/qt5/client/SWGHackRFOutputSettings.h
+++ b/swagger/sdrangel/code/qt5/client/SWGHackRFOutputSettings.h
@@ -35,10 +35,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGHackRFOutputSettings* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGHackRFOutputSettings* fromJson(QString &jsonString) override;
 
     qint64 getCenterFrequency();
     void setCenterFrequency(qint64 center_frequency);
diff --git a/swagger/sdrangel/code/qt5/client/SWGHelpers.cpp b/swagger/sdrangel/code/qt5/client/SWGHelpers.cpp
index d7041acca..1c2d92e2f 100644
--- a/swagger/sdrangel/code/qt5/client/SWGHelpers.cpp
+++ b/swagger/sdrangel/code/qt5/client/SWGHelpers.cpp
@@ -447,7 +447,7 @@ toJsonArray(QList<void*>* value, QJsonObject* output, QString innerName, QString
     if(innerType.startsWith("SWG")){
         for(void* obj : *value) {
             SWGObject *SWGobject = reinterpret_cast<SWGObject *>(obj);
-            if(SWGobject != nullptr) 
+            if(SWGobject != nullptr)
             {
                 QJsonObject* o = SWGobject->asJsonObject();
                 outputarray.append(*o);
diff --git a/swagger/sdrangel/code/qt5/client/SWGInstanceChannelsResponse.h b/swagger/sdrangel/code/qt5/client/SWGInstanceChannelsResponse.h
index 6da513791..ca26f9fa8 100644
--- a/swagger/sdrangel/code/qt5/client/SWGInstanceChannelsResponse.h
+++ b/swagger/sdrangel/code/qt5/client/SWGInstanceChannelsResponse.h
@@ -37,10 +37,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGInstanceChannelsResponse* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGInstanceChannelsResponse* fromJson(QString &jsonString) override;
 
     qint32 getChannelcount();
     void setChannelcount(qint32 channelcount);
diff --git a/swagger/sdrangel/code/qt5/client/SWGInstanceDevicesResponse.h b/swagger/sdrangel/code/qt5/client/SWGInstanceDevicesResponse.h
index dcbbdaebc..85f4622cf 100644
--- a/swagger/sdrangel/code/qt5/client/SWGInstanceDevicesResponse.h
+++ b/swagger/sdrangel/code/qt5/client/SWGInstanceDevicesResponse.h
@@ -37,10 +37,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGInstanceDevicesResponse* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGInstanceDevicesResponse* fromJson(QString &jsonString) override;
 
     qint32 getDevicecount();
     void setDevicecount(qint32 devicecount);
diff --git a/swagger/sdrangel/code/qt5/client/SWGInstanceSummaryResponse.h b/swagger/sdrangel/code/qt5/client/SWGInstanceSummaryResponse.h
index f588775b0..9421a56ad 100644
--- a/swagger/sdrangel/code/qt5/client/SWGInstanceSummaryResponse.h
+++ b/swagger/sdrangel/code/qt5/client/SWGInstanceSummaryResponse.h
@@ -38,10 +38,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGInstanceSummaryResponse* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGInstanceSummaryResponse* fromJson(QString &jsonString) override;
 
     QString* getVersion();
     void setVersion(QString* version);
diff --git a/swagger/sdrangel/code/qt5/client/SWGLimeSdrInputSettings.h b/swagger/sdrangel/code/qt5/client/SWGLimeSdrInputSettings.h
index f78262bd1..ef2e7e036 100644
--- a/swagger/sdrangel/code/qt5/client/SWGLimeSdrInputSettings.h
+++ b/swagger/sdrangel/code/qt5/client/SWGLimeSdrInputSettings.h
@@ -35,10 +35,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGLimeSdrInputSettings* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGLimeSdrInputSettings* fromJson(QString &jsonString) override;
 
     qint64 getCenterFrequency();
     void setCenterFrequency(qint64 center_frequency);
diff --git a/swagger/sdrangel/code/qt5/client/SWGLimeSdrOutputSettings.h b/swagger/sdrangel/code/qt5/client/SWGLimeSdrOutputSettings.h
index e9c552dfd..713090459 100644
--- a/swagger/sdrangel/code/qt5/client/SWGLimeSdrOutputSettings.h
+++ b/swagger/sdrangel/code/qt5/client/SWGLimeSdrOutputSettings.h
@@ -35,10 +35,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGLimeSdrOutputSettings* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGLimeSdrOutputSettings* fromJson(QString &jsonString) override;
 
     qint64 getCenterFrequency();
     void setCenterFrequency(qint64 center_frequency);
diff --git a/swagger/sdrangel/code/qt5/client/SWGLocationInformation.h b/swagger/sdrangel/code/qt5/client/SWGLocationInformation.h
index d9456c236..45f21c6c3 100644
--- a/swagger/sdrangel/code/qt5/client/SWGLocationInformation.h
+++ b/swagger/sdrangel/code/qt5/client/SWGLocationInformation.h
@@ -35,10 +35,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGLocationInformation* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGLocationInformation* fromJson(QString &jsonString) override;
 
     float getLatitude();
     void setLatitude(float latitude);
diff --git a/swagger/sdrangel/code/qt5/client/SWGLoggingInfo.h b/swagger/sdrangel/code/qt5/client/SWGLoggingInfo.h
index 3219d498a..7a9ca9cbc 100644
--- a/swagger/sdrangel/code/qt5/client/SWGLoggingInfo.h
+++ b/swagger/sdrangel/code/qt5/client/SWGLoggingInfo.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGLoggingInfo* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGLoggingInfo* fromJson(QString &jsonString) override;
 
     QString* getConsoleLevel();
     void setConsoleLevel(QString* console_level);
diff --git a/swagger/sdrangel/code/qt5/client/SWGNFMDemodSettings.h b/swagger/sdrangel/code/qt5/client/SWGNFMDemodSettings.h
index 879cd04db..ba483569e 100644
--- a/swagger/sdrangel/code/qt5/client/SWGNFMDemodSettings.h
+++ b/swagger/sdrangel/code/qt5/client/SWGNFMDemodSettings.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGNFMDemodSettings* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGNFMDemodSettings* fromJson(QString &jsonString) override;
 
     qint64 getInputFrequencyOffset();
     void setInputFrequencyOffset(qint64 input_frequency_offset);
diff --git a/swagger/sdrangel/code/qt5/client/SWGNFMModSettings.h b/swagger/sdrangel/code/qt5/client/SWGNFMModSettings.h
index f51fb8057..26adc9fc7 100644
--- a/swagger/sdrangel/code/qt5/client/SWGNFMModSettings.h
+++ b/swagger/sdrangel/code/qt5/client/SWGNFMModSettings.h
@@ -37,10 +37,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGNFMModSettings* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGNFMModSettings* fromJson(QString &jsonString) override;
 
     qint64 getInputFrequencyOffset();
     void setInputFrequencyOffset(qint64 input_frequency_offset);
diff --git a/swagger/sdrangel/code/qt5/client/SWGPresetExport.h b/swagger/sdrangel/code/qt5/client/SWGPresetExport.h
index cc836b90a..60e393c87 100644
--- a/swagger/sdrangel/code/qt5/client/SWGPresetExport.h
+++ b/swagger/sdrangel/code/qt5/client/SWGPresetExport.h
@@ -37,10 +37,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGPresetExport* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGPresetExport* fromJson(QString &jsonString) override;
 
     QString* getFilePath();
     void setFilePath(QString* file_path);
diff --git a/swagger/sdrangel/code/qt5/client/SWGPresetGroup.h b/swagger/sdrangel/code/qt5/client/SWGPresetGroup.h
index 609592077..22e678ef0 100644
--- a/swagger/sdrangel/code/qt5/client/SWGPresetGroup.h
+++ b/swagger/sdrangel/code/qt5/client/SWGPresetGroup.h
@@ -38,10 +38,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGPresetGroup* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGPresetGroup* fromJson(QString &jsonString) override;
 
     QString* getGroupName();
     void setGroupName(QString* group_name);
diff --git a/swagger/sdrangel/code/qt5/client/SWGPresetIdentifier.h b/swagger/sdrangel/code/qt5/client/SWGPresetIdentifier.h
index 32043025c..891190190 100644
--- a/swagger/sdrangel/code/qt5/client/SWGPresetIdentifier.h
+++ b/swagger/sdrangel/code/qt5/client/SWGPresetIdentifier.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGPresetIdentifier* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGPresetIdentifier* fromJson(QString &jsonString) override;
 
     QString* getGroupName();
     void setGroupName(QString* group_name);
diff --git a/swagger/sdrangel/code/qt5/client/SWGPresetImport.h b/swagger/sdrangel/code/qt5/client/SWGPresetImport.h
index 692532764..d228b8ae9 100644
--- a/swagger/sdrangel/code/qt5/client/SWGPresetImport.h
+++ b/swagger/sdrangel/code/qt5/client/SWGPresetImport.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGPresetImport* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGPresetImport* fromJson(QString &jsonString) override;
 
     QString* getGroupName();
     void setGroupName(QString* group_name);
diff --git a/swagger/sdrangel/code/qt5/client/SWGPresetItem.h b/swagger/sdrangel/code/qt5/client/SWGPresetItem.h
index 860fb29d4..4242fce2b 100644
--- a/swagger/sdrangel/code/qt5/client/SWGPresetItem.h
+++ b/swagger/sdrangel/code/qt5/client/SWGPresetItem.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGPresetItem* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGPresetItem* fromJson(QString &jsonString) override;
 
     qint64 getCenterFrequency();
     void setCenterFrequency(qint64 center_frequency);
diff --git a/swagger/sdrangel/code/qt5/client/SWGPresetTransfer.h b/swagger/sdrangel/code/qt5/client/SWGPresetTransfer.h
index e66bb6207..8a81e0f79 100644
--- a/swagger/sdrangel/code/qt5/client/SWGPresetTransfer.h
+++ b/swagger/sdrangel/code/qt5/client/SWGPresetTransfer.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGPresetTransfer* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGPresetTransfer* fromJson(QString &jsonString) override;
 
     qint32 getDeviceSetIndex();
     void setDeviceSetIndex(qint32 device_set_index);
diff --git a/swagger/sdrangel/code/qt5/client/SWGPresets.h b/swagger/sdrangel/code/qt5/client/SWGPresets.h
index c8c0268da..4b138082f 100644
--- a/swagger/sdrangel/code/qt5/client/SWGPresets.h
+++ b/swagger/sdrangel/code/qt5/client/SWGPresets.h
@@ -37,10 +37,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGPresets* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGPresets* fromJson(QString &jsonString) override;
 
     qint32 getNbGroups();
     void setNbGroups(qint32 nb_groups);
diff --git a/swagger/sdrangel/code/qt5/client/SWGRtlSdrSettings.h b/swagger/sdrangel/code/qt5/client/SWGRtlSdrSettings.h
index 8f41d2a00..9cd27d8a3 100644
--- a/swagger/sdrangel/code/qt5/client/SWGRtlSdrSettings.h
+++ b/swagger/sdrangel/code/qt5/client/SWGRtlSdrSettings.h
@@ -35,10 +35,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGRtlSdrSettings* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGRtlSdrSettings* fromJson(QString &jsonString) override;
 
     qint32 getDevSampleRate();
     void setDevSampleRate(qint32 dev_sample_rate);
diff --git a/swagger/sdrangel/code/qt5/client/SWGSamplingDevice.h b/swagger/sdrangel/code/qt5/client/SWGSamplingDevice.h
index e76d032bc..04eaa2400 100644
--- a/swagger/sdrangel/code/qt5/client/SWGSamplingDevice.h
+++ b/swagger/sdrangel/code/qt5/client/SWGSamplingDevice.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGSamplingDevice* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGSamplingDevice* fromJson(QString &jsonString) override;
 
     qint32 getIndex();
     void setIndex(qint32 index);
diff --git a/swagger/sdrangel/code/qt5/client/SWGSuccessResponse.h b/swagger/sdrangel/code/qt5/client/SWGSuccessResponse.h
index 760e09765..7ea7ec7ab 100644
--- a/swagger/sdrangel/code/qt5/client/SWGSuccessResponse.h
+++ b/swagger/sdrangel/code/qt5/client/SWGSuccessResponse.h
@@ -36,10 +36,10 @@ public:
     void init();
     void cleanup();
 
-    QString asJson ();
-    QJsonObject* asJsonObject();
-    void fromJsonObject(QJsonObject &json);
-    SWGSuccessResponse* fromJson(QString &jsonString);
+    virtual QString asJson () override;
+    virtual QJsonObject* asJsonObject() override;
+    virtual void fromJsonObject(QJsonObject &json) override;
+    virtual SWGSuccessResponse* fromJson(QString &jsonString) override;
 
     QString* getMessage();
     void setMessage(QString* message);