diff --git a/app/main.cpp b/app/main.cpp index 03cf32039..99f16456b 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -27,7 +27,7 @@ #include "mainwindow.h" #include "dsp/dsptypes.h" #ifdef _MSC_VER -#define GIT_COMMIT_HASH_STR "v4.5.5" +#define GIT_COMMIT_HASH_STR "v4.5.6" #else #include "sdrangel_version.h" #endif diff --git a/plugins/channelrx/remotesink/remotesink.cpp b/plugins/channelrx/remotesink/remotesink.cpp index 0ddecb407..4d06230bb 100644 --- a/plugins/channelrx/remotesink/remotesink.cpp +++ b/plugins/channelrx/remotesink/remotesink.cpp @@ -402,6 +402,17 @@ void RemoteSink::applySettings(const RemoteSinkSettings& settings, bool force) m_settings = settings; } +void RemoteSink::validateFilterChainHash(RemoteSinkSettings& settings) +{ + unsigned int s = 1; + + for (unsigned int i = 0; i < settings.m_log2Decim; i++) { + s *= 3; + } + + settings.m_filterChainHash = settings.m_filterChainHash >= s ? s-1 : settings.m_filterChainHash; +} + int RemoteSink::webapiSettingsGet( SWGSDRangel::SWGChannelSettings& response, QString& errorMessage) @@ -465,6 +476,16 @@ int RemoteSink::webapiSettingsPutPatch( if (channelSettingsKeys.contains("title")) { settings.m_title = *response.getRemoteSinkSettings()->getTitle(); } + if (channelSettingsKeys.contains("log2Decim")) { + settings.m_log2Decim = response.getRemoteSinkSettings()->getLog2Decim(); + } + + if (channelSettingsKeys.contains("filterChainHash")) + { + settings.m_filterChainHash = response.getRemoteSinkSettings()->getFilterChainHash(); + validateFilterChainHash(settings); + } + if (channelSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getRemoteSinkSettings()->getUseReverseApi() != 0; } @@ -484,6 +505,12 @@ int RemoteSink::webapiSettingsPutPatch( MsgConfigureRemoteSink *msg = MsgConfigureRemoteSink::create(settings, force); m_inputMessageQueue.push(msg); + if ((settings.m_log2Decim != m_settings.m_log2Decim) || (settings.m_filterChainHash != m_settings.m_filterChainHash) || force) + { + MsgConfigureChannelizer *msg = MsgConfigureChannelizer::create(settings.m_log2Decim, settings.m_filterChainHash); + m_inputMessageQueue.push(msg); + } + qDebug("RemoteSink::webapiSettingsPutPatch: forward to GUI: %p", m_guiMessageQueue); if (m_guiMessageQueue) // forward to GUI if any { @@ -516,6 +543,8 @@ void RemoteSink::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& re response.getRemoteSinkSettings()->setTitle(new QString(settings.m_title)); } + response.getRemoteSinkSettings()->setLog2Decim(settings.m_log2Decim); + response.getRemoteSinkSettings()->setFilterChainHash(settings.m_filterChainHash); response.getRemoteSinkSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getRemoteSinkSettings()->getReverseApiAddress()) { @@ -560,6 +589,12 @@ void RemoteSink::webapiReverseSendSettings(QList& channelSettingsKeys, if (channelSettingsKeys.contains("title") || force) { swgRemoteSinkSettings->setTitle(new QString(settings.m_title)); } + if (channelSettingsKeys.contains("log2Decim") || force) { + swgRemoteSinkSettings->setLog2Decim(settings.m_log2Decim); + } + if (channelSettingsKeys.contains("filterChainHash") || force) { + swgRemoteSinkSettings->setFilterChainHash(settings.m_filterChainHash); + } QString channelSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/channel/%4/settings") .arg(settings.m_reverseAPIAddress) diff --git a/plugins/channelrx/remotesink/remotesink.h b/plugins/channelrx/remotesink/remotesink.h index 58607240b..446784d73 100644 --- a/plugins/channelrx/remotesink/remotesink.h +++ b/plugins/channelrx/remotesink/remotesink.h @@ -181,6 +181,7 @@ private: QNetworkRequest m_networkRequest; void applySettings(const RemoteSinkSettings& settings, bool force = false); + void validateFilterChainHash(RemoteSinkSettings& settings); void webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& response, const RemoteSinkSettings& settings); void webapiReverseSendSettings(QList& channelSettingsKeys, const RemoteSinkSettings& settings, bool force); diff --git a/sdrbase/resources/webapi/doc/html2/index.html b/sdrbase/resources/webapi/doc/html2/index.html index 6ee87bfa3..280475cac 100644 --- a/sdrbase/resources/webapi/doc/html2/index.html +++ b/sdrbase/resources/webapi/doc/html2/index.html @@ -4072,6 +4072,12 @@ margin-bottom: 20px; "title" : { "type" : "string" }, + "log2Decim" : { + "type" : "integer" + }, + "filterChainHash" : { + "type" : "integer" + }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -5759,7 +5765,7 @@ margin-bottom: 20px;