24 |
#include "MidiInputPort.h" |
#include "MidiInputPort.h" |
25 |
|
|
26 |
#include "../../Sampler.h" |
#include "../../Sampler.h" |
27 |
|
#include "../../engines/EngineFactory.h" |
28 |
|
|
29 |
namespace LinuxSampler { |
namespace LinuxSampler { |
30 |
|
|
149 |
} |
} |
150 |
|
|
151 |
void MidiInputPort::DispatchSysex(void* pData, uint Size) { |
void MidiInputPort::DispatchSysex(void* pData, uint Size) { |
152 |
// dispatch event for engines listening to the same MIDI channel |
// dispatch event to all engine instances |
153 |
{ |
std::set<Engine*>::iterator engineiter = EngineFactory::EngineInstances().begin(); |
154 |
for (uint MidiChannel = 0; MidiChannel <= 16; MidiChannel++) { |
std::set<Engine*>::iterator end = EngineFactory::EngineInstances().end(); |
155 |
std::set<EngineChannel*>::iterator engineiter = MidiChannelMap[MidiChannel].begin(); |
for (; engineiter != end; engineiter++) (*engineiter)->SendSysex(pData, Size); |
|
std::set<EngineChannel*>::iterator end = MidiChannelMap[MidiChannel].end(); |
|
|
for (; engineiter != end; engineiter++) { |
|
|
Engine* pEngine = (*engineiter)->GetEngine(); |
|
|
if (pEngine) pEngine->SendSysex(pData, Size); |
|
|
} |
|
|
} |
|
|
} |
|
|
// dispatch event for engines listening to ALL MIDI channels |
|
|
{ |
|
|
for (uint MidiChannel = 0; MidiChannel <= 16; MidiChannel++) { |
|
|
std::set<EngineChannel*>::iterator engineiter = MidiChannelMap[midi_chan_all].begin(); |
|
|
std::set<EngineChannel*>::iterator end = MidiChannelMap[midi_chan_all].end(); |
|
|
for (; engineiter != end; engineiter++) { |
|
|
Engine* pEngine = (*engineiter)->GetEngine(); |
|
|
if (pEngine) pEngine->SendSysex(pData, Size); |
|
|
} |
|
|
} |
|
|
} |
|
156 |
} |
} |
157 |
|
|
158 |
void MidiInputPort::DispatchProgramChange(uint8_t Program, uint MidiChannel) { |
void MidiInputPort::DispatchProgramChange(uint8_t Program, uint MidiChannel) { |