1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-22 01:34:21 +00:00

BLOCKS: Make MIDI port listener thread safe

This commit is contained in:
dimitri 2019-03-18 16:01:46 +00:00 committed by ed
parent eedca6109c
commit 92d930a17e

View file

@ -422,12 +422,41 @@ public:
lastMessageReceiveTime = Time::getCurrentTime();
}
MIDIDeviceConnection* getDeviceConnection()
{
return dynamic_cast<MIDIDeviceConnection*> (detector->getDeviceConnectionFor (*this));
}
void addDataInputPortListener (DataInputPortListener* listener) override
{
Block::addDataInputPortListener (listener);
if (auto deviceConnection = getDeviceConnection())
{
{
ScopedLock scopedLock (deviceConnection->criticalSecton);
Block::addDataInputPortListener (listener);
}
if (auto midiInput = getMidiInput())
midiInput->start();
deviceConnection->midiInput->start();
}
else
{
Block::addDataInputPortListener (listener);
}
}
void removeDataInputPortListener (DataInputPortListener* listener) override
{
if (auto deviceConnection = getDeviceConnection())
{
{
ScopedLock scopedLock (deviceConnection->criticalSecton);
Block::removeDataInputPortListener (listener);
}
}
else
{
Block::removeDataInputPortListener (listener);
}
}
void sendMessage (const void* message, size_t messageSize) override