1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-08-14 23:43:43 -04:00

Deep redesign: fixed message dequeing so that non processed messages stay in queue

This commit is contained in:
f4exb
2015-08-30 02:19:59 +02:00
parent 6a050b2d35
commit 1fba7ba314
5 changed files with 52 additions and 16 deletions
+18 -8
View File
@@ -332,12 +332,13 @@ void MainWindow::applySettings()
void MainWindow::handleDSPMessages()
{
Message* message;
MessageQueue* messageQueue = m_dspEngine->getOutputMessageQueue();
int queueSize = messageQueue->size();
while ((message = m_dspEngine->getOutputMessageQueue()->pop()) != 0)
for (int i = 0; i < queueSize; i++)
{
qDebug("Message: %s", message->getIdentifier());
std::cerr << "MainWindow::handleDSPMessages: " << message->getIdentifier() << std::endl;
message = messageQueue->pop();
qDebug() << "MainWindow::handleDSPMessages: " << message->getIdentifier();
if (DSPSignalNotification::match(*message))
{
@@ -352,22 +353,31 @@ void MainWindow::handleDSPMessages()
delete message;
}
else
{
messageQueue->push(message);
}
}
}
void MainWindow::handleMessages()
{
Message* message;
int queueSize = m_inputMessageQueue.size();
while ((message = m_inputMessageQueue.pop()) != 0)
for (int i = 0; i < queueSize; i++)
{
qDebug("Message: %s", message->getIdentifier());
std::cerr << "MainWindow::handleMessages: " << message->getIdentifier() << std::endl;
message = m_inputMessageQueue.pop();
qDebug() << "MainWindow::handleMessages: " << message->getIdentifier();
if (!m_pluginManager->handleMessage(*message))
if (m_pluginManager->handleMessage(*message))
{
delete message;
}
else
{
m_inputMessageQueue.push(message);
}
}
}