public abstract class android.hardware.hdmi.HdmiClient
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: android.hardware.hdmi.HdmiClient
  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: "HdmiClient"

  final android.hardware.hdmi.IHdmiControlService mService;
    descriptor: Landroid/hardware/hdmi/IHdmiControlService;
    flags: (0x0010) ACC_FINAL

  private android.hardware.hdmi.IHdmiVendorCommandListener mIHdmiVendorCommandListener;
    descriptor: Landroid/hardware/hdmi/IHdmiVendorCommandListener;
    flags: (0x0002) ACC_PRIVATE

  abstract int getDeviceType();
    descriptor: ()I
    flags: (0x0400) ACC_ABSTRACT

  void <init>(android.hardware.hdmi.IHdmiControlService);
    descriptor: (Landroid/hardware/hdmi/IHdmiControlService;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.hardware.hdmi.HdmiClient this
        start local 1 // android.hardware.hdmi.IHdmiControlService service
         0: .line 25
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 26
            aload 0 /* this */
            aload 1 /* service */
            putfield android.hardware.hdmi.HdmiClient.mService:Landroid/hardware/hdmi/IHdmiControlService;
         2: .line 27
            return
        end local 1 // android.hardware.hdmi.IHdmiControlService service
        end local 0 // android.hardware.hdmi.HdmiClient this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Landroid/hardware/hdmi/HdmiClient;
            0    3     1  service  Landroid/hardware/hdmi/IHdmiControlService;
    MethodParameters:
         Name  Flags
      service  

  public android.hardware.hdmi.HdmiDeviceInfo getActiveSource();
    descriptor: ()Landroid/hardware/hdmi/HdmiDeviceInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // android.hardware.hdmi.HdmiClient this
         0: .line 37
            aload 0 /* this */
            getfield android.hardware.hdmi.HdmiClient.mService:Landroid/hardware/hdmi/IHdmiControlService;
            invokeinterface android.hardware.hdmi.IHdmiControlService.getActiveSource:()Landroid/hardware/hdmi/HdmiDeviceInfo;
         1: areturn
         2: .line 38
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 1 /* e */
        start local 1 // android.os.RemoteException e
         3: .line 39
            ldc "HdmiClient"
            ldc "getActiveSource threw exception "
            aload 1 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 1 // android.os.RemoteException e
         4: .line 41
            aconst_null
            areturn
        end local 0 // android.hardware.hdmi.HdmiClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/hardware/hdmi/HdmiClient;
            3    4     1     e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException

  public void sendKeyEvent(int, boolean);
    descriptor: (IZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // android.hardware.hdmi.HdmiClient this
        start local 1 // int keyCode
        start local 2 // boolean isPressed
         0: .line 52
            aload 0 /* this */
            getfield android.hardware.hdmi.HdmiClient.mService:Landroid/hardware/hdmi/IHdmiControlService;
            aload 0 /* this */
            invokevirtual android.hardware.hdmi.HdmiClient.getDeviceType:()I
            iload 1 /* keyCode */
            iload 2 /* isPressed */
            invokeinterface android.hardware.hdmi.IHdmiControlService.sendKeyEvent:(IIZ)V
         1: .line 53
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         3: .line 54
            ldc "HdmiClient"
            ldc "sendKeyEvent threw exception "
            aload 3 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 3 // android.os.RemoteException e
         4: .line 56
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean isPressed
        end local 1 // int keyCode
        end local 0 // android.hardware.hdmi.HdmiClient this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Landroid/hardware/hdmi/HdmiClient;
            0    5     1    keyCode  I
            0    5     2  isPressed  Z
            3    4     3          e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
           Name  Flags
      keyCode    
      isPressed  

  public void sendVendorCommand(int, byte[], boolean);
    descriptor: (I[BZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // android.hardware.hdmi.HdmiClient this
        start local 1 // int targetAddress
        start local 2 // byte[] params
        start local 3 // boolean hasVendorId
         0: .line 69
            aload 0 /* this */
            getfield android.hardware.hdmi.HdmiClient.mService:Landroid/hardware/hdmi/IHdmiControlService;
            aload 0 /* this */
            invokevirtual android.hardware.hdmi.HdmiClient.getDeviceType:()I
            iload 1 /* targetAddress */
            aload 2 /* params */
            iload 3 /* hasVendorId */
            invokeinterface android.hardware.hdmi.IHdmiControlService.sendVendorCommand:(II[BZ)V
         1: .line 70
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 4 /* e */
        start local 4 // android.os.RemoteException e
         3: .line 71
            ldc "HdmiClient"
            ldc "failed to send vendor command: "
            aload 4 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 4 // android.os.RemoteException e
         4: .line 73
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean hasVendorId
        end local 2 // byte[] params
        end local 1 // int targetAddress
        end local 0 // android.hardware.hdmi.HdmiClient this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Landroid/hardware/hdmi/HdmiClient;
            0    5     1  targetAddress  I
            0    5     2         params  [B
            0    5     3    hasVendorId  Z
            3    4     4              e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
               Name  Flags
      targetAddress  
      params         
      hasVendorId    

  public void setVendorCommandListener(android.hardware.hdmi.HdmiControlManager$VendorCommandListener);
    descriptor: (Landroid/hardware/hdmi/HdmiControlManager$VendorCommandListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.hardware.hdmi.HdmiClient this
        start local 1 // android.hardware.hdmi.HdmiControlManager$VendorCommandListener listener
         0: .line 81
            aload 1 /* listener */
            ifnonnull 2
         1: .line 82
            new java.lang.IllegalArgumentException
            dup
            ldc "listener cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.hdmi.HdmiClient.mIHdmiVendorCommandListener:Landroid/hardware/hdmi/IHdmiVendorCommandListener;
            ifnull 4
         3: .line 85
            new java.lang.IllegalStateException
            dup
            ldc "listener was already set"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 88
      StackMap locals:
      StackMap stack:
            aload 1 /* listener */
            invokestatic android.hardware.hdmi.HdmiClient.getListenerWrapper:(Landroid/hardware/hdmi/HdmiControlManager$VendorCommandListener;)Landroid/hardware/hdmi/IHdmiVendorCommandListener;
            astore 2 /* wrappedListener */
        start local 2 // android.hardware.hdmi.IHdmiVendorCommandListener wrappedListener
         5: .line 89
            aload 0 /* this */
            getfield android.hardware.hdmi.HdmiClient.mService:Landroid/hardware/hdmi/IHdmiControlService;
            aload 2 /* wrappedListener */
            aload 0 /* this */
            invokevirtual android.hardware.hdmi.HdmiClient.getDeviceType:()I
            invokeinterface android.hardware.hdmi.IHdmiControlService.addVendorCommandListener:(Landroid/hardware/hdmi/IHdmiVendorCommandListener;I)V
         6: .line 90
            aload 0 /* this */
            aload 2 /* wrappedListener */
            putfield android.hardware.hdmi.HdmiClient.mIHdmiVendorCommandListener:Landroid/hardware/hdmi/IHdmiVendorCommandListener;
        end local 2 // android.hardware.hdmi.IHdmiVendorCommandListener wrappedListener
         7: .line 91
            goto 10
      StackMap locals:
      StackMap stack: android.os.RemoteException
         8: astore 2 /* e */
        start local 2 // android.os.RemoteException e
         9: .line 92
            ldc "HdmiClient"
            ldc "failed to set vendor command listener: "
            aload 2 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 2 // android.os.RemoteException e
        10: .line 94
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.hardware.hdmi.HdmiControlManager$VendorCommandListener listener
        end local 0 // android.hardware.hdmi.HdmiClient this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Landroid/hardware/hdmi/HdmiClient;
            0   11     1         listener  Landroid/hardware/hdmi/HdmiControlManager$VendorCommandListener;
            5    7     2  wrappedListener  Landroid/hardware/hdmi/IHdmiVendorCommandListener;
            9   10     2                e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           4     7       8  Class android.os.RemoteException
    MethodParameters:
          Name  Flags
      listener  

  private static android.hardware.hdmi.IHdmiVendorCommandListener getListenerWrapper(android.hardware.hdmi.HdmiControlManager$VendorCommandListener);
    descriptor: (Landroid/hardware/hdmi/HdmiControlManager$VendorCommandListener;)Landroid/hardware/hdmi/IHdmiVendorCommandListener;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.hardware.hdmi.HdmiControlManager$VendorCommandListener listener
         0: .line 98
            new android.hardware.hdmi.HdmiClient$1
            dup
            aload 0 /* listener */
            invokespecial android.hardware.hdmi.HdmiClient$1.<init>:(Landroid/hardware/hdmi/HdmiControlManager$VendorCommandListener;)V
            areturn
        end local 0 // android.hardware.hdmi.HdmiControlManager$VendorCommandListener listener
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  listener  Landroid/hardware/hdmi/HdmiControlManager$VendorCommandListener;
    MethodParameters:
          Name  Flags
      listener  final
}
SourceFile: "HdmiClient.java"
NestMembers:
  android.hardware.hdmi.HdmiClient$1
InnerClasses:
  android.hardware.hdmi.HdmiClient$1
  public abstract VendorCommandListener = android.hardware.hdmi.HdmiControlManager$VendorCommandListener of android.hardware.hdmi.HdmiControlManager
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()