/*
* Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package javax.sound.midi;
A Receiver
receives MidiEvent
objects and typically does something useful in response, such as interpreting them to generate sound or raw MIDI output. Common MIDI receivers include synthesizers and MIDI Out ports. Author: Kara Kytle See Also:
/**
* A {@code Receiver} receives {@link MidiEvent} objects and typically does
* something useful in response, such as interpreting them to generate sound or
* raw MIDI output. Common MIDI receivers include synthesizers and MIDI Out
* ports.
*
* @author Kara Kytle
* @see MidiDevice
* @see Synthesizer
* @see Transmitter
*/
public interface Receiver extends AutoCloseable {
//$$fb 2002-04-12: fix for 4662090: Contradiction in Receiver specification
Sends a MIDI message and time-stamp to this receiver. If time-stamping is
not supported by this receiver, the time-stamp value should be -1.
Params: - message – the MIDI message to send
- timeStamp – the time-stamp for the message, in microseconds
Throws: - IllegalStateException – if the receiver is closed
/**
* Sends a MIDI message and time-stamp to this receiver. If time-stamping is
* not supported by this receiver, the time-stamp value should be -1.
*
* @param message the MIDI message to send
* @param timeStamp the time-stamp for the message, in microseconds
* @throws IllegalStateException if the receiver is closed
*/
void send(MidiMessage message, long timeStamp);
Indicates that the application has finished using the receiver, and that
limited resources it requires may be released or made available.
If the creation of this Receiver
resulted in implicitly opening the underlying device, the device is implicitly closed by this method. This is true unless the device is kept open by other Receiver
or Transmitter
instances that opened the device implicitly, and unless the device has been opened explicitly. If the device this Receiver
is retrieved from is closed explicitly by calling MidiDevice.close
, the Receiver
is closed, too. For a detailed description of open/close behaviour see the class description of MidiDevice
.
See Also:
/**
* Indicates that the application has finished using the receiver, and that
* limited resources it requires may be released or made available.
* <p>
* If the creation of this {@code Receiver} resulted in implicitly opening
* the underlying device, the device is implicitly closed by this method.
* This is true unless the device is kept open by other {@code Receiver} or
* {@code Transmitter} instances that opened the device implicitly, and
* unless the device has been opened explicitly. If the device this
* {@code Receiver} is retrieved from is closed explicitly by calling
* {@link MidiDevice#close MidiDevice.close}, the {@code Receiver} is
* closed, too. For a detailed description of open/close behaviour see the
* class description of {@link MidiDevice MidiDevice}.
*
* @see MidiSystem#getReceiver
*/
@Override
void close();
}