/** Method to get all available midi ports and add them to the corresponding device list. */
  private void getAvailablePorts() {
    javax.sound.midi.MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo();
    for (int i = 0; i < infos.length; i++) {
      try {
        javax.sound.midi.MidiDevice theDevice = MidiSystem.getMidiDevice(infos[i]);

        if (theDevice instanceof javax.sound.midi.Sequencer) {
          // Ignore this device as it's a sequencer
        } else if (theDevice.getMaxReceivers() != 0) {
          midiOutDevices.add(theDevice);
        } else if (theDevice.getMaxTransmitters() != 0) {
          midiInputDevices.add(theDevice);
        }
      } catch (MidiUnavailableException e) {
        e.printStackTrace();
      }
    }
  }
  /** Fill MIDI devices comboboxes. */
  public void updateMidiDevices(MidiDevice.Info[] midiDeviceInfo) {
    _midiInComboBox.removeAllItems();
    _midiOutComboBox.removeAllItems();

    try {
      int n = midiDeviceInfo.length;
      for (int i = 0; i < n; i++) {
        MidiDevice midiDevice = MidiSystem.getMidiDevice(midiDeviceInfo[i]);

        if (midiDevice.getMaxTransmitters() != 0) {
          _midiInComboBox.addItem(midiDeviceInfo[i]);
        }
        if (midiDevice.getMaxReceivers() != 0) {
          _midiOutComboBox.addItem(midiDeviceInfo[i]);
        }
      }

      _midiInComboBox.setSelectedIndex(-1);
      _midiOutComboBox.setSelectedIndex(-1);
    } catch (MidiUnavailableException exception) {
      System.out.println("MIDI device unavailable: " + exception.getMessage());
    }
  }
Example #3
0
 public static boolean allowsReceivers(MidiDevice device) {
   return probe(device.getMaxReceivers()) || probe(device.getReceivers());
 }
Example #4
0
 public static boolean hasAvailableReceivers(MidiDevice device) {
   return probe(device.getMaxReceivers());
 }
Example #5
0
  public static void main(String[] args) throws Exception {
    boolean failed = false;
    out("#4616517: Receiver.send() does not work properly");
    if (!isMidiInstalled()) {
      out("Soundcard does not exist or sound drivers not installed!");
      out("This test requires sound drivers for execution.");
      return;
    }
    MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo();
    MidiDevice outDevice = null;
    MidiDevice inDevice = null;
    for (int i = 0; i < infos.length; i++) {
      MidiDevice device = MidiSystem.getMidiDevice(infos[i]);
      if (!(device instanceof Synthesizer) && !(device instanceof Sequencer)) {
        if (device.getMaxReceivers() != 0) {
          outDevice = device;
        }
        if (device.getMaxTransmitters() != 0) {
          inDevice = device;
        }
      }
    }
    if (outDevice != null) {
      // set the default provider properties
      System.setProperty(Receiver.class.getName(), "#" + outDevice.getDeviceInfo().getName());
    }
    if (inDevice != null) {
      System.setProperty(Transmitter.class.getName(), "#" + inDevice.getDeviceInfo().getName());
    }
    out("Using MIDI OUT Device: " + outDevice);
    out("Using MIDI IN Device: " + inDevice);

    isTestExecuted = false;
    if (outDevice != null) {
      isTestExecuted = true;
      TestHelper testHelper = new ReceiverTestHelper(outDevice);
      try {
        doTest("Receiver", testHelper);
        failed |= testHelper.hasFailed();
      } catch (Exception e) {
        out("Exception occured, cannot test!");
        isTestExecuted = false;
      }
    }

    if (inDevice != null) {
      isTestExecuted = true;
      TestHelper testHelper = new TransmitterTestHelper(inDevice);
      try {
        doTest("Transmitter", testHelper);
        failed |= testHelper.hasFailed();
      } catch (Exception e) {
        out("Exception occured, cannot test!");
        isTestExecuted = false;
      }
    }

    isTestPassed = !failed;

    if (isTestExecuted) {
      if (isTestPassed) {
        out("Test PASSED.");
      } else {
        throw new Exception("Test FAILED.");
      }
    } else {
      out("Test NOT FAILED");
    }
  }