Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8bf7eecb authored by Mike Lockwood's avatar Mike Lockwood Committed by Android (Google) Code Review
Browse files

Merge "Add MidiManager and MidiDevice classes to public API."

parents 37ff6f64 9db9326a
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
@@ -16750,6 +16750,18 @@ package android.media.effect {
package android.media.midi {
  public final class MidiDevice implements java.io.Closeable {
    method public void close() throws java.io.IOException;
    method public android.media.midi.MidiDevice.MidiConnection connectPorts(android.media.midi.MidiInputPort, int);
    method public android.media.midi.MidiDeviceInfo getInfo();
    method public android.media.midi.MidiInputPort openInputPort(int);
    method public android.media.midi.MidiOutputPort openOutputPort(int);
  }
  public class MidiDevice.MidiConnection implements java.io.Closeable {
    method public void close() throws java.io.IOException;
  }
  public final class MidiDeviceInfo implements android.os.Parcelable {
    method public int describeContents();
    method public int getId();
@@ -16806,6 +16818,25 @@ package android.media.midi {
    method public void onReceive(byte[], int, int, long) throws java.io.IOException;
  }
  public final class MidiManager {
    method public android.media.midi.MidiDeviceInfo[] getDeviceList();
    method public void openDevice(android.media.midi.MidiDeviceInfo, android.media.midi.MidiManager.DeviceOpenCallback, android.os.Handler);
    method public void registerDeviceCallback(android.media.midi.MidiManager.DeviceCallback, android.os.Handler);
    method public void unregisterDeviceCallback(android.media.midi.MidiManager.DeviceCallback);
  }
  public static class MidiManager.DeviceCallback {
    ctor public MidiManager.DeviceCallback();
    method public void onDeviceAdded(android.media.midi.MidiDeviceInfo);
    method public void onDeviceRemoved(android.media.midi.MidiDeviceInfo);
    method public void onDeviceStatusChanged(android.media.midi.MidiDeviceStatus);
  }
  public static abstract class MidiManager.DeviceOpenCallback {
    ctor public MidiManager.DeviceOpenCallback();
    method public abstract void onDeviceOpened(android.media.midi.MidiDeviceInfo, android.media.midi.MidiDevice);
  }
  public final class MidiOutputPort extends android.media.midi.MidiSender implements java.io.Closeable {
    method public void close() throws java.io.IOException;
    method public void connect(android.media.midi.MidiReceiver);
+31 −0
Original line number Diff line number Diff line
@@ -18025,6 +18025,18 @@ package android.media.effect {
package android.media.midi {
  public final class MidiDevice implements java.io.Closeable {
    method public void close() throws java.io.IOException;
    method public android.media.midi.MidiDevice.MidiConnection connectPorts(android.media.midi.MidiInputPort, int);
    method public android.media.midi.MidiDeviceInfo getInfo();
    method public android.media.midi.MidiInputPort openInputPort(int);
    method public android.media.midi.MidiOutputPort openOutputPort(int);
  }
  public class MidiDevice.MidiConnection implements java.io.Closeable {
    method public void close() throws java.io.IOException;
  }
  public final class MidiDeviceInfo implements android.os.Parcelable {
    method public int describeContents();
    method public int getId();
@@ -18081,6 +18093,25 @@ package android.media.midi {
    method public void onReceive(byte[], int, int, long) throws java.io.IOException;
  }
  public final class MidiManager {
    method public android.media.midi.MidiDeviceInfo[] getDeviceList();
    method public void openDevice(android.media.midi.MidiDeviceInfo, android.media.midi.MidiManager.DeviceOpenCallback, android.os.Handler);
    method public void registerDeviceCallback(android.media.midi.MidiManager.DeviceCallback, android.os.Handler);
    method public void unregisterDeviceCallback(android.media.midi.MidiManager.DeviceCallback);
  }
  public static class MidiManager.DeviceCallback {
    ctor public MidiManager.DeviceCallback();
    method public void onDeviceAdded(android.media.midi.MidiDeviceInfo);
    method public void onDeviceRemoved(android.media.midi.MidiDeviceInfo);
    method public void onDeviceStatusChanged(android.media.midi.MidiDeviceStatus);
  }
  public static abstract class MidiManager.DeviceOpenCallback {
    ctor public MidiManager.DeviceOpenCallback();
    method public abstract void onDeviceOpened(android.media.midi.MidiDeviceInfo, android.media.midi.MidiDevice);
  }
  public final class MidiOutputPort extends android.media.midi.MidiSender implements java.io.Closeable {
    method public void close() throws java.io.IOException;
    method public void connect(android.media.midi.MidiReceiver);
+8 −6
Original line number Diff line number Diff line
@@ -34,9 +34,6 @@ import java.io.IOException;
/**
 * This class is used for sending and receiving data to and from a MIDI device
 * Instances of this class are created by {@link MidiManager#openDevice}.
 *
 * CANDIDATE FOR PUBLIC API
 * @hide
 */
public final class MidiDevice implements Closeable {
    private static final String TAG = "MidiDevice";
@@ -49,6 +46,11 @@ public final class MidiDevice implements Closeable {

    private final CloseGuard mGuard = CloseGuard.get();

    /**
     * This class represents a connection between the output port of one device
     * and the input port of another. Created by {@link #connectPorts}.
     * Close this object to terminate the connection.
     */
    public class MidiConnection implements Closeable {
        private final IBinder mToken;
        private final MidiInputPort mInputPort;
@@ -134,11 +136,11 @@ public final class MidiDevice implements Closeable {
    /**
     * Connects the supplied {@link MidiInputPort} to the output port of this device
     * with the specified port number. Once the connection is made, the MidiInput port instance
     * can no longer receive data via its {@link MidiReciever.receive} method.
     * This method returns a {@link #MidiConnection} object, which can be used to close the connection
     * can no longer receive data via its {@link MidiReceiver#onReceive} method.
     * This method returns a {@link MidiDevice.MidiConnection} object, which can be used to close the connection
     * @param inputPort the inputPort to connect
     * @param outputPortNumber the port number of the output port to connect inputPort to.
     * @return {@link #MidiConnection} object if the connection is successful, or null in case of failure
     * @return {@link MidiDevice.MidiConnection} object if the connection is successful, or null in case of failure
     */
    public MidiConnection connectPorts(MidiInputPort inputPort, int outputPortNumber) {
        if (outputPortNumber < 0 || outputPortNumber >= mDeviceInfo.getOutputPortCount()) {
+2 −5
Original line number Diff line number Diff line
@@ -38,9 +38,6 @@ import java.util.HashMap;
 *
 * {@samplecode
 * MidiManager manager = (MidiManager) getSystemService(Context.MIDI_SERVICE);}
 *
 * CANDIDATE FOR PUBLIC API
 * @hide
 */
public final class MidiManager {
    private static final String TAG = "MidiManager";
@@ -128,7 +125,7 @@ public final class MidiManager {
        /**
         * Called to notify when the status of a MIDI device has changed
         *
         * @param device a {@link MidiDeviceStatus} for the changed device
         * @param status a {@link MidiDeviceStatus} for the changed device
         */
        public void onDeviceStatusChanged(MidiDeviceStatus status) {
        }
@@ -221,7 +218,7 @@ public final class MidiManager {
     * Opens a MIDI device for reading and writing.
     *
     * @param deviceInfo a {@link android.media.midi.MidiDeviceInfo} to open
     * @param callback a {@link #DeviceOpenCallback} to be called to receive the result
     * @param callback a {@link MidiManager.DeviceOpenCallback} to be called to receive the result
     * @param handler the {@link android.os.Handler Handler} that will be used for delivering
     *                the result. If handler is null, then the thread used for the
     *                callback is unspecified.