1
package org.herac.tuxguitar.player.impl.jsa.sequencer;
3
import java.util.ArrayList;
4
import java.util.Iterator;
7
import javax.sound.midi.MidiDevice;
8
import javax.sound.midi.MidiSystem;
9
import javax.sound.midi.MidiUnavailableException;
10
import javax.sound.midi.Sequencer;
12
import org.herac.tuxguitar.gui.TuxGuitar;
13
import org.herac.tuxguitar.player.base.MidiPlayerException;
14
import org.herac.tuxguitar.player.base.MidiSequencer;
15
import org.herac.tuxguitar.player.base.MidiSequencerProvider;
17
public class MidiSequencerProviderImpl implements MidiSequencerProvider{
19
public MidiSequencerProviderImpl(){
23
public List listSequencers() throws MidiPlayerException {
25
List sequencers = new ArrayList();
26
MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo();
27
for(int i = 0; i < infos.length; i++){
29
Iterator it = sequencers.iterator();
30
boolean exists = false;
32
if( ((MidiSequencer)it.next()).getKey().equals(infos[i].getName()) ){
38
MidiDevice device = MidiSystem.getMidiDevice(infos[i]);
39
if(device instanceof Sequencer){
40
sequencers.add(new MidiSequencerImpl((Sequencer)device));
43
} catch (MidiUnavailableException e) {
44
throw new MidiPlayerException(TuxGuitar.getProperty("jsa.error.midi.unavailable"),e);
48
}catch (Throwable t) {
49
throw new MidiPlayerException(TuxGuitar.getProperty("jsa.error.unknown"),t);
53
public void closeAll() throws MidiPlayerException {