/*
 * Copyright (c) 1999, 2010, 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</code> receives <code>{@link MidiEvent}</code> 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. * * @see MidiDevice * @see Synthesizer * @see Transmitter * * @author Kara Kytle */
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:
/** * 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 */
public 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</code> 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</code> or <code>Transmitter</code> * instances that opened the device implicitly, and unless the device * has been opened explicitly. If the device this * <code>Receiver</code> is retrieved from is closed explicitly by * calling {@link MidiDevice#close MidiDevice.close}, the * <code>Receiver</code> is closed, too. For a detailed * description of open/close behaviour see the class description * of {@link javax.sound.midi.MidiDevice MidiDevice}. * * @see javax.sound.midi.MidiSystem#getReceiver */
public void close(); }