class android.media.audiofx.Visualizer$NativeEventHandler extends android.os.Handler
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: android.media.audiofx.Visualizer$NativeEventHandler
  super_class: android.os.Handler
{
  private android.media.audiofx.Visualizer mVisualizer;
    descriptor: Landroid/media/audiofx/Visualizer;
    flags: (0x0002) ACC_PRIVATE

  final android.media.audiofx.Visualizer this$0;
    descriptor: Landroid/media/audiofx/Visualizer;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(android.media.audiofx.Visualizer, android.media.audiofx.Visualizer, android.os.Looper);
    descriptor: (Landroid/media/audiofx/Visualizer;Landroid/media/audiofx/Visualizer;Landroid/os/Looper;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // android.media.audiofx.Visualizer$NativeEventHandler this
        start local 2 // android.media.audiofx.Visualizer v
        start local 3 // android.os.Looper looper
         0: .line 670
            aload 0 /* this */
            aload 1
            putfield android.media.audiofx.Visualizer$NativeEventHandler.this$0:Landroid/media/audiofx/Visualizer;
         1: .line 671
            aload 0 /* this */
            aload 3 /* looper */
            invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
         2: .line 672
            aload 0 /* this */
            aload 2 /* v */
            putfield android.media.audiofx.Visualizer$NativeEventHandler.mVisualizer:Landroid/media/audiofx/Visualizer;
         3: .line 673
            return
        end local 3 // android.os.Looper looper
        end local 2 // android.media.audiofx.Visualizer v
        end local 0 // android.media.audiofx.Visualizer$NativeEventHandler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Landroid/media/audiofx/Visualizer$NativeEventHandler;
            0    4     2       v  Landroid/media/audiofx/Visualizer;
            0    4     3  looper  Landroid/os/Looper;
    MethodParameters:
        Name  Flags
      this$0  final
      v       
      looper  

  private void handleCaptureMessage(android.os.Message);
    descriptor: (Landroid/os/Message;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // android.media.audiofx.Visualizer$NativeEventHandler this
        start local 1 // android.os.Message msg
         0: .line 676
            aconst_null
            astore 2 /* l */
        start local 2 // android.media.audiofx.Visualizer$OnDataCaptureListener l
         1: .line 677
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer$NativeEventHandler.this$0:Landroid/media/audiofx/Visualizer;
            getfield android.media.audiofx.Visualizer.mListenerLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         2: .line 678
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer$NativeEventHandler.mVisualizer:Landroid/media/audiofx/Visualizer;
            getfield android.media.audiofx.Visualizer.mCaptureListener:Landroid/media/audiofx/Visualizer$OnDataCaptureListener;
            astore 2 /* l */
         3: .line 677
            aload 3
            monitorexit
         4: goto 7
      StackMap locals: android.media.audiofx.Visualizer$NativeEventHandler android.os.Message android.media.audiofx.Visualizer$OnDataCaptureListener java.lang.Object
      StackMap stack: java.lang.Throwable
         5: aload 3
            monitorexit
         6: athrow
         7: .line 681
      StackMap locals:
      StackMap stack:
            aload 2 /* l */
            ifnull 16
         8: .line 682
            aload 1 /* msg */
            getfield android.os.Message.obj:Ljava/lang/Object;
            checkcast byte[]
            astore 3 /* data */
        start local 3 // byte[] data
         9: .line 683
            aload 1 /* msg */
            getfield android.os.Message.arg1:I
            istore 4 /* samplingRate */
        start local 4 // int samplingRate
        10: .line 685
            aload 1 /* msg */
            getfield android.os.Message.what:I
            tableswitch { // 0 - 1
                    0: 11
                    1: 13
              default: 15
          }
        11: .line 687
      StackMap locals: byte[] int
      StackMap stack:
            aload 2 /* l */
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer$NativeEventHandler.mVisualizer:Landroid/media/audiofx/Visualizer;
            aload 3 /* data */
            iload 4 /* samplingRate */
            invokeinterface android.media.audiofx.Visualizer$OnDataCaptureListener.onWaveFormDataCapture:(Landroid/media/audiofx/Visualizer;[BI)V
        12: .line 688
            goto 16
        13: .line 690
      StackMap locals:
      StackMap stack:
            aload 2 /* l */
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer$NativeEventHandler.mVisualizer:Landroid/media/audiofx/Visualizer;
            aload 3 /* data */
            iload 4 /* samplingRate */
            invokeinterface android.media.audiofx.Visualizer$OnDataCaptureListener.onFftDataCapture:(Landroid/media/audiofx/Visualizer;[BI)V
        14: .line 691
            goto 16
        15: .line 693
      StackMap locals:
      StackMap stack:
            ldc "Visualizer-JAVA"
            new java.lang.StringBuilder
            dup
            ldc "Unknown native event in handleCaptureMessge: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* msg */
            getfield android.os.Message.what:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 4 // int samplingRate
        end local 3 // byte[] data
        16: .line 697
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.media.audiofx.Visualizer$OnDataCaptureListener l
        end local 1 // android.os.Message msg
        end local 0 // android.media.audiofx.Visualizer$NativeEventHandler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0          this  Landroid/media/audiofx/Visualizer$NativeEventHandler;
            0   17     1           msg  Landroid/os/Message;
            1   17     2             l  Landroid/media/audiofx/Visualizer$OnDataCaptureListener;
            9   16     3          data  [B
           10   16     4  samplingRate  I
      Exception table:
        from    to  target  type
           2     4       5  any
           5     6       5  any
    MethodParameters:
      Name  Flags
      msg   

  private void handleServerDiedMessage(android.os.Message);
    descriptor: (Landroid/os/Message;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.media.audiofx.Visualizer$NativeEventHandler this
        start local 1 // android.os.Message msg
         0: .line 700
            aconst_null
            astore 2 /* l */
        start local 2 // android.media.audiofx.Visualizer$OnServerDiedListener l
         1: .line 701
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer$NativeEventHandler.this$0:Landroid/media/audiofx/Visualizer;
            getfield android.media.audiofx.Visualizer.mListenerLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         2: .line 702
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer$NativeEventHandler.mVisualizer:Landroid/media/audiofx/Visualizer;
            getfield android.media.audiofx.Visualizer.mServerDiedListener:Landroid/media/audiofx/Visualizer$OnServerDiedListener;
            astore 2 /* l */
         3: .line 701
            aload 3
            monitorexit
         4: goto 7
      StackMap locals: android.media.audiofx.Visualizer$NativeEventHandler android.os.Message android.media.audiofx.Visualizer$OnServerDiedListener java.lang.Object
      StackMap stack: java.lang.Throwable
         5: aload 3
            monitorexit
         6: athrow
         7: .line 705
      StackMap locals:
      StackMap stack:
            aload 2 /* l */
            ifnull 9
         8: .line 706
            aload 2 /* l */
            invokeinterface android.media.audiofx.Visualizer$OnServerDiedListener.onServerDied:()V
         9: .line 707
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.media.audiofx.Visualizer$OnServerDiedListener l
        end local 1 // android.os.Message msg
        end local 0 // android.media.audiofx.Visualizer$NativeEventHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Landroid/media/audiofx/Visualizer$NativeEventHandler;
            0   10     1   msg  Landroid/os/Message;
            1   10     2     l  Landroid/media/audiofx/Visualizer$OnServerDiedListener;
      Exception table:
        from    to  target  type
           2     4       5  any
           5     6       5  any
    MethodParameters:
      Name  Flags
      msg   

  public void handleMessage(android.os.Message);
    descriptor: (Landroid/os/Message;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.media.audiofx.Visualizer$NativeEventHandler this
        start local 1 // android.os.Message msg
         0: .line 711
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer$NativeEventHandler.mVisualizer:Landroid/media/audiofx/Visualizer;
            ifnonnull 2
         1: .line 712
            return
         2: .line 715
      StackMap locals:
      StackMap stack:
            aload 1 /* msg */
            getfield android.os.Message.what:I
            tableswitch { // 0 - 2
                    0: 3
                    1: 3
                    2: 5
              default: 7
          }
         3: .line 718
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* msg */
            invokevirtual android.media.audiofx.Visualizer$NativeEventHandler.handleCaptureMessage:(Landroid/os/Message;)V
         4: .line 719
            goto 8
         5: .line 721
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* msg */
            invokevirtual android.media.audiofx.Visualizer$NativeEventHandler.handleServerDiedMessage:(Landroid/os/Message;)V
         6: .line 722
            goto 8
         7: .line 724
      StackMap locals:
      StackMap stack:
            ldc "Visualizer-JAVA"
            new java.lang.StringBuilder
            dup
            ldc "Unknown native event: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* msg */
            getfield android.os.Message.what:I
            invokevirtual java.lang.StringBuilder.append:(I)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 727
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.os.Message msg
        end local 0 // android.media.audiofx.Visualizer$NativeEventHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Landroid/media/audiofx/Visualizer$NativeEventHandler;
            0    9     1   msg  Landroid/os/Message;
    MethodParameters:
      Name  Flags
      msg   
}
SourceFile: "Visualizer.java"
NestHost: android.media.audiofx.Visualizer
InnerClasses:
  private NativeEventHandler = android.media.audiofx.Visualizer$NativeEventHandler of android.media.audiofx.Visualizer
  public abstract OnDataCaptureListener = android.media.audiofx.Visualizer$OnDataCaptureListener of android.media.audiofx.Visualizer
  public abstract OnServerDiedListener = android.media.audiofx.Visualizer$OnServerDiedListener of android.media.audiofx.Visualizer