public abstract class android.media.midi.MidiDeviceService extends android.app.Service
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: android.media.midi.MidiDeviceService
  super_class: android.app.Service
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "MidiDeviceService"

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

  private android.media.midi.IMidiManager mMidiManager;
    descriptor: Landroid/media/midi/IMidiManager;
    flags: (0x0002) ACC_PRIVATE

  private android.media.midi.MidiDeviceServer mServer;
    descriptor: Landroid/media/midi/MidiDeviceServer;
    flags: (0x0002) ACC_PRIVATE

  private android.media.midi.MidiDeviceInfo mDeviceInfo;
    descriptor: Landroid/media/midi/MidiDeviceInfo;
    flags: (0x0002) ACC_PRIVATE

  private final android.media.midi.MidiDeviceServer$Callback mCallback;
    descriptor: Landroid/media/midi/MidiDeviceServer$Callback;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.media.midi.MidiDeviceService this
         0: .line 48
            aload 0 /* this */
            invokespecial android.app.Service.<init>:()V
         1: .line 57
            aload 0 /* this */
            new android.media.midi.MidiDeviceService$1
            dup
            aload 0 /* this */
            invokespecial android.media.midi.MidiDeviceService$1.<init>:(Landroid/media/midi/MidiDeviceService;)V
            putfield android.media.midi.MidiDeviceService.mCallback:Landroid/media/midi/MidiDeviceServer$Callback;
         2: .line 48
            return
        end local 0 // android.media.midi.MidiDeviceService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/media/midi/MidiDeviceService;

  public void onCreate();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // android.media.midi.MidiDeviceService this
         0: .line 71
            aload 0 /* this */
         1: .line 72
            ldc "midi"
            invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
         2: .line 71
            invokestatic android.media.midi.IMidiManager$Stub.asInterface:(Landroid/os/IBinder;)Landroid/media/midi/IMidiManager;
            putfield android.media.midi.MidiDeviceService.mMidiManager:Landroid/media/midi/IMidiManager;
         3: .line 75
            aload 0 /* this */
            getfield android.media.midi.MidiDeviceService.mMidiManager:Landroid/media/midi/IMidiManager;
            aload 0 /* this */
            invokevirtual android.media.midi.MidiDeviceService.getPackageName:()Ljava/lang/String;
         4: .line 76
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         5: .line 75
            invokeinterface android.media.midi.IMidiManager.getServiceDeviceInfo:(Ljava/lang/String;Ljava/lang/String;)Landroid/media/midi/MidiDeviceInfo;
            astore 2 /* deviceInfo */
        start local 2 // android.media.midi.MidiDeviceInfo deviceInfo
         6: .line 77
            aload 2 /* deviceInfo */
            ifnonnull 9
         7: .line 78
            ldc "MidiDeviceService"
            new java.lang.StringBuilder
            dup
            ldc "Could not find MidiDeviceInfo for MidiDeviceService "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         8: .line 79
            return
         9: .line 81
      StackMap locals: android.media.midi.MidiDeviceService top android.media.midi.MidiDeviceInfo
      StackMap stack:
            aload 0 /* this */
            aload 2 /* deviceInfo */
            putfield android.media.midi.MidiDeviceService.mDeviceInfo:Landroid/media/midi/MidiDeviceInfo;
        10: .line 82
            aload 0 /* this */
            invokevirtual android.media.midi.MidiDeviceService.onGetInputPortReceivers:()[Landroid/media/midi/MidiReceiver;
            astore 3 /* inputPortReceivers */
        start local 3 // android.media.midi.MidiReceiver[] inputPortReceivers
        11: .line 83
            aload 3 /* inputPortReceivers */
            ifnonnull 13
        12: .line 84
            iconst_0
            anewarray android.media.midi.MidiReceiver
            astore 3 /* inputPortReceivers */
        13: .line 86
      StackMap locals: android.media.midi.MidiReceiver[]
      StackMap stack:
            new android.media.midi.MidiDeviceServer
            dup
            aload 0 /* this */
            getfield android.media.midi.MidiDeviceService.mMidiManager:Landroid/media/midi/IMidiManager;
            aload 3 /* inputPortReceivers */
            aload 2 /* deviceInfo */
            aload 0 /* this */
            getfield android.media.midi.MidiDeviceService.mCallback:Landroid/media/midi/MidiDeviceServer$Callback;
            invokespecial android.media.midi.MidiDeviceServer.<init>:(Landroid/media/midi/IMidiManager;[Landroid/media/midi/MidiReceiver;Landroid/media/midi/MidiDeviceInfo;Landroid/media/midi/MidiDeviceServer$Callback;)V
            astore 1 /* server */
        end local 3 // android.media.midi.MidiReceiver[] inputPortReceivers
        end local 2 // android.media.midi.MidiDeviceInfo deviceInfo
        start local 1 // android.media.midi.MidiDeviceServer server
        14: .line 87
            goto 18
        end local 1 // android.media.midi.MidiDeviceServer server
      StackMap locals: android.media.midi.MidiDeviceService
      StackMap stack: android.os.RemoteException
        15: pop
        16: .line 88
            ldc "MidiDeviceService"
            ldc "RemoteException in IMidiManager.getServiceDeviceInfo"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        17: .line 89
            aconst_null
            astore 1 /* server */
        start local 1 // android.media.midi.MidiDeviceServer server
        18: .line 91
      StackMap locals: android.media.midi.MidiDeviceServer
      StackMap stack:
            aload 0 /* this */
            aload 1 /* server */
            putfield android.media.midi.MidiDeviceService.mServer:Landroid/media/midi/MidiDeviceServer;
        19: .line 92
            return
        end local 1 // android.media.midi.MidiDeviceServer server
        end local 0 // android.media.midi.MidiDeviceService this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   20     0                this  Landroid/media/midi/MidiDeviceService;
           14   15     1              server  Landroid/media/midi/MidiDeviceServer;
           18   20     1              server  Landroid/media/midi/MidiDeviceServer;
            6   14     2          deviceInfo  Landroid/media/midi/MidiDeviceInfo;
           11   14     3  inputPortReceivers  [Landroid/media/midi/MidiReceiver;
      Exception table:
        from    to  target  type
           3     8      15  Class android.os.RemoteException
           9    14      15  Class android.os.RemoteException

  public abstract android.media.midi.MidiReceiver[] onGetInputPortReceivers();
    descriptor: ()[Landroid/media/midi/MidiReceiver;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public final android.media.midi.MidiReceiver[] getOutputPortReceivers();
    descriptor: ()[Landroid/media/midi/MidiReceiver;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.midi.MidiDeviceService this
         0: .line 109
            aload 0 /* this */
            getfield android.media.midi.MidiDeviceService.mServer:Landroid/media/midi/MidiDeviceServer;
            ifnonnull 2
         1: .line 110
            aconst_null
            areturn
         2: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.midi.MidiDeviceService.mServer:Landroid/media/midi/MidiDeviceServer;
            invokevirtual android.media.midi.MidiDeviceServer.getOutputPortReceivers:()[Landroid/media/midi/MidiReceiver;
            areturn
        end local 0 // android.media.midi.MidiDeviceService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/media/midi/MidiDeviceService;

  public final android.media.midi.MidiDeviceInfo getDeviceInfo();
    descriptor: ()Landroid/media/midi/MidiDeviceInfo;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.midi.MidiDeviceService this
         0: .line 121
            aload 0 /* this */
            getfield android.media.midi.MidiDeviceService.mDeviceInfo:Landroid/media/midi/MidiDeviceInfo;
            areturn
        end local 0 // android.media.midi.MidiDeviceService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/midi/MidiDeviceService;

  public void onDeviceStatusChanged(android.media.midi.MidiDeviceStatus);
    descriptor: (Landroid/media/midi/MidiDeviceStatus;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // android.media.midi.MidiDeviceService this
        start local 1 // android.media.midi.MidiDeviceStatus status
         0: .line 129
            return
        end local 1 // android.media.midi.MidiDeviceStatus status
        end local 0 // android.media.midi.MidiDeviceService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/media/midi/MidiDeviceService;
            0    1     1  status  Landroid/media/midi/MidiDeviceStatus;
    MethodParameters:
        Name  Flags
      status  

  public void onClose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // android.media.midi.MidiDeviceService this
         0: .line 135
            return
        end local 0 // android.media.midi.MidiDeviceService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/midi/MidiDeviceService;

  public android.os.IBinder onBind(android.content.Intent);
    descriptor: (Landroid/content/Intent;)Landroid/os/IBinder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.midi.MidiDeviceService this
        start local 1 // android.content.Intent intent
         0: .line 139
            ldc "android.media.midi.MidiDeviceService"
            aload 1 /* intent */
            invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
            aload 0 /* this */
            getfield android.media.midi.MidiDeviceService.mServer:Landroid/media/midi/MidiDeviceServer;
            ifnull 2
         1: .line 140
            aload 0 /* this */
            getfield android.media.midi.MidiDeviceService.mServer:Landroid/media/midi/MidiDeviceServer;
            invokevirtual android.media.midi.MidiDeviceServer.getBinderInterface:()Landroid/media/midi/IMidiDeviceServer;
            invokeinterface android.media.midi.IMidiDeviceServer.asBinder:()Landroid/os/IBinder;
            areturn
         2: .line 142
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // android.content.Intent intent
        end local 0 // android.media.midi.MidiDeviceService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/media/midi/MidiDeviceService;
            0    3     1  intent  Landroid/content/Intent;
    MethodParameters:
        Name  Flags
      intent  
}
SourceFile: "MidiDeviceService.java"
NestMembers:
  android.media.midi.MidiDeviceService$1
InnerClasses:
  public abstract Stub = android.media.midi.IMidiManager$Stub of android.media.midi.IMidiManager
  public abstract Callback = android.media.midi.MidiDeviceServer$Callback of android.media.midi.MidiDeviceServer
  android.media.midi.MidiDeviceService$1