1 /* 2 * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package com.sun.media.sound; 27 28 import javax.sound.midi.MidiChannel; 29 30 /** 31 * A MidiChannel proxy object used for external access to synthesizer internal 32 * channel objects. 33 * 34 * @author Karl Helgason 35 */ 36 public final class SoftChannelProxy implements MidiChannel { 37 38 private MidiChannel channel = null; 39 getChannel()40 public MidiChannel getChannel() { 41 return channel; 42 } 43 setChannel(MidiChannel channel)44 public void setChannel(MidiChannel channel) { 45 this.channel = channel; 46 } 47 48 @Override allNotesOff()49 public void allNotesOff() { 50 if (channel == null) 51 return; 52 channel.allNotesOff(); 53 } 54 55 @Override allSoundOff()56 public void allSoundOff() { 57 if (channel == null) 58 return; 59 channel.allSoundOff(); 60 } 61 62 @Override controlChange(int controller, int value)63 public void controlChange(int controller, int value) { 64 if (channel == null) 65 return; 66 channel.controlChange(controller, value); 67 } 68 69 @Override getChannelPressure()70 public int getChannelPressure() { 71 if (channel == null) 72 return 0; 73 return channel.getChannelPressure(); 74 } 75 76 @Override getController(int controller)77 public int getController(int controller) { 78 if (channel == null) 79 return 0; 80 return channel.getController(controller); 81 } 82 83 @Override getMono()84 public boolean getMono() { 85 if (channel == null) 86 return false; 87 return channel.getMono(); 88 } 89 90 @Override getMute()91 public boolean getMute() { 92 if (channel == null) 93 return false; 94 return channel.getMute(); 95 } 96 97 @Override getOmni()98 public boolean getOmni() { 99 if (channel == null) 100 return false; 101 return channel.getOmni(); 102 } 103 104 @Override getPitchBend()105 public int getPitchBend() { 106 if (channel == null) 107 return 8192; 108 return channel.getPitchBend(); 109 } 110 111 @Override getPolyPressure(int noteNumber)112 public int getPolyPressure(int noteNumber) { 113 if (channel == null) 114 return 0; 115 return channel.getPolyPressure(noteNumber); 116 } 117 118 @Override getProgram()119 public int getProgram() { 120 if (channel == null) 121 return 0; 122 return channel.getProgram(); 123 } 124 125 @Override getSolo()126 public boolean getSolo() { 127 if (channel == null) 128 return false; 129 return channel.getSolo(); 130 } 131 132 @Override localControl(boolean on)133 public boolean localControl(boolean on) { 134 if (channel == null) 135 return false; 136 return channel.localControl(on); 137 } 138 139 @Override noteOff(int noteNumber)140 public void noteOff(int noteNumber) { 141 if (channel == null) 142 return; 143 channel.noteOff(noteNumber); 144 } 145 146 @Override noteOff(int noteNumber, int velocity)147 public void noteOff(int noteNumber, int velocity) { 148 if (channel == null) 149 return; 150 channel.noteOff(noteNumber, velocity); 151 } 152 153 @Override noteOn(int noteNumber, int velocity)154 public void noteOn(int noteNumber, int velocity) { 155 if (channel == null) 156 return; 157 channel.noteOn(noteNumber, velocity); 158 } 159 160 @Override programChange(int program)161 public void programChange(int program) { 162 if (channel == null) 163 return; 164 channel.programChange(program); 165 } 166 167 @Override programChange(int bank, int program)168 public void programChange(int bank, int program) { 169 if (channel == null) 170 return; 171 channel.programChange(bank, program); 172 } 173 174 @Override resetAllControllers()175 public void resetAllControllers() { 176 if (channel == null) 177 return; 178 channel.resetAllControllers(); 179 } 180 181 @Override setChannelPressure(int pressure)182 public void setChannelPressure(int pressure) { 183 if (channel == null) 184 return; 185 channel.setChannelPressure(pressure); 186 } 187 188 @Override setMono(boolean on)189 public void setMono(boolean on) { 190 if (channel == null) 191 return; 192 channel.setMono(on); 193 } 194 195 @Override setMute(boolean mute)196 public void setMute(boolean mute) { 197 if (channel == null) 198 return; 199 channel.setMute(mute); 200 } 201 202 @Override setOmni(boolean on)203 public void setOmni(boolean on) { 204 if (channel == null) 205 return; 206 channel.setOmni(on); 207 } 208 209 @Override setPitchBend(int bend)210 public void setPitchBend(int bend) { 211 if (channel == null) 212 return; 213 channel.setPitchBend(bend); 214 } 215 216 @Override setPolyPressure(int noteNumber, int pressure)217 public void setPolyPressure(int noteNumber, int pressure) { 218 if (channel == null) 219 return; 220 channel.setPolyPressure(noteNumber, pressure); 221 } 222 223 @Override setSolo(boolean soloState)224 public void setSolo(boolean soloState) { 225 if (channel == null) 226 return; 227 channel.setSolo(soloState); 228 } 229 } 230