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

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

Merge "Add support for Bluetooth MIDI devices"

parents 427a90c5 f0a41d1c
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -16816,11 +16816,17 @@ package android.media.midi {
  public final class MidiManager {
    method public android.media.midi.MidiDeviceInfo[] getDeviceList();
    method public void openBluetoothDevice(android.bluetooth.BluetoothDevice, android.media.midi.MidiManager.BluetoothOpenCallback, android.os.Handler);
    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 abstract class MidiManager.BluetoothOpenCallback {
    ctor public MidiManager.BluetoothOpenCallback();
    method public abstract void onDeviceOpened(android.bluetooth.BluetoothDevice, android.media.midi.MidiDevice);
  }
  public static class MidiManager.DeviceCallback {
    ctor public MidiManager.DeviceCallback();
    method public void onDeviceAdded(android.media.midi.MidiDeviceInfo);
+6 −0
Original line number Diff line number Diff line
@@ -18092,11 +18092,17 @@ package android.media.midi {
  public final class MidiManager {
    method public android.media.midi.MidiDeviceInfo[] getDeviceList();
    method public void openBluetoothDevice(android.bluetooth.BluetoothDevice, android.media.midi.MidiManager.BluetoothOpenCallback, android.os.Handler);
    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 abstract class MidiManager.BluetoothOpenCallback {
    ctor public MidiManager.BluetoothOpenCallback();
    method public abstract void onDeviceOpened(android.bluetooth.BluetoothDevice, android.media.midi.MidiDevice);
  }
  public static class MidiManager.DeviceCallback {
    ctor public MidiManager.DeviceCallback();
    method public void onDeviceAdded(android.media.midi.MidiDeviceInfo);
+13 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ package com.android.internal.midi;
/**
 * MIDI related constants and static methods.
 */
public class MidiConstants {
public final class MidiConstants {
    public static final byte STATUS_COMMAND_MASK = (byte) 0xF0;
    public static final byte STATUS_CHANNEL_MASK = (byte) 0x0F;

@@ -85,4 +85,16 @@ public class MidiConstants {
        }
        return (goodBytes == 0);
    }

    // Returns true if this command can be used for running status
    public static boolean allowRunningStatus(int command) {
        // only Channel Voice and Channel Mode commands can use running status
        return (command >= STATUS_NOTE_OFF && command < STATUS_SYSTEM_EXCLUSIVE);
    }

    // Returns true if this command cancels running status
    public static boolean cancelsRunningStatus(int command) {
        // System Common messages cancel running status
        return (command >= STATUS_SYSTEM_EXCLUSIVE && command <= STATUS_END_SYSEX);
    }
}
+3 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.media.midi;

import android.media.midi.MidiDeviceInfo;
import android.os.ParcelFileDescriptor;

/** @hide */
@@ -27,4 +28,6 @@ interface IMidiDeviceServer

    // connects the input port pfd to the specified output port
    void connectPorts(IBinder token, in ParcelFileDescriptor pfd, int outputPortNumber);

    MidiDeviceInfo getDeviceInfo();
}
+9 −0
Original line number Diff line number Diff line
@@ -252,6 +252,11 @@ public final class MidiDeviceServer implements Closeable {
                mPortClients.put(token, client);
            }
        }

        @Override
        public MidiDeviceInfo getDeviceInfo() {
            return mDeviceInfo;
        }
    };

    /* package */ MidiDeviceServer(IMidiManager midiManager, MidiReceiver[] inputPortReceivers,
@@ -279,6 +284,10 @@ public final class MidiDeviceServer implements Closeable {
        return mServer;
    }

    public IBinder asBinder() {
        return mServer.asBinder();
    }

    /* package */ void setDeviceInfo(MidiDeviceInfo deviceInfo) {
        if (mDeviceInfo != null) {
            throw new IllegalStateException("setDeviceInfo should only be called once");
Loading