From e589c44633a389aaaa190c82bff06bd7698a26f9 Mon Sep 17 00:00:00 2001 From: f4exb Date: Wed, 14 Feb 2018 22:33:24 +0100 Subject: [PATCH] File source: corrected memory leak --- .../filesource/filesourceinput.cpp | 19 ++++++++++++++++++- .../samplesource/filesource/filesourceinput.h | 1 + 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/plugins/samplesource/filesource/filesourceinput.cpp b/plugins/samplesource/filesource/filesourceinput.cpp index 3b8f39f11..b5de252ed 100644 --- a/plugins/samplesource/filesource/filesourceinput.cpp +++ b/plugins/samplesource/filesource/filesourceinput.cpp @@ -252,7 +252,14 @@ std::time_t FileSourceInput::getStartingTimeStamp() const bool FileSourceInput::handleMessage(const Message& message) { - if (MsgConfigureFileSourceName::match(message)) + if (MsgConfigureFileSource::match(message)) + { + MsgConfigureFileSource& conf = (MsgConfigureFileSource&) message; + FileSourceSettings settings = conf.getSettings(); + applySettings(settings); + return true; + } + else if (MsgConfigureFileSourceName::match(message)) { MsgConfigureFileSourceName& conf = (MsgConfigureFileSourceName&) message; m_fileName = conf.getFileName(); @@ -331,6 +338,16 @@ bool FileSourceInput::handleMessage(const Message& message) } } +bool FileSourceInput::applySettings(const FileSourceSettings& settings, bool force) +{ + if ((m_settings.m_centerFrequency != settings.m_centerFrequency) || force) { + m_centerFrequency = settings.m_centerFrequency; + } + + m_settings = settings; + return true; +} + int FileSourceInput::webapiSettingsGet( SWGSDRangel::SWGDeviceSettings& response, QString& errorMessage __attribute__((unused))) diff --git a/plugins/samplesource/filesource/filesourceinput.h b/plugins/samplesource/filesource/filesourceinput.h index 92df61eab..075a40726 100644 --- a/plugins/samplesource/filesource/filesourceinput.h +++ b/plugins/samplesource/filesource/filesourceinput.h @@ -278,6 +278,7 @@ public: void openFileStream(); void seekFileStream(int seekPercentage); + bool applySettings(const FileSourceSettings& settings, bool force = false); }; #endif // INCLUDE_FILESOURCEINPUT_H