public final class android.media.midi.MidiManager
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.media.midi.MidiManager
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "MidiManager"

  public static final java.lang.String BLUETOOTH_MIDI_SERVICE_INTENT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.midi.BluetoothMidiService"

  public static final java.lang.String BLUETOOTH_MIDI_SERVICE_PACKAGE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.android.bluetoothmidiservice"

  public static final java.lang.String BLUETOOTH_MIDI_SERVICE_CLASS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.android.bluetoothmidiservice.BluetoothMidiService"

  private final android.media.midi.IMidiManager mService;
    descriptor: Landroid/media/midi/IMidiManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.os.IBinder mToken;
    descriptor: Landroid/os/IBinder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.util.concurrent.ConcurrentHashMap<android.media.midi.MidiManager$DeviceCallback, android.media.midi.MidiManager$DeviceListener> mDeviceListeners;
    descriptor: Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/concurrent/ConcurrentHashMap<Landroid/media/midi/MidiManager$DeviceCallback;Landroid/media/midi/MidiManager$DeviceListener;>;

  public void <init>(android.media.midi.IMidiManager);
    descriptor: (Landroid/media/midi/IMidiManager;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.midi.MidiManager this
        start local 1 // android.media.midi.IMidiManager service
         0: .line 165
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 62
            aload 0 /* this */
            new android.os.Binder
            dup
            invokespecial android.os.Binder.<init>:()V
            putfield android.media.midi.MidiManager.mToken:Landroid/os/IBinder;
         2: .line 64
            aload 0 /* this */
         3: .line 65
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield android.media.midi.MidiManager.mDeviceListeners:Ljava/util/concurrent/ConcurrentHashMap;
         4: .line 166
            aload 0 /* this */
            aload 1 /* service */
            putfield android.media.midi.MidiManager.mService:Landroid/media/midi/IMidiManager;
         5: .line 167
            return
        end local 1 // android.media.midi.IMidiManager service
        end local 0 // android.media.midi.MidiManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/media/midi/MidiManager;
            0    6     1  service  Landroid/media/midi/IMidiManager;
    MethodParameters:
         Name  Flags
      service  

  public void registerDeviceCallback(android.media.midi.MidiManager$DeviceCallback, android.os.Handler);
    descriptor: (Landroid/media/midi/MidiManager$DeviceCallback;Landroid/os/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // android.media.midi.MidiManager this
        start local 1 // android.media.midi.MidiManager$DeviceCallback callback
        start local 2 // android.os.Handler handler
         0: .line 185
            new android.media.midi.MidiManager$DeviceListener
            dup
            aload 0 /* this */
            aload 1 /* callback */
            aload 2 /* handler */
            invokespecial android.media.midi.MidiManager$DeviceListener.<init>:(Landroid/media/midi/MidiManager;Landroid/media/midi/MidiManager$DeviceCallback;Landroid/os/Handler;)V
            astore 3 /* deviceListener */
        start local 3 // android.media.midi.MidiManager$DeviceListener deviceListener
         1: .line 187
            aload 0 /* this */
            getfield android.media.midi.MidiManager.mService:Landroid/media/midi/IMidiManager;
            aload 0 /* this */
            getfield android.media.midi.MidiManager.mToken:Landroid/os/IBinder;
            aload 3 /* deviceListener */
            invokeinterface android.media.midi.IMidiManager.registerListener:(Landroid/os/IBinder;Landroid/media/midi/IMidiDeviceListener;)V
         2: .line 188
            goto 5
      StackMap locals: android.media.midi.MidiManager android.media.midi.MidiManager$DeviceCallback android.os.Handler android.media.midi.MidiManager$DeviceListener
      StackMap stack: android.os.RemoteException
         3: astore 4 /* e */
        start local 4 // android.os.RemoteException e
         4: .line 189
            aload 4 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 4 // android.os.RemoteException e
         5: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.midi.MidiManager.mDeviceListeners:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* callback */
            aload 3 /* deviceListener */
            invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 192
            return
        end local 3 // android.media.midi.MidiManager$DeviceListener deviceListener
        end local 2 // android.os.Handler handler
        end local 1 // android.media.midi.MidiManager$DeviceCallback callback
        end local 0 // android.media.midi.MidiManager this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Landroid/media/midi/MidiManager;
            0    7     1        callback  Landroid/media/midi/MidiManager$DeviceCallback;
            0    7     2         handler  Landroid/os/Handler;
            1    7     3  deviceListener  Landroid/media/midi/MidiManager$DeviceListener;
            4    5     4               e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
          Name  Flags
      callback  
      handler   

  public void unregisterDeviceCallback(android.media.midi.MidiManager$DeviceCallback);
    descriptor: (Landroid/media/midi/MidiManager$DeviceCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // android.media.midi.MidiManager this
        start local 1 // android.media.midi.MidiManager$DeviceCallback callback
         0: .line 200
            aload 0 /* this */
            getfield android.media.midi.MidiManager.mDeviceListeners:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* callback */
            invokevirtual java.util.concurrent.ConcurrentHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.media.midi.MidiManager$DeviceListener
            astore 2 /* deviceListener */
        start local 2 // android.media.midi.MidiManager$DeviceListener deviceListener
         1: .line 201
            aload 2 /* deviceListener */
            ifnull 6
         2: .line 203
            aload 0 /* this */
            getfield android.media.midi.MidiManager.mService:Landroid/media/midi/IMidiManager;
            aload 0 /* this */
            getfield android.media.midi.MidiManager.mToken:Landroid/os/IBinder;
            aload 2 /* deviceListener */
            invokeinterface android.media.midi.IMidiManager.unregisterListener:(Landroid/os/IBinder;Landroid/media/midi/IMidiDeviceListener;)V
         3: .line 204
            goto 6
      StackMap locals: android.media.midi.MidiManager android.media.midi.MidiManager$DeviceCallback android.media.midi.MidiManager$DeviceListener
      StackMap stack: android.os.RemoteException
         4: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         5: .line 205
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
         6: .line 208
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.media.midi.MidiManager$DeviceListener deviceListener
        end local 1 // android.media.midi.MidiManager$DeviceCallback callback
        end local 0 // android.media.midi.MidiManager this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Landroid/media/midi/MidiManager;
            0    7     1        callback  Landroid/media/midi/MidiManager$DeviceCallback;
            1    7     2  deviceListener  Landroid/media/midi/MidiManager$DeviceListener;
            5    6     3               e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           2     3       4  Class android.os.RemoteException
    MethodParameters:
          Name  Flags
      callback  

  public android.media.midi.MidiDeviceInfo[] getDevices();
    descriptor: ()[Landroid/media/midi/MidiDeviceInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // android.media.midi.MidiManager this
         0: .line 217
            aload 0 /* this */
            getfield android.media.midi.MidiManager.mService:Landroid/media/midi/IMidiManager;
            invokeinterface android.media.midi.IMidiManager.getDevices:()[Landroid/media/midi/MidiDeviceInfo;
         1: areturn
         2: .line 218
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 1 /* e */
        start local 1 // android.os.RemoteException e
         3: .line 219
            aload 1 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 1 // android.os.RemoteException e
        end local 0 // android.media.midi.MidiManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/media/midi/MidiManager;
            3    4     1     e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException

  private void sendOpenDeviceResponse(android.media.midi.MidiDevice, android.media.midi.MidiManager$OnDeviceOpenedListener, android.os.Handler);
    descriptor: (Landroid/media/midi/MidiDevice;Landroid/media/midi/MidiManager$OnDeviceOpenedListener;Landroid/os/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // android.media.midi.MidiManager this
        start local 1 // android.media.midi.MidiDevice device
        start local 2 // android.media.midi.MidiManager$OnDeviceOpenedListener listener
        start local 3 // android.os.Handler handler
         0: .line 225
            aload 3 /* handler */
            ifnull 3
         1: .line 226
            aload 3 /* handler */
            new android.media.midi.MidiManager$1
            dup
            aload 0 /* this */
            aload 2 /* listener */
            aload 1 /* device */
            invokespecial android.media.midi.MidiManager$1.<init>:(Landroid/media/midi/MidiManager;Landroid/media/midi/MidiManager$OnDeviceOpenedListener;Landroid/media/midi/MidiDevice;)V
            invokevirtual android.os.Handler.post:(Ljava/lang/Runnable;)Z
            pop
         2: .line 231
            goto 4
         3: .line 232
      StackMap locals:
      StackMap stack:
            aload 2 /* listener */
            aload 1 /* device */
            invokeinterface android.media.midi.MidiManager$OnDeviceOpenedListener.onDeviceOpened:(Landroid/media/midi/MidiDevice;)V
         4: .line 234
      StackMap locals:
      StackMap stack:
            return
        end local 3 // android.os.Handler handler
        end local 2 // android.media.midi.MidiManager$OnDeviceOpenedListener listener
        end local 1 // android.media.midi.MidiDevice device
        end local 0 // android.media.midi.MidiManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Landroid/media/midi/MidiManager;
            0    5     1    device  Landroid/media/midi/MidiDevice;
            0    5     2  listener  Landroid/media/midi/MidiManager$OnDeviceOpenedListener;
            0    5     3   handler  Landroid/os/Handler;
    MethodParameters:
          Name  Flags
      device    final
      listener  final
      handler   

  public void openDevice(android.media.midi.MidiDeviceInfo, android.media.midi.MidiManager$OnDeviceOpenedListener, android.os.Handler);
    descriptor: (Landroid/media/midi/MidiDeviceInfo;Landroid/media/midi/MidiManager$OnDeviceOpenedListener;Landroid/os/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // android.media.midi.MidiManager this
        start local 1 // android.media.midi.MidiDeviceInfo deviceInfo
        start local 2 // android.media.midi.MidiManager$OnDeviceOpenedListener listener
        start local 3 // android.os.Handler handler
         0: .line 248
            aload 1 /* deviceInfo */
            astore 4 /* deviceInfoF */
        start local 4 // android.media.midi.MidiDeviceInfo deviceInfoF
         1: .line 249
            aload 2 /* listener */
            astore 5 /* listenerF */
        start local 5 // android.media.midi.MidiManager$OnDeviceOpenedListener listenerF
         2: .line 250
            aload 3 /* handler */
            astore 6 /* handlerF */
        start local 6 // android.os.Handler handlerF
         3: .line 252
            new android.media.midi.MidiManager$2
            dup
            aload 0 /* this */
            aload 4 /* deviceInfoF */
            aload 5 /* listenerF */
            aload 6 /* handlerF */
            invokespecial android.media.midi.MidiManager$2.<init>:(Landroid/media/midi/MidiManager;Landroid/media/midi/MidiDeviceInfo;Landroid/media/midi/MidiManager$OnDeviceOpenedListener;Landroid/os/Handler;)V
            astore 7 /* callback */
        start local 7 // android.media.midi.IMidiDeviceOpenCallback callback
         4: .line 266
            aload 0 /* this */
            getfield android.media.midi.MidiManager.mService:Landroid/media/midi/IMidiManager;
            aload 0 /* this */
            getfield android.media.midi.MidiManager.mToken:Landroid/os/IBinder;
            aload 1 /* deviceInfo */
            aload 7 /* callback */
            invokeinterface android.media.midi.IMidiManager.openDevice:(Landroid/os/IBinder;Landroid/media/midi/MidiDeviceInfo;Landroid/media/midi/IMidiDeviceOpenCallback;)V
         5: .line 267
            goto 8
      StackMap locals: android.media.midi.MidiManager android.media.midi.MidiDeviceInfo android.media.midi.MidiManager$OnDeviceOpenedListener android.os.Handler android.media.midi.MidiDeviceInfo android.media.midi.MidiManager$OnDeviceOpenedListener android.os.Handler android.media.midi.IMidiDeviceOpenCallback
      StackMap stack: android.os.RemoteException
         6: astore 8 /* e */
        start local 8 // android.os.RemoteException e
         7: .line 268
            aload 8 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 8 // android.os.RemoteException e
         8: .line 270
      StackMap locals:
      StackMap stack:
            return
        end local 7 // android.media.midi.IMidiDeviceOpenCallback callback
        end local 6 // android.os.Handler handlerF
        end local 5 // android.media.midi.MidiManager$OnDeviceOpenedListener listenerF
        end local 4 // android.media.midi.MidiDeviceInfo deviceInfoF
        end local 3 // android.os.Handler handler
        end local 2 // android.media.midi.MidiManager$OnDeviceOpenedListener listener
        end local 1 // android.media.midi.MidiDeviceInfo deviceInfo
        end local 0 // android.media.midi.MidiManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Landroid/media/midi/MidiManager;
            0    9     1   deviceInfo  Landroid/media/midi/MidiDeviceInfo;
            0    9     2     listener  Landroid/media/midi/MidiManager$OnDeviceOpenedListener;
            0    9     3      handler  Landroid/os/Handler;
            1    9     4  deviceInfoF  Landroid/media/midi/MidiDeviceInfo;
            2    9     5    listenerF  Landroid/media/midi/MidiManager$OnDeviceOpenedListener;
            3    9     6     handlerF  Landroid/os/Handler;
            4    9     7     callback  Landroid/media/midi/IMidiDeviceOpenCallback;
            7    8     8            e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           4     5       6  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      deviceInfo  
      listener    
      handler     

  public void openBluetoothDevice(android.bluetooth.BluetoothDevice, android.media.midi.MidiManager$OnDeviceOpenedListener, android.os.Handler);
    descriptor: (Landroid/bluetooth/BluetoothDevice;Landroid/media/midi/MidiManager$OnDeviceOpenedListener;Landroid/os/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // android.media.midi.MidiManager this
        start local 1 // android.bluetooth.BluetoothDevice bluetoothDevice
        start local 2 // android.media.midi.MidiManager$OnDeviceOpenedListener listener
        start local 3 // android.os.Handler handler
         0: .line 284
            aload 2 /* listener */
            astore 4 /* listenerF */
        start local 4 // android.media.midi.MidiManager$OnDeviceOpenedListener listenerF
         1: .line 285
            aload 3 /* handler */
            astore 5 /* handlerF */
        start local 5 // android.os.Handler handlerF
         2: .line 287
            new android.media.midi.MidiManager$3
            dup
            aload 0 /* this */
            aload 4 /* listenerF */
            aload 5 /* handlerF */
            invokespecial android.media.midi.MidiManager$3.<init>:(Landroid/media/midi/MidiManager;Landroid/media/midi/MidiManager$OnDeviceOpenedListener;Landroid/os/Handler;)V
            astore 6 /* callback */
        start local 6 // android.media.midi.IMidiDeviceOpenCallback callback
         3: .line 305
            aload 0 /* this */
            getfield android.media.midi.MidiManager.mService:Landroid/media/midi/IMidiManager;
            aload 0 /* this */
            getfield android.media.midi.MidiManager.mToken:Landroid/os/IBinder;
            aload 1 /* bluetoothDevice */
            aload 6 /* callback */
            invokeinterface android.media.midi.IMidiManager.openBluetoothDevice:(Landroid/os/IBinder;Landroid/bluetooth/BluetoothDevice;Landroid/media/midi/IMidiDeviceOpenCallback;)V
         4: .line 306
            goto 7
      StackMap locals: android.media.midi.MidiManager android.bluetooth.BluetoothDevice android.media.midi.MidiManager$OnDeviceOpenedListener android.os.Handler android.media.midi.MidiManager$OnDeviceOpenedListener android.os.Handler android.media.midi.IMidiDeviceOpenCallback
      StackMap stack: android.os.RemoteException
         5: astore 7 /* e */
        start local 7 // android.os.RemoteException e
         6: .line 307
            aload 7 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 7 // android.os.RemoteException e
         7: .line 309
      StackMap locals:
      StackMap stack:
            return
        end local 6 // android.media.midi.IMidiDeviceOpenCallback callback
        end local 5 // android.os.Handler handlerF
        end local 4 // android.media.midi.MidiManager$OnDeviceOpenedListener listenerF
        end local 3 // android.os.Handler handler
        end local 2 // android.media.midi.MidiManager$OnDeviceOpenedListener listener
        end local 1 // android.bluetooth.BluetoothDevice bluetoothDevice
        end local 0 // android.media.midi.MidiManager this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Landroid/media/midi/MidiManager;
            0    8     1  bluetoothDevice  Landroid/bluetooth/BluetoothDevice;
            0    8     2         listener  Landroid/media/midi/MidiManager$OnDeviceOpenedListener;
            0    8     3          handler  Landroid/os/Handler;
            1    8     4        listenerF  Landroid/media/midi/MidiManager$OnDeviceOpenedListener;
            2    8     5         handlerF  Landroid/os/Handler;
            3    8     6         callback  Landroid/media/midi/IMidiDeviceOpenCallback;
            6    7     7                e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           3     4       5  Class android.os.RemoteException
    MethodParameters:
                 Name  Flags
      bluetoothDevice  
      listener         
      handler          

  public android.media.midi.MidiDeviceServer createDeviceServer(android.media.midi.MidiReceiver[], int, java.lang.String[], java.lang.String[], android.os.Bundle, int, android.media.midi.MidiDeviceServer$Callback);
    descriptor: ([Landroid/media/midi/MidiReceiver;I[Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;ILandroid/media/midi/MidiDeviceServer$Callback;)Landroid/media/midi/MidiDeviceServer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=10, args_size=8
        start local 0 // android.media.midi.MidiManager this
        start local 1 // android.media.midi.MidiReceiver[] inputPortReceivers
        start local 2 // int numOutputPorts
        start local 3 // java.lang.String[] inputPortNames
        start local 4 // java.lang.String[] outputPortNames
        start local 5 // android.os.Bundle properties
        start local 6 // int type
        start local 7 // android.media.midi.MidiDeviceServer$Callback callback
         0: .line 316
            new android.media.midi.MidiDeviceServer
            dup
            aload 0 /* this */
            getfield android.media.midi.MidiManager.mService:Landroid/media/midi/IMidiManager;
            aload 1 /* inputPortReceivers */
         1: .line 317
            iload 2 /* numOutputPorts */
            aload 7 /* callback */
         2: .line 316
            invokespecial android.media.midi.MidiDeviceServer.<init>:(Landroid/media/midi/IMidiManager;[Landroid/media/midi/MidiReceiver;ILandroid/media/midi/MidiDeviceServer$Callback;)V
            astore 8 /* server */
        start local 8 // android.media.midi.MidiDeviceServer server
         3: .line 318
            aload 0 /* this */
            getfield android.media.midi.MidiManager.mService:Landroid/media/midi/IMidiManager;
            aload 8 /* server */
            invokevirtual android.media.midi.MidiDeviceServer.getBinderInterface:()Landroid/media/midi/IMidiDeviceServer;
         4: .line 319
            aload 1 /* inputPortReceivers */
            arraylength
            iload 2 /* numOutputPorts */
            aload 3 /* inputPortNames */
            aload 4 /* outputPortNames */
         5: .line 320
            aload 5 /* properties */
            iload 6 /* type */
         6: .line 318
            invokeinterface android.media.midi.IMidiManager.registerDeviceServer:(Landroid/media/midi/IMidiDeviceServer;II[Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;I)Landroid/media/midi/MidiDeviceInfo;
            astore 9 /* deviceInfo */
        start local 9 // android.media.midi.MidiDeviceInfo deviceInfo
         7: .line 321
            aload 9 /* deviceInfo */
            ifnonnull 10
         8: .line 322
            ldc "MidiManager"
            ldc "registerVirtualDevice failed"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         9: .line 323
            aconst_null
            areturn
        10: .line 325
      StackMap locals: android.media.midi.MidiDeviceServer android.media.midi.MidiDeviceInfo
      StackMap stack:
            aload 8 /* server */
        11: areturn
        end local 9 // android.media.midi.MidiDeviceInfo deviceInfo
        end local 8 // android.media.midi.MidiDeviceServer server
        12: .line 326
      StackMap locals: android.media.midi.MidiManager android.media.midi.MidiReceiver[] int java.lang.String[] java.lang.String[] android.os.Bundle int android.media.midi.MidiDeviceServer$Callback
      StackMap stack: android.os.RemoteException
            astore 8 /* e */
        start local 8 // android.os.RemoteException e
        13: .line 327
            aload 8 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 8 // android.os.RemoteException e
        end local 7 // android.media.midi.MidiDeviceServer$Callback callback
        end local 6 // int type
        end local 5 // android.os.Bundle properties
        end local 4 // java.lang.String[] outputPortNames
        end local 3 // java.lang.String[] inputPortNames
        end local 2 // int numOutputPorts
        end local 1 // android.media.midi.MidiReceiver[] inputPortReceivers
        end local 0 // android.media.midi.MidiManager this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   14     0                this  Landroid/media/midi/MidiManager;
            0   14     1  inputPortReceivers  [Landroid/media/midi/MidiReceiver;
            0   14     2      numOutputPorts  I
            0   14     3      inputPortNames  [Ljava/lang/String;
            0   14     4     outputPortNames  [Ljava/lang/String;
            0   14     5          properties  Landroid/os/Bundle;
            0   14     6                type  I
            0   14     7            callback  Landroid/media/midi/MidiDeviceServer$Callback;
            3   12     8              server  Landroid/media/midi/MidiDeviceServer;
            7   12     9          deviceInfo  Landroid/media/midi/MidiDeviceInfo;
           13   14     8                   e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     9      12  Class android.os.RemoteException
          10    11      12  Class android.os.RemoteException
    MethodParameters:
                    Name  Flags
      inputPortReceivers  
      numOutputPorts      
      inputPortNames      
      outputPortNames     
      properties          
      type                
      callback            
}
SourceFile: "MidiManager.java"
NestMembers:
  android.media.midi.MidiManager$1  android.media.midi.MidiManager$2  android.media.midi.MidiManager$3  android.media.midi.MidiManager$DeviceCallback  android.media.midi.MidiManager$DeviceListener  android.media.midi.MidiManager$DeviceListener$1  android.media.midi.MidiManager$DeviceListener$2  android.media.midi.MidiManager$DeviceListener$3  android.media.midi.MidiManager$OnDeviceOpenedListener
InnerClasses:
  public abstract Callback = android.media.midi.MidiDeviceServer$Callback of android.media.midi.MidiDeviceServer
  android.media.midi.MidiManager$1
  android.media.midi.MidiManager$2
  android.media.midi.MidiManager$3
  public DeviceCallback = android.media.midi.MidiManager$DeviceCallback of android.media.midi.MidiManager
  private DeviceListener = android.media.midi.MidiManager$DeviceListener of android.media.midi.MidiManager
  public abstract OnDeviceOpenedListener = android.media.midi.MidiManager$OnDeviceOpenedListener of android.media.midi.MidiManager