--- linuxsampler/trunk/src/drivers/midi/MidiInputPort.cpp 2009/06/28 16:43:38 1924 +++ linuxsampler/trunk/src/drivers/midi/MidiInputPort.cpp 2009/11/01 18:47:59 2025 @@ -247,6 +247,13 @@ for (; engineiter != end; engineiter++) (*engineiter)->SendControlChange(Controller, Value); } MidiChannelMapReader.Unlock(); + + // dispatch event to all low priority MIDI listeners + const std::vector& listeners = + virtualMidiDevicesReader.Lock(); + for (int i = 0; i < listeners.size(); ++i) + listeners[i]->SendCCToDevice(Controller, Value); + virtualMidiDevicesReader.Unlock(); } void MidiInputPort::DispatchControlChange(uint8_t Controller, uint8_t Value, uint MidiChannel, int32_t FragmentPos) { @@ -265,6 +272,13 @@ for (; engineiter != end; engineiter++) (*engineiter)->SendControlChange(Controller, Value, FragmentPos); } MidiChannelMapReader.Unlock(); + + // dispatch event to all low priority MIDI listeners + const std::vector& listeners = + virtualMidiDevicesReader.Lock(); + for (int i = 0; i < listeners.size(); ++i) + listeners[i]->SendCCToDevice(Controller, Value); + virtualMidiDevicesReader.Unlock(); } void MidiInputPort::DispatchSysex(void* pData, uint Size) {