26 |
|
|
27 |
import java.util.logging.Level; |
import java.util.logging.Level; |
28 |
|
|
29 |
import javax.swing.SwingUtilities; |
import net.sf.juife.PDUtils; |
|
|
|
|
import javax.swing.event.EventListenerList; |
|
|
|
|
30 |
import net.sf.juife.Task; |
import net.sf.juife.Task; |
31 |
import net.sf.juife.event.TaskEvent; |
import net.sf.juife.event.TaskEvent; |
32 |
import net.sf.juife.event.TaskListener; |
import net.sf.juife.event.TaskListener; |
78 |
private final Vector<ListListener<MidiInstrumentMap>> mapsListeners = |
private final Vector<ListListener<MidiInstrumentMap>> mapsListeners = |
79 |
new Vector<ListListener<MidiInstrumentMap>>(); |
new Vector<ListListener<MidiInstrumentMap>>(); |
80 |
|
|
81 |
private final EventListenerList listenerList = new EventListenerList(); |
private final Vector<ListListener<AudioDeviceModel>> auDevListListeners = |
82 |
|
new Vector<ListListener<AudioDeviceModel>>(); |
83 |
|
|
84 |
|
private final Vector<MidiDeviceListListener> midiDevListListeners = |
85 |
|
new Vector<MidiDeviceListListener>(); |
86 |
|
|
87 |
|
private final Vector<SamplerChannelListListener> smplChnListListeners = |
88 |
|
new Vector<SamplerChannelListListener>(); |
89 |
|
|
90 |
private boolean channelListIsAdjusting = false; |
private boolean channelListIsAdjusting = false; |
91 |
|
|
121 |
@Override |
@Override |
122 |
public void |
public void |
123 |
addAudioDeviceListListener(ListListener<AudioDeviceModel> listener) { |
addAudioDeviceListListener(ListListener<AudioDeviceModel> listener) { |
124 |
listenerList.add(ListListener.class, listener); |
auDevListListeners.add(listener); |
125 |
} |
} |
126 |
|
|
127 |
/** |
/** |
131 |
@Override |
@Override |
132 |
public void |
public void |
133 |
removeAudioDeviceListListener(ListListener<AudioDeviceModel> listener) { |
removeAudioDeviceListListener(ListListener<AudioDeviceModel> listener) { |
134 |
listenerList.remove(ListListener.class, listener); |
auDevListListeners.remove(listener); |
135 |
} |
} |
136 |
|
|
137 |
/** |
/** |
141 |
@Override |
@Override |
142 |
public void |
public void |
143 |
addMidiDeviceListListener(MidiDeviceListListener listener) { |
addMidiDeviceListListener(MidiDeviceListListener listener) { |
144 |
listenerList.add(MidiDeviceListListener.class, listener); |
midiDevListListeners.add(listener); |
145 |
} |
} |
146 |
|
|
147 |
/** |
/** |
151 |
@Override |
@Override |
152 |
public void |
public void |
153 |
removeMidiDeviceListListener(MidiDeviceListListener listener) { |
removeMidiDeviceListListener(MidiDeviceListListener listener) { |
154 |
listenerList.remove(MidiDeviceListListener.class, listener); |
midiDevListListeners.remove(listener); |
155 |
} |
} |
156 |
|
|
157 |
/** |
/** |
181 |
@Override |
@Override |
182 |
public void |
public void |
183 |
addSamplerChannelListListener(SamplerChannelListListener listener) { |
addSamplerChannelListListener(SamplerChannelListListener listener) { |
184 |
listenerList.add(SamplerChannelListListener.class, listener); |
smplChnListListeners.add(listener); |
185 |
} |
} |
186 |
|
|
187 |
/** |
/** |
191 |
@Override |
@Override |
192 |
public void |
public void |
193 |
removeSamplerChannelListListener(SamplerChannelListListener listener) { |
removeSamplerChannelListListener(SamplerChannelListListener listener) { |
194 |
listenerList.remove(SamplerChannelListListener.class, listener); |
smplChnListListeners.remove(listener); |
195 |
} |
} |
196 |
|
|
197 |
/** |
/** |
267 |
* in the audio device list or <code>-1</code> |
* in the audio device list or <code>-1</code> |
268 |
* if there is no audio device with ID <code>deviceId</code>. |
* if there is no audio device with ID <code>deviceId</code>. |
269 |
*/ |
*/ |
270 |
public int getAudioDeviceIndex(int deviceId) { |
@Override |
271 |
|
public int |
272 |
|
getAudioDeviceIndex(int deviceId) { |
273 |
for(int i = 0; i < audioDeviceModels.size(); i++) { |
for(int i = 0; i < audioDeviceModels.size(); i++) { |
274 |
if(audioDeviceModels.get(i).getDeviceId() == deviceId) return i; |
if(audioDeviceModels.get(i).getDeviceId() == deviceId) return i; |
275 |
} |
} |
696 |
setEngines(SamplerEngine[] engines) { this.engines = engines; } |
setEngines(SamplerEngine[] engines) { this.engines = engines; } |
697 |
|
|
698 |
/** Gets the list of internal effects */ |
/** Gets the list of internal effects */ |
699 |
|
@Override |
700 |
public EffectList |
public EffectList |
701 |
getEffects() { return effects; } |
getEffects() { return effects; } |
702 |
|
|
1133 |
fireSamplerChannelAdded(SamplerChannelModel channelModel) { |
fireSamplerChannelAdded(SamplerChannelModel channelModel) { |
1134 |
final SamplerChannelListEvent e = new SamplerChannelListEvent(this, channelModel); |
final SamplerChannelListEvent e = new SamplerChannelListEvent(this, channelModel); |
1135 |
|
|
1136 |
SwingUtilities.invokeLater(new Runnable() { |
PDUtils.runOnUiThread(new Runnable() { |
1137 |
public void |
public void |
1138 |
run() { fireSamplerChannelAdded(e); } |
run() { fireSamplerChannelAdded(e); } |
1139 |
}); |
}); |
1144 |
private void |
private void |
1145 |
fireSamplerChannelAdded(SamplerChannelListEvent e) { |
fireSamplerChannelAdded(SamplerChannelListEvent e) { |
1146 |
setModified(true); |
setModified(true); |
1147 |
Object[] listeners = listenerList.getListenerList(); |
for(int i = smplChnListListeners.size() - 1; i >= 0; i--) { |
1148 |
|
smplChnListListeners.get(i).channelAdded(e); |
|
for(int i = listeners.length - 2; i >= 0; i -= 2) { |
|
|
if(listeners[i] == SamplerChannelListListener.class) { |
|
|
((SamplerChannelListListener)listeners[i + 1]).channelAdded(e); |
|
|
} |
|
1149 |
} |
} |
1150 |
} |
} |
1151 |
|
|
1158 |
fireSamplerChannelRemoved(SamplerChannelModel channelModel) { |
fireSamplerChannelRemoved(SamplerChannelModel channelModel) { |
1159 |
final SamplerChannelListEvent e = new SamplerChannelListEvent(this, channelModel); |
final SamplerChannelListEvent e = new SamplerChannelListEvent(this, channelModel); |
1160 |
|
|
1161 |
SwingUtilities.invokeLater(new Runnable() { |
PDUtils.runOnUiThread(new Runnable() { |
1162 |
public void |
public void |
1163 |
run() { fireSamplerChannelRemoved(e); } |
run() { fireSamplerChannelRemoved(e); } |
1164 |
}); |
}); |
1170 |
private void |
private void |
1171 |
fireSamplerChannelRemoved(SamplerChannelListEvent e) { |
fireSamplerChannelRemoved(SamplerChannelListEvent e) { |
1172 |
setModified(true); |
setModified(true); |
1173 |
Object[] listeners = listenerList.getListenerList(); |
for(int i = smplChnListListeners.size() - 1; i >= 0; i--) { |
1174 |
|
smplChnListListeners.get(i).channelRemoved(e); |
|
for(int i = listeners.length - 2; i >= 0; i -= 2) { |
|
|
if(listeners[i] == SamplerChannelListListener.class) { |
|
|
((SamplerChannelListListener)listeners[i + 1]).channelRemoved(e); |
|
|
} |
|
1175 |
} |
} |
1176 |
} |
} |
1177 |
|
|
1184 |
fireMidiDeviceAdded(MidiDeviceModel model) { |
fireMidiDeviceAdded(MidiDeviceModel model) { |
1185 |
final MidiDeviceListEvent e = new MidiDeviceListEvent(this, model); |
final MidiDeviceListEvent e = new MidiDeviceListEvent(this, model); |
1186 |
|
|
1187 |
SwingUtilities.invokeLater(new Runnable() { |
PDUtils.runOnUiThread(new Runnable() { |
1188 |
public void |
public void |
1189 |
run() { fireMidiDeviceAdded(e); } |
run() { fireMidiDeviceAdded(e); } |
1190 |
}); |
}); |
1195 |
private void |
private void |
1196 |
fireMidiDeviceAdded(MidiDeviceListEvent e) { |
fireMidiDeviceAdded(MidiDeviceListEvent e) { |
1197 |
setModified(true); |
setModified(true); |
1198 |
Object[] listeners = listenerList.getListenerList(); |
for(int i = midiDevListListeners.size() - 1; i >= 0; i--) { |
1199 |
|
midiDevListListeners.get(i).deviceAdded(e); |
|
for(int i = listeners.length - 2; i >= 0; i -= 2) { |
|
|
if(listeners[i] == MidiDeviceListListener.class) { |
|
|
((MidiDeviceListListener)listeners[i + 1]).deviceAdded(e); |
|
|
} |
|
1200 |
} |
} |
1201 |
} |
} |
1202 |
|
|
1209 |
fireMidiDeviceRemoved(MidiDeviceModel model) { |
fireMidiDeviceRemoved(MidiDeviceModel model) { |
1210 |
final MidiDeviceListEvent e = new MidiDeviceListEvent(this, model); |
final MidiDeviceListEvent e = new MidiDeviceListEvent(this, model); |
1211 |
|
|
1212 |
SwingUtilities.invokeLater(new Runnable() { |
PDUtils.runOnUiThread(new Runnable() { |
1213 |
public void |
public void |
1214 |
run() { fireMidiDeviceRemoved(e); } |
run() { fireMidiDeviceRemoved(e); } |
1215 |
}); |
}); |
1221 |
private void |
private void |
1222 |
fireMidiDeviceRemoved(MidiDeviceListEvent e) { |
fireMidiDeviceRemoved(MidiDeviceListEvent e) { |
1223 |
setModified(true); |
setModified(true); |
1224 |
Object[] listeners = listenerList.getListenerList(); |
for(int i = midiDevListListeners.size() - 1; i >= 0; i--) { |
1225 |
|
midiDevListListeners.get(i).deviceRemoved(e); |
|
for(int i = listeners.length - 2; i >= 0; i -= 2) { |
|
|
if(listeners[i] == MidiDeviceListListener.class) { |
|
|
((MidiDeviceListListener)listeners[i + 1]).deviceRemoved(e); |
|
|
} |
|
1226 |
} |
} |
1227 |
} |
} |
1228 |
|
|
1235 |
fireAudioDeviceAdded(AudioDeviceModel model) { |
fireAudioDeviceAdded(AudioDeviceModel model) { |
1236 |
final ListEvent<AudioDeviceModel> e = new ListEvent<AudioDeviceModel>(this, model); |
final ListEvent<AudioDeviceModel> e = new ListEvent<AudioDeviceModel>(this, model); |
1237 |
|
|
1238 |
SwingUtilities.invokeLater(new Runnable() { |
PDUtils.runOnUiThread(new Runnable() { |
1239 |
public void |
public void |
1240 |
run() { fireAudioDeviceAdded(e); } |
run() { fireAudioDeviceAdded(e); } |
1241 |
}); |
}); |
1247 |
private void |
private void |
1248 |
fireAudioDeviceAdded(ListEvent<AudioDeviceModel> e) { |
fireAudioDeviceAdded(ListEvent<AudioDeviceModel> e) { |
1249 |
setModified(true); |
setModified(true); |
1250 |
Object[] listeners = listenerList.getListenerList(); |
for(int i = auDevListListeners.size() - 1; i >= 0; i--) { |
1251 |
|
auDevListListeners.get(i).entryAdded(e); |
|
for(int i = listeners.length - 2; i >= 0; i -= 2) { |
|
|
if(listeners[i] == ListListener.class) { |
|
|
((ListListener<AudioDeviceModel>)listeners[i + 1]).entryAdded(e); |
|
|
} |
|
1252 |
} |
} |
1253 |
} |
} |
1254 |
|
|
1261 |
fireAudioDeviceRemoved(AudioDeviceModel model) { |
fireAudioDeviceRemoved(AudioDeviceModel model) { |
1262 |
final ListEvent<AudioDeviceModel> e = new ListEvent<AudioDeviceModel>(this, model); |
final ListEvent<AudioDeviceModel> e = new ListEvent<AudioDeviceModel>(this, model); |
1263 |
|
|
1264 |
SwingUtilities.invokeLater(new Runnable() { |
PDUtils.runOnUiThread(new Runnable() { |
1265 |
public void |
public void |
1266 |
run() { fireAudioDeviceRemoved(e); } |
run() { fireAudioDeviceRemoved(e); } |
1267 |
}); |
}); |
1274 |
private void |
private void |
1275 |
fireAudioDeviceRemoved(ListEvent<AudioDeviceModel> e) { |
fireAudioDeviceRemoved(ListEvent<AudioDeviceModel> e) { |
1276 |
setModified(true); |
setModified(true); |
1277 |
Object[] listeners = listenerList.getListenerList(); |
for(int i = auDevListListeners.size() - 1; i >= 0; i--) { |
1278 |
|
auDevListListeners.get(i).entryRemoved(e); |
|
for(int i = listeners.length - 2; i >= 0; i -= 2) { |
|
|
if(listeners[i] == ListListener.class) { |
|
|
((ListListener<AudioDeviceModel>)listeners[i + 1]).entryRemoved(e); |
|
|
} |
|
1279 |
} |
} |
1280 |
} |
} |
1281 |
|
|
1287 |
fireMidiInstrumentMapAdded(MidiInstrumentMap map) { |
fireMidiInstrumentMapAdded(MidiInstrumentMap map) { |
1288 |
final ListEvent<MidiInstrumentMap> e = new ListEvent<MidiInstrumentMap>(this, map); |
final ListEvent<MidiInstrumentMap> e = new ListEvent<MidiInstrumentMap>(this, map); |
1289 |
|
|
1290 |
SwingUtilities.invokeLater(new Runnable() { |
PDUtils.runOnUiThread(new Runnable() { |
1291 |
public void |
public void |
1292 |
run() { fireMidiInstrumentMapAdded(e); } |
run() { fireMidiInstrumentMapAdded(e); } |
1293 |
}); |
}); |
1308 |
fireMidiInstrumentMapRemoved(MidiInstrumentMap map) { |
fireMidiInstrumentMapRemoved(MidiInstrumentMap map) { |
1309 |
final ListEvent<MidiInstrumentMap> e = new ListEvent<MidiInstrumentMap>(this, map); |
final ListEvent<MidiInstrumentMap> e = new ListEvent<MidiInstrumentMap>(this, map); |
1310 |
|
|
1311 |
SwingUtilities.invokeLater(new Runnable() { |
PDUtils.runOnUiThread(new Runnable() { |
1312 |
public void |
public void |
1313 |
run() { fireMidiInstrumentMapRemoved(e); } |
run() { fireMidiInstrumentMapRemoved(e); } |
1314 |
}); |
}); |
1328 |
fireVolumeChanged() { |
fireVolumeChanged() { |
1329 |
final SamplerEvent e = new SamplerEvent(this); |
final SamplerEvent e = new SamplerEvent(this); |
1330 |
|
|
1331 |
SwingUtilities.invokeLater(new Runnable() { |
PDUtils.runOnUiThread(new Runnable() { |
1332 |
public void |
public void |
1333 |
run() { fireVolumeChanged(e); } |
run() { fireVolumeChanged(e); } |
1334 |
}); |
}); |
1351 |
fireTotalStreamCountChanged() { |
fireTotalStreamCountChanged() { |
1352 |
final SamplerEvent e = new SamplerEvent(this); |
final SamplerEvent e = new SamplerEvent(this); |
1353 |
|
|
1354 |
SwingUtilities.invokeLater(new Runnable() { |
PDUtils.runOnUiThread(new Runnable() { |
1355 |
public void |
public void |
1356 |
run() { fireTotalStreamCountChanged(e); } |
run() { fireTotalStreamCountChanged(e); } |
1357 |
}); |
}); |
1373 |
fireTotalVoiceCountChanged() { |
fireTotalVoiceCountChanged() { |
1374 |
final SamplerEvent e = new SamplerEvent(this); |
final SamplerEvent e = new SamplerEvent(this); |
1375 |
|
|
1376 |
SwingUtilities.invokeLater(new Runnable() { |
PDUtils.runOnUiThread(new Runnable() { |
1377 |
public void |
public void |
1378 |
run() { fireTotalVoiceCountChanged(e); } |
run() { fireTotalVoiceCountChanged(e); } |
1379 |
}); |
}); |
1404 |
private class Handler implements ListListener<MidiInstrumentMap> { |
private class Handler implements ListListener<MidiInstrumentMap> { |
1405 |
/** Invoked when a new map is added to a list. */ |
/** Invoked when a new map is added to a list. */ |
1406 |
@Override |
@Override |
1407 |
public void |
public void |
1408 |
entryAdded(ListEvent<MidiInstrumentMap> e) { updateDefaultMap(); } |
entryAdded(ListEvent<MidiInstrumentMap> e) { updateDefaultMap(); } |
1409 |
|
|
1410 |
/** Invoked when a map is removed from a list. */ |
/** Invoked when a map is removed from a list. */ |
1411 |
@Override |
@Override |
1412 |
public void |
public void |
1413 |
entryRemoved(ListEvent<MidiInstrumentMap> e) { updateDefaultMap(); } |
entryRemoved(ListEvent<MidiInstrumentMap> e) { updateDefaultMap(); } |
1414 |
|
|
1415 |
private void |
private void |