| |||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Iterator it = …;
MidiDevice midiDevice = (MidiDevice)it.next();
Based on 9 examples
public interface MidiDevice
MidiDevice
is the base interface for all MIDI devices.
Common devices include synthesizers, sequencers, MIDI input ports, and MIDI
output ports.
A MidiDevice
can be a transmitter or a receiver of
MIDI events, or both. Therefore, it can provide {@link Transmitter}
or {@link Receiver} instances (or both). Typically, MIDI IN ports
provide transmitters, MIDI OUT ports and synthesizers provide
receivers. A Sequencer typically provides transmitters for playback
and receivers for recording.
A MidiDevice
can be opened and closed explicitly as
well as implicitly. Explicit opening is accomplished by calling
{@link #open}, explicit closing is done by calling {@link
#close} on the MidiDevice
instance.
If an application opens a MidiDevice
explicitly, it has to close it explicitly to free system resources
and enable the application to exit cleanly. Implicit opening is
done by calling {@link javax.sound.midi.MidiSystem#getReceiver
MidiSystem.getReceiver} and {@link
javax.sound.midi.MidiSystem#getTransmitter
MidiSystem.getTransmitter}. The MidiDevice
used by
MidiSystem.getReceiver
and
MidiSystem.getTransmitter
is implementation-dependant
unless the properties javax.sound.midi.Receiver
and javax.sound.midi.Transmitter
are used (see the
description of properties to select default providers in
{@link javax.sound.midi.MidiSystem}). A MidiDevice
that was opened implicitly, is closed implicitly by closing the
Receiver
or Transmitter
that resulted in
opening it. If more than one implicitly opening
Receiver
or Transmitter
were obtained by
the application, the decive is closed after the last
Receiver
or Transmitter
has been
closed. On the other hand, calling getReceiver
or
getTransmitter
on the device instance directly does
not open the device implicitly. Closing these
Transmitter
s and Receiver
s does not close
the device implicitly. To use a device with Receiver
s
or Transmitter
s obtained this way, the device has to
be opened and closed explicitly.
If implicit and explicit opening and closing are mixed on the
same MidiDevice
instance, the following rules apply:
MidiDevice device = ...; if ( ! (device instanceof Sequencer) && ! (device instanceof Synthesizer)) { // we're now sure that device represents a MIDI port // ... }
A MidiDevice
includes a {@link MidiDevice.Info}
object
to provide manufacturer information and so on.
Nested Class Summary | |
---|---|
static class |
A MidiDevice.Info object contains assorted
data about a javax.sound.midi.MidiDevice , including its
name, the company who created it, and descriptive text. |
Method Summary | |
---|---|
void |
close() Closes the device, indicating that the device should now release any system resources it is using. |
MidiDevice.Info |
Obtains information about the device, including its Java class and Strings containing its name, vendor, and description.
|
int |
Obtains the maximum number of MIDI IN connections available on this MIDI device for receiving MIDI data. |
int |
Obtains the maximum number of MIDI OUT connections available on this MIDI device for transmitting MIDI data. |
long |
Obtains the current time-stamp of the device, in microseconds. |
Receiver |
Obtains a MIDI IN receiver through which the MIDI device may receive MIDI data. |
List |
Returns all currently active, non-closed receivers connected with this MidiDevice. |
Transmitter |
Obtains a MIDI OUT connection from which the MIDI device will transmit MIDI data The returned transmitter must be closed when the application has finished using it. |
List |
Returns all currently active, non-closed transmitters connected with this MidiDevice. |
boolean |
isOpen() Reports whether the device is open. |
void |
open() Opens the device, indicating that it should now acquire any system resources it requires and become operational. |
Method Detail |
---|
public void close()
All Receiver
and Transmitter
instances
open from this device are closed. This includes instances retrieved
via MidiSystem
.
public MidiDevice.Info getDeviceInfo()
Strings
containing its name, vendor, and description.
public int getMaxReceivers()
public int getMaxTransmitters()
public long getMicrosecondPosition()
public Receiver getReceiver() throws MidiUnavailableException
Obtaining a Receiver
with this method does not
open the device. To be able to use the device, it has to be
opened explicitly by calling {@link #open}. Also, closing the
Receiver
does not close the device. It has to be
closed explicitly by calling {@link #close}.
MidiUnavailableException
- thrown if a receiver is not available
due to resource restrictionspublic List getReceivers()
public Transmitter getTransmitter() throws MidiUnavailableException
Obtaining a Transmitter
with this method does not
open the device. To be able to use the device, it has to be
opened explicitly by calling {@link #open}. Also, closing the
Transmitter
does not close the device. It has to be
closed explicitly by calling {@link #close}.
MidiUnavailableException
- thrown if a transmitter is not available
due to resource restrictionspublic List getTransmitters()
public boolean isOpen()
true
if the device is open, otherwise
false
public void open() throws MidiUnavailableException
An application opening a device explicitly with this call has to close the device by calling {@link #close}. This is necessary to release system resources and allow applications to exit cleanly.
Note that some devices, once closed, cannot be reopened. Attempts to reopen such a device will always result in a MidiUnavailableException.
MidiUnavailableException
- thrown if the device cannot be
opened due to resource restrictions.
| |||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |