コード例 #1
0
  public void removeSequencerProvider(MidiSequencerProvider provider) throws MidiPlayerException {
    this.sequencerProviders.remove(provider);

    MidiSequencer current = getSequencer();
    if (!(current instanceof MidiSequencerEmpty) && current != null) {
      Iterator it = provider.listSequencers().iterator();
      while (it.hasNext()) {
        MidiSequencer sequencer = (MidiSequencer) it.next();
        if (current.getKey().equals(sequencer.getKey())) {
          closeSequencer();
          break;
        }
      }
    }
  }
コード例 #2
0
  public void openSequencer(List sequencers, boolean tryFirst) throws MidiPlayerException {
    try {
      if (this.sequencerKey != null && !this.isSequencerOpen(this.sequencerKey)) {
        this.closeSequencer();
        for (int i = 0; i < sequencers.size(); i++) {
          MidiSequencer sequencer = (MidiSequencer) sequencers.get(i);
          if (sequencer.getKey().equals(this.sequencerKey)) {
            if (this.loadSequencer(sequencer)) {
              return;
            }
          }
        }
      }

      if (getSequencer() instanceof MidiSequencerEmpty && !sequencers.isEmpty() && tryFirst) {
        this.loadSequencer((MidiSequencer) sequencers.get(0));
      }

    } catch (Throwable throwable) {
      throw new MidiPlayerException(throwable.getMessage(), throwable);
    }
  }