diff --git a/include/MidiPort.h b/include/MidiPort.h index c8a3c6e44..07c61d788 100644 --- a/include/MidiPort.h +++ b/include/MidiPort.h @@ -124,6 +124,8 @@ public: return m_writablePorts; } + void invalidateCilent(); + MidiPortMenu* m_readablePortsMenu; MidiPortMenu* m_writablePortsMenu; diff --git a/src/core/midi/MidiClient.cpp b/src/core/midi/MidiClient.cpp index 8ba70bcb7..b88c64db1 100644 --- a/src/core/midi/MidiClient.cpp +++ b/src/core/midi/MidiClient.cpp @@ -38,6 +38,10 @@ MidiClient::MidiClient() MidiClient::~MidiClient() { //TODO: noteOffAll(); / clear all ports + for (MidiPort* port : m_midiPorts) + { + port->invalidateCilent(); + } } diff --git a/src/core/midi/MidiPort.cpp b/src/core/midi/MidiPort.cpp index 43019876e..9e3cdb13d 100644 --- a/src/core/midi/MidiPort.cpp +++ b/src/core/midi/MidiPort.cpp @@ -27,9 +27,12 @@ #include "MidiPort.h" #include "MidiClient.h" +#include "MidiDummy.h" #include "Note.h" #include "Song.h" +static MidiDummy s_dummyClient; + MidiPort::MidiPort( const QString& name, @@ -410,4 +413,7 @@ void MidiPort::updateOutputProgram() - +void MidiPort::invalidateCilent() +{ + m_midiClient = &s_dummyClient; +}