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 40 public MidiChannel getChannel() { 41 return channel; 42 } 43 44 public void setChannel(MidiChannel channel) { 45 this.channel = channel; 46 } 47 48 @Override 49 public void allNotesOff() { 50 if (channel == null) 51 return; 52 channel.allNotesOff(); 53 } 54 55 @Override 56 public void allSoundOff() { 57 if (channel == null) 58 return; 59 channel.allSoundOff(); 60 } 61 62 @Override 63 public void controlChange(int controller, int value) { 64 if (channel == null) 65 return; 66 channel.controlChange(controller, value); 67 } 68 69 @Override 70 public int getChannelPressure() { 71 if (channel == null) 72 return 0; 73 return channel.getChannelPressure(); 74 } 75 76 @Override 77 public int getController(int controller) { 78 if (channel == null) 79 return 0; 80 return channel.getController(controller); 81 } 82 83 @Override 84 public boolean getMono() { 85 if (channel == null) 86 return false; 87 return channel.getMono(); 88 } 89 90 @Override 91 public boolean getMute() { 92 if (channel == null) 93 return false; 94 return channel.getMute(); 95 } 96 97 @Override 98 public boolean getOmni() { 99 if (channel == null) 100 return false; 101 return channel.getOmni(); 102 } 103 104 @Override 105 public int getPitchBend() { 106 if (channel == null) 107 return 8192; 108 return channel.getPitchBend(); 109 } 110 111 @Override 112 public int getPolyPressure(int noteNumber) { 113 if (channel == null) 114 return 0; 115 return channel.getPolyPressure(noteNumber); 116 } 117 118 @Override 119 public int getProgram() { 120 if (channel == null) 121 return 0; 122 return channel.getProgram(); 123 } 124 125 @Override 126 public boolean getSolo() { 127 if (channel == null) 128 return false; 129 return channel.getSolo(); 130 } 131 132 @Override 133 public boolean localControl(boolean on) { 134 if (channel == null) 135 return false; 136 return channel.localControl(on); 137 } 138 139 @Override 140 public void noteOff(int noteNumber) { 141 if (channel == null) 142 return; 143 channel.noteOff(noteNumber); 144 } 145 146 @Override 147 public void noteOff(int noteNumber, int velocity) { 148 if (channel == null) 149 return; 150 channel.noteOff(noteNumber, velocity); 151 } 152 153 @Override 154 public void noteOn(int noteNumber, int velocity) { 155 if (channel == null) 156 return; 157 channel.noteOn(noteNumber, velocity); 158 } 159 160 @Override 161 public void programChange(int program) { 162 if (channel == null) 163 return; 164 channel.programChange(program); 165 } 166 167 @Override 168 public void programChange(int bank, int program) { 169 if (channel == null) 170 return; 171 channel.programChange(bank, program); 172 } 173 174 @Override 175 public void resetAllControllers() { 176 if (channel == null) 177 return; 178 channel.resetAllControllers(); 179 } 180 181 @Override 182 public void setChannelPressure(int pressure) { 183 if (channel == null) 184 return; 185 channel.setChannelPressure(pressure); 186 } 187 188 @Override 189 public void setMono(boolean on) { 190 if (channel == null) 191 return; 192 channel.setMono(on); 193 } 194 195 @Override 196 public void setMute(boolean mute) { 197 if (channel == null) 198 return; 199 channel.setMute(mute); 200 } 201 202 @Override 203 public void setOmni(boolean on) { 204 if (channel == null) 205 return; 206 channel.setOmni(on); 207 } 208 209 @Override 210 public void setPitchBend(int bend) { 211 if (channel == null) 212 return; 213 channel.setPitchBend(bend); 214 } 215 216 @Override 217 public void setPolyPressure(int noteNumber, int pressure) { 218 if (channel == null) 219 return; 220 channel.setPolyPressure(noteNumber, pressure); 221 } 222 223 @Override 224 public void setSolo(boolean soloState) { 225 if (channel == null) 226 return; 227 channel.setSolo(soloState); 228 } 229 }