--- linuxsampler/trunk/src/engines/gig/EngineChannel.cpp 2005/06/22 07:23:48 674 +++ linuxsampler/trunk/src/engines/gig/EngineChannel.cpp 2005/06/22 22:09:28 675 @@ -49,6 +49,8 @@ InstrumentStat = -1; AudioDeviceChannelLeft = -1; AudioDeviceChannelRight = -1; + pMidiInputPort = NULL; + midiChannel = midi_chan_all; ResetControllers(); } @@ -340,6 +342,28 @@ } } + void EngineChannel::Connect(MidiInputPort* pMidiPort, midi_chan_t MidiChannel) { + if (!pMidiPort || pMidiPort == this->pMidiInputPort) return; + DisconnectMidiInputPort(); + this->pMidiInputPort = pMidiPort; + this->midiChannel = MidiChannel; + pMidiPort->Connect(this, MidiChannel); + } + + void EngineChannel::DisconnectMidiInputPort() { + MidiInputPort* pOldPort = this->pMidiInputPort; + this->pMidiInputPort = NULL; + if (pOldPort) pOldPort->Disconnect(this); + } + + MidiInputPort* EngineChannel::GetMidiInputPort() { + return pMidiInputPort; + } + + midi_chan_t EngineChannel::MidiChannel() { + return midiChannel; + } + /** * Will be called by the MIDIIn Thread to let the audio thread trigger a new * voice for the given key.