1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-03 06:24:48 -04:00

Message pipes rework: settings pipes change in other plugins

This commit is contained in:
f4exb
2022-03-02 23:07:15 +01:00
parent 283ab64c59
commit cbe643c0b1
66 changed files with 731 additions and 557 deletions
+20 -16
View File
@@ -243,10 +243,11 @@ void RemoteSource::applySettings(const RemoteSourceSettings& settings, bool forc
webapiReverseSendSettings(reverseAPIKeys, settings, fullUpdate || force);
}
QList<MessageQueue*> *messageQueues = MainCore::instance()->getMessagePipes().getMessageQueues(this, "settings");
QList<ObjectPipe*> pipes;
MainCore::instance()->getMessagePipes2().getMessagePipes(this, "settings", pipes);
if (messageQueues) {
sendChannelSettings(messageQueues, reverseAPIKeys, settings, force);
if (pipes.size() > 0) {
sendChannelSettings(pipes, reverseAPIKeys, settings, force);
}
m_settings = settings;
@@ -480,24 +481,27 @@ void RemoteSource::webapiReverseSendSettings(QList<QString>& channelSettingsKeys
}
void RemoteSource::sendChannelSettings(
QList<MessageQueue*> *messageQueues,
const QList<ObjectPipe*>& pipes,
QList<QString>& channelSettingsKeys,
const RemoteSourceSettings& settings,
bool force)
{
QList<MessageQueue*>::iterator it = messageQueues->begin();
for (; it != messageQueues->end(); ++it)
for (const auto& pipe : pipes)
{
SWGSDRangel::SWGChannelSettings *swgChannelSettings = new SWGSDRangel::SWGChannelSettings();
webapiFormatChannelSettings(channelSettingsKeys, swgChannelSettings, settings, force);
MainCore::MsgChannelSettings *msg = MainCore::MsgChannelSettings::create(
this,
channelSettingsKeys,
swgChannelSettings,
force
);
(*it)->push(msg);
MessageQueue *messageQueue = qobject_cast<MessageQueue*>(pipe->m_element);
if (messageQueue)
{
SWGSDRangel::SWGChannelSettings *swgChannelSettings = new SWGSDRangel::SWGChannelSettings();
webapiFormatChannelSettings(channelSettingsKeys, swgChannelSettings, settings, force);
MainCore::MsgChannelSettings *msg = MainCore::MsgChannelSettings::create(
this,
channelSettingsKeys,
swgChannelSettings,
force
);
messageQueue->push(msg);
}
}
}