package org.herac.tuxguitar.player.impl.midiport.winmm; import org.herac.tuxguitar.player.base.MidiControllers; import org.herac.tuxguitar.player.base.MidiReceiver; public class MidiReceiverImpl implements MidiReceiver{ private boolean connected; private MidiOutputPortImpl midiPort; private MidiSystem midiSystem; public MidiReceiverImpl(MidiOutputPortImpl midiPort, MidiSystem midiSystem){ this.midiPort = midiPort; this.midiSystem = midiSystem; this.connected = false; } public boolean isConnected(){ return this.connected; } public void connect(){ if(!isConnected()){ this.midiSystem.openPort(this.midiPort); this.connected = true; } } public void disconnect() { if(isConnected()){ this.midiSystem.closePort(); this.connected = false; } } public void sendAllNotesOff() { for(int i = 0; i < 16; i ++){ sendControlChange(i,MidiControllers.ALL_NOTES_OFF,0); } } public void sendControlChange(int channel, int controller, int value) { if(isConnected()){ this.midiSystem.controlChange(channel, controller, value); } } public void sendNoteOff(int channel, int key, int velocity) { if(isConnected()){ this.midiSystem.noteOff(channel, key, velocity); } } public void sendNoteOn(int channel, int key, int velocity) { if(isConnected()){ this.midiSystem.noteOn(channel, key, velocity); } } public void sendPitchBend(int channel, int value) { if(isConnected()){ this.midiSystem.pitchBend(channel, value); } } public void sendProgramChange(int channel, int value) { if(isConnected()){ this.midiSystem.programChange(channel, value); } } public void sendSystemReset() { //not implemented } }