public class android.media.audiofx.Visualizer
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.media.audiofx.Visualizer
  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: "Visualizer-JAVA"

  public static final int STATE_UNINITIALIZED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int STATE_INITIALIZED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int STATE_ENABLED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int SCALING_MODE_NORMALIZED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int SCALING_MODE_AS_PLAYED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int MEASUREMENT_MODE_NONE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int MEASUREMENT_MODE_PEAK_RMS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int NATIVE_EVENT_PCM_CAPTURE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int NATIVE_EVENT_FFT_CAPTURE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int NATIVE_EVENT_SERVER_DIED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int SUCCESS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int ERROR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  public static final int ALREADY_EXISTS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2

  public static final int ERROR_NO_INIT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -3

  public static final int ERROR_BAD_VALUE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -4

  public static final int ERROR_INVALID_OPERATION;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -5

  public static final int ERROR_NO_MEMORY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -6

  public static final int ERROR_DEAD_OBJECT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -7

  private int mState;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.Object mStateLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int mId;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.Object mListenerLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private android.media.audiofx.Visualizer$NativeEventHandler mNativeEventHandler;
    descriptor: Landroid/media/audiofx/Visualizer$NativeEventHandler;
    flags: (0x0002) ACC_PRIVATE

  private android.media.audiofx.Visualizer$OnDataCaptureListener mCaptureListener;
    descriptor: Landroid/media/audiofx/Visualizer$OnDataCaptureListener;
    flags: (0x0002) ACC_PRIVATE

  private android.media.audiofx.Visualizer$OnServerDiedListener mServerDiedListener;
    descriptor: Landroid/media/audiofx/Visualizer$OnServerDiedListener;
    flags: (0x0002) ACC_PRIVATE

  private long mNativeVisualizer;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long mJniData;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 70
            ldc "audioeffect_jni"
            invokestatic java.lang.System.loadLibrary:(Ljava/lang/String;)V
         1: .line 71
            invokestatic android.media.audiofx.Visualizer.native_init:()V
         2: .line 151
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // android.media.audiofx.Visualizer this
        start local 1 // int audioSession
         0: .line 203
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 159
            aload 0 /* this */
            iconst_0
            putfield android.media.audiofx.Visualizer.mState:I
         2: .line 163
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.media.audiofx.Visualizer.mStateLock:Ljava/lang/Object;
         3: .line 172
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.media.audiofx.Visualizer.mListenerLock:Ljava/lang/Object;
         4: .line 176
            aload 0 /* this */
            aconst_null
            putfield android.media.audiofx.Visualizer.mNativeEventHandler:Landroid/media/audiofx/Visualizer$NativeEventHandler;
         5: .line 180
            aload 0 /* this */
            aconst_null
            putfield android.media.audiofx.Visualizer.mCaptureListener:Landroid/media/audiofx/Visualizer$OnDataCaptureListener;
         6: .line 184
            aload 0 /* this */
            aconst_null
            putfield android.media.audiofx.Visualizer.mServerDiedListener:Landroid/media/audiofx/Visualizer$OnServerDiedListener;
         7: .line 205
            iconst_1
            newarray 10
            astore 2 /* id */
        start local 2 // int[] id
         8: .line 207
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mStateLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         9: .line 208
            aload 0 /* this */
            iconst_0
            putfield android.media.audiofx.Visualizer.mState:I
        10: .line 210
            aload 0 /* this */
            new java.lang.ref.WeakReference
            dup
            aload 0 /* this */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            iload 1 /* audioSession */
            aload 2 /* id */
        11: .line 211
            invokestatic android.app.ActivityThread.currentOpPackageName:()Ljava/lang/String;
        12: .line 210
            invokevirtual android.media.audiofx.Visualizer.native_setup:(Ljava/lang/Object;I[ILjava/lang/String;)I
            istore 4 /* result */
        start local 4 // int result
        13: .line 212
            iload 4 /* result */
            ifeq 20
            iload 4 /* result */
            bipush -2
            if_icmpeq 20
        14: .line 213
            ldc "Visualizer-JAVA"
            new java.lang.StringBuilder
            dup
            ldc "Error code "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* result */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " when initializing Visualizer."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        15: .line 214
            iload 4 /* result */
            tableswitch { // -5 - -5
                   -5: 16
              default: 17
          }
        16: .line 216
      StackMap locals: android.media.audiofx.Visualizer int int[] java.lang.Object int
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            ldc "Effect library not loaded"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 218
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot initialize Visualizer engine, error: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        18: .line 219
            iload 4 /* result */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 218
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 222
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* id */
            iconst_0
            iaload
            putfield android.media.audiofx.Visualizer.mId:I
        21: .line 223
            aload 0 /* this */
            invokevirtual android.media.audiofx.Visualizer.native_getEnabled:()Z
            ifeq 24
        22: .line 224
            aload 0 /* this */
            iconst_2
            putfield android.media.audiofx.Visualizer.mState:I
        23: .line 225
            goto 25
        24: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.media.audiofx.Visualizer.mState:I
        end local 4 // int result
        25: .line 207
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        26: goto 29
      StackMap locals:
      StackMap stack: java.lang.Throwable
        27: aload 3
            monitorexit
        28: athrow
        29: .line 229
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int[] id
        end local 1 // int audioSession
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   30     0          this  Landroid/media/audiofx/Visualizer;
            0   30     1  audioSession  I
            8   30     2            id  [I
           13   25     4        result  I
      Exception table:
        from    to  target  type
           9    26      27  any
          27    28      27  any
    Exceptions:
      throws java.lang.UnsupportedOperationException, java.lang.RuntimeException
    MethodParameters:
              Name  Flags
      audioSession  

  public void release();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.media.audiofx.Visualizer this
         0: .line 236
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mStateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 237
            aload 0 /* this */
            invokevirtual android.media.audiofx.Visualizer.native_release:()V
         2: .line 238
            aload 0 /* this */
            iconst_0
            putfield android.media.audiofx.Visualizer.mState:I
         3: .line 236
            aload 1
            monitorexit
         4: goto 7
      StackMap locals: android.media.audiofx.Visualizer java.lang.Object
      StackMap stack: java.lang.Throwable
         5: aload 1
            monitorexit
         6: athrow
         7: .line 240
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/media/audiofx/Visualizer;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.audiofx.Visualizer this
         0: .line 244
            aload 0 /* this */
            invokevirtual android.media.audiofx.Visualizer.native_finalize:()V
         1: .line 245
            return
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/audiofx/Visualizer;

  public int setEnabled(boolean);
    descriptor: (Z)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // android.media.audiofx.Visualizer this
        start local 1 // boolean enabled
         0: .line 256
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mStateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 257
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            ifne 3
         2: .line 258
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "setEnabled() called in wrong state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 260
      StackMap locals: java.lang.Object
      StackMap stack:
            iconst_0
            istore 3 /* status */
        start local 3 // int status
         4: .line 261
            iload 1 /* enabled */
            ifeq 5
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            iconst_1
            if_icmpeq 6
         5: .line 262
      StackMap locals: int
      StackMap stack:
            iload 1 /* enabled */
            ifne 11
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            iconst_2
            if_icmpne 11
         6: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* enabled */
            invokevirtual android.media.audiofx.Visualizer.native_setEnabled:(Z)I
            istore 3 /* status */
         7: .line 264
            iload 3 /* status */
            ifne 11
         8: .line 265
            aload 0 /* this */
            iload 1 /* enabled */
            ifeq 9
            iconst_2
            goto 10
      StackMap locals:
      StackMap stack: android.media.audiofx.Visualizer
         9: iconst_1
      StackMap locals: android.media.audiofx.Visualizer int java.lang.Object int
      StackMap stack: android.media.audiofx.Visualizer int
        10: putfield android.media.audiofx.Visualizer.mState:I
        11: .line 268
      StackMap locals:
      StackMap stack:
            iload 3 /* status */
            aload 2
            monitorexit
        12: ireturn
        end local 3 // int status
        13: .line 256
      StackMap locals: android.media.audiofx.Visualizer int java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        14: athrow
        end local 1 // boolean enabled
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Landroid/media/audiofx/Visualizer;
            0   15     1  enabled  Z
            4   13     3   status  I
      Exception table:
        from    to  target  type
           1    12      13  any
          13    14      13  any
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
         Name  Flags
      enabled  

  public boolean getEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // android.media.audiofx.Visualizer this
         0: .line 278
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mStateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 279
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            ifne 3
         2: .line 280
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "getEnabled() called in wrong state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 282
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.media.audiofx.Visualizer.native_getEnabled:()Z
            aload 1
            monitorexit
         4: ireturn
         5: .line 278
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         6: athrow
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/media/audiofx/Visualizer;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  public static native int[] getCaptureSizeRange();
    descriptor: ()[I
    flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE

  public static native int getMaxCaptureRate();
    descriptor: ()I
    flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE

  public int setCaptureSize(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // android.media.audiofx.Visualizer this
        start local 1 // int size
         0: .line 313
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mStateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 314
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            iconst_1
            if_icmpeq 3
         2: .line 315
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "setCaptureSize() called in wrong state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 317
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            iload 1 /* size */
            invokevirtual android.media.audiofx.Visualizer.native_setCaptureSize:(I)I
            aload 2
            monitorexit
         4: ireturn
         5: .line 313
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         6: athrow
        end local 1 // int size
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/media/audiofx/Visualizer;
            0    7     1  size  I
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
      Name  Flags
      size  

  public int getCaptureSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // android.media.audiofx.Visualizer this
         0: .line 327
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mStateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 328
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            ifne 3
         2: .line 329
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "getCaptureSize() called in wrong state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 331
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.media.audiofx.Visualizer.native_getCaptureSize:()I
            aload 1
            monitorexit
         4: ireturn
         5: .line 327
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         6: athrow
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/media/audiofx/Visualizer;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Exceptions:
      throws java.lang.IllegalStateException

  public int setScalingMode(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // android.media.audiofx.Visualizer this
        start local 1 // int mode
         0: .line 345
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mStateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 346
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            ifne 5
         2: .line 347
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "setScalingMode() called in wrong state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 348
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 347
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 350
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            iload 1 /* mode */
            invokevirtual android.media.audiofx.Visualizer.native_setScalingMode:(I)I
            aload 2
            monitorexit
         6: ireturn
         7: .line 345
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         8: athrow
        end local 1 // int mode
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Landroid/media/audiofx/Visualizer;
            0    9     1  mode  I
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
      Name  Flags
      mode  

  public int getScalingMode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // android.media.audiofx.Visualizer this
         0: .line 362
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mStateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 363
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            ifne 5
         2: .line 364
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "getScalingMode() called in wrong state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 365
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 364
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 367
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.media.audiofx.Visualizer.native_getScalingMode:()I
            aload 1
            monitorexit
         6: ireturn
         7: .line 362
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         8: athrow
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Landroid/media/audiofx/Visualizer;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    Exceptions:
      throws java.lang.IllegalStateException

  public int setMeasurementMode(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // android.media.audiofx.Visualizer this
        start local 1 // int mode
         0: .line 381
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mStateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 382
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            ifne 5
         2: .line 383
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "setMeasurementMode() called in wrong state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 384
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 383
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 386
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            iload 1 /* mode */
            invokevirtual android.media.audiofx.Visualizer.native_setMeasurementMode:(I)I
            aload 2
            monitorexit
         6: ireturn
         7: .line 381
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         8: athrow
        end local 1 // int mode
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Landroid/media/audiofx/Visualizer;
            0    9     1  mode  I
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
      Name  Flags
      mode  

  public int getMeasurementMode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // android.media.audiofx.Visualizer this
         0: .line 399
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mStateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 400
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            ifne 5
         2: .line 401
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "getMeasurementMode() called in wrong state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 402
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 401
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 404
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.media.audiofx.Visualizer.native_getMeasurementMode:()I
            aload 1
            monitorexit
         6: ireturn
         7: .line 399
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         8: athrow
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Landroid/media/audiofx/Visualizer;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    Exceptions:
      throws java.lang.IllegalStateException

  public int getSamplingRate();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // android.media.audiofx.Visualizer this
         0: .line 414
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mStateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 415
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            ifne 3
         2: .line 416
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "getSamplingRate() called in wrong state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 418
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.media.audiofx.Visualizer.native_getSamplingRate:()I
            aload 1
            monitorexit
         4: ireturn
         5: .line 414
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         6: athrow
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/media/audiofx/Visualizer;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Exceptions:
      throws java.lang.IllegalStateException

  public int getWaveForm(byte[]);
    descriptor: ([B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // android.media.audiofx.Visualizer this
        start local 1 // byte[] waveform
         0: .line 435
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mStateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 436
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            iconst_2
            if_icmpeq 3
         2: .line 437
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "getWaveForm() called in wrong state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 439
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 1 /* waveform */
            invokevirtual android.media.audiofx.Visualizer.native_getWaveForm:([B)I
            aload 2
            monitorexit
         4: ireturn
         5: .line 435
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         6: athrow
        end local 1 // byte[] waveform
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Landroid/media/audiofx/Visualizer;
            0    7     1  waveform  [B
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
          Name  Flags
      waveform  

  public int getFft(byte[]);
    descriptor: ([B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // android.media.audiofx.Visualizer this
        start local 1 // byte[] fft
         0: .line 488
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mStateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 489
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            iconst_2
            if_icmpeq 3
         2: .line 490
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "getFft() called in wrong state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 492
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fft */
            invokevirtual android.media.audiofx.Visualizer.native_getFft:([B)I
            aload 2
            monitorexit
         4: ireturn
         5: .line 488
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         6: athrow
        end local 1 // byte[] fft
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/media/audiofx/Visualizer;
            0    7     1   fft  [B
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
      Name  Flags
      fft   

  public int getMeasurementPeakRms(android.media.audiofx.Visualizer$MeasurementPeakRms);
    descriptor: (Landroid/media/audiofx/Visualizer$MeasurementPeakRms;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // android.media.audiofx.Visualizer this
        start local 1 // android.media.audiofx.Visualizer$MeasurementPeakRms measurement
         0: .line 523
            aload 1 /* measurement */
            ifnonnull 3
         1: .line 524
            ldc "Visualizer-JAVA"
            ldc "Cannot store measurements in a null object"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 525
            bipush -4
            ireturn
         3: .line 527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mStateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 528
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            iconst_2
            if_icmpeq 8
         5: .line 529
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "getMeasurementPeakRms() called in wrong state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 530
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 529
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 532
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 1 /* measurement */
            invokevirtual android.media.audiofx.Visualizer.native_getPeakRms:(Landroid/media/audiofx/Visualizer$MeasurementPeakRms;)I
            aload 2
            monitorexit
         9: ireturn
        10: .line 527
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        11: athrow
        end local 1 // android.media.audiofx.Visualizer$MeasurementPeakRms measurement
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Landroid/media/audiofx/Visualizer;
            0   12     1  measurement  Landroid/media/audiofx/Visualizer$MeasurementPeakRms;
      Exception table:
        from    to  target  type
           4     9      10  any
          10    11      10  any
    MethodParameters:
             Name  Flags
      measurement  

  public int setDataCaptureListener(android.media.audiofx.Visualizer$OnDataCaptureListener, int, boolean, boolean);
    descriptor: (Landroid/media/audiofx/Visualizer$OnDataCaptureListener;IZZ)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // android.media.audiofx.Visualizer this
        start local 1 // android.media.audiofx.Visualizer$OnDataCaptureListener listener
        start local 2 // int rate
        start local 3 // boolean waveform
        start local 4 // boolean fft
         0: .line 601
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mListenerLock:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
         1: .line 602
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.audiofx.Visualizer.mCaptureListener:Landroid/media/audiofx/Visualizer$OnDataCaptureListener;
         2: .line 601
            aload 5
            monitorexit
         3: goto 6
      StackMap locals: android.media.audiofx.Visualizer android.media.audiofx.Visualizer$OnDataCaptureListener int int int java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 5
            monitorexit
         5: athrow
         6: .line 604
      StackMap locals:
      StackMap stack:
            aload 1 /* listener */
            ifnonnull 9
         7: .line 606
            iconst_0
            istore 3 /* waveform */
         8: .line 607
            iconst_0
            istore 4 /* fft */
         9: .line 609
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* rate */
            iload 3 /* waveform */
            iload 4 /* fft */
            invokevirtual android.media.audiofx.Visualizer.native_setPeriodicCapture:(IZZ)I
            istore 5 /* status */
        start local 5 // int status
        10: .line 610
            iload 5 /* status */
            ifne 21
        11: .line 611
            aload 1 /* listener */
            ifnull 21
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mNativeEventHandler:Landroid/media/audiofx/Visualizer$NativeEventHandler;
            ifnonnull 21
        12: .line 613
            invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
            dup
            astore 6 /* looper */
        start local 6 // android.os.Looper looper
        13: ifnull 16
        14: .line 614
            aload 0 /* this */
            new android.media.audiofx.Visualizer$NativeEventHandler
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* looper */
            invokespecial android.media.audiofx.Visualizer$NativeEventHandler.<init>:(Landroid/media/audiofx/Visualizer;Landroid/media/audiofx/Visualizer;Landroid/os/Looper;)V
            putfield android.media.audiofx.Visualizer.mNativeEventHandler:Landroid/media/audiofx/Visualizer$NativeEventHandler;
        15: .line 615
            goto 21
      StackMap locals: int android.os.Looper
      StackMap stack:
        16: invokestatic android.os.Looper.getMainLooper:()Landroid/os/Looper;
            dup
            astore 6 /* looper */
            ifnull 19
        17: .line 616
            aload 0 /* this */
            new android.media.audiofx.Visualizer$NativeEventHandler
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* looper */
            invokespecial android.media.audiofx.Visualizer$NativeEventHandler.<init>:(Landroid/media/audiofx/Visualizer;Landroid/media/audiofx/Visualizer;Landroid/os/Looper;)V
            putfield android.media.audiofx.Visualizer.mNativeEventHandler:Landroid/media/audiofx/Visualizer$NativeEventHandler;
        18: .line 617
            goto 21
        19: .line 618
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.media.audiofx.Visualizer.mNativeEventHandler:Landroid/media/audiofx/Visualizer$NativeEventHandler;
        20: .line 619
            bipush -3
            istore 5 /* status */
        end local 6 // android.os.Looper looper
        21: .line 623
      StackMap locals:
      StackMap stack:
            iload 5 /* status */
            ireturn
        end local 5 // int status
        end local 4 // boolean fft
        end local 3 // boolean waveform
        end local 2 // int rate
        end local 1 // android.media.audiofx.Visualizer$OnDataCaptureListener listener
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Landroid/media/audiofx/Visualizer;
            0   22     1  listener  Landroid/media/audiofx/Visualizer$OnDataCaptureListener;
            0   22     2      rate  I
            0   22     3  waveform  Z
            0   22     4       fft  Z
           10   22     5    status  I
           13   21     6    looper  Landroid/os/Looper;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
          Name  Flags
      listener  
      rate      
      waveform  
      fft       

  public int setServerDiedListener(android.media.audiofx.Visualizer$OnServerDiedListener);
    descriptor: (Landroid/media/audiofx/Visualizer$OnServerDiedListener;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.media.audiofx.Visualizer this
        start local 1 // android.media.audiofx.Visualizer$OnServerDiedListener listener
         0: .line 657
            aload 0 /* this */
            getfield android.media.audiofx.Visualizer.mListenerLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 658
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.audiofx.Visualizer.mServerDiedListener:Landroid/media/audiofx/Visualizer$OnServerDiedListener;
         2: .line 657
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: android.media.audiofx.Visualizer android.media.audiofx.Visualizer$OnServerDiedListener java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 660
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // android.media.audiofx.Visualizer$OnServerDiedListener listener
        end local 0 // android.media.audiofx.Visualizer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Landroid/media/audiofx/Visualizer;
            0    7     1  listener  Landroid/media/audiofx/Visualizer$OnServerDiedListener;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
          Name  Flags
      listener  

  private static final native void native_init();
    descriptor: ()V
    flags: (0x011a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_NATIVE

  private final native int native_setup(java.lang.Object, int, int[], java.lang.String);
    descriptor: (Ljava/lang/Object;I[ILjava/lang/String;)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
                  Name  Flags
      audioeffect_this  
      audioSession      
      id                
      opPackageName     

  private final native void native_finalize();
    descriptor: ()V
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE

  private final native void native_release();
    descriptor: ()V
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE

  private final native int native_setEnabled(boolean);
    descriptor: (Z)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
         Name  Flags
      enabled  

  private final native boolean native_getEnabled();
    descriptor: ()Z
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE

  private final native int native_setCaptureSize(int);
    descriptor: (I)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
      Name  Flags
      size  

  private final native int native_getCaptureSize();
    descriptor: ()I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE

  private final native int native_setScalingMode(int);
    descriptor: (I)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
      Name  Flags
      mode  

  private final native int native_getScalingMode();
    descriptor: ()I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE

  private final native int native_setMeasurementMode(int);
    descriptor: (I)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
      Name  Flags
      mode  

  private final native int native_getMeasurementMode();
    descriptor: ()I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE

  private final native int native_getSamplingRate();
    descriptor: ()I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE

  private final native int native_getWaveForm(byte[]);
    descriptor: ([B)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
          Name  Flags
      waveform  

  private final native int native_getFft(byte[]);
    descriptor: ([B)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
      Name  Flags
      fft   

  private final native int native_getPeakRms(android.media.audiofx.Visualizer$MeasurementPeakRms);
    descriptor: (Landroid/media/audiofx/Visualizer$MeasurementPeakRms;)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
             Name  Flags
      measurement  

  private final native int native_setPeriodicCapture(int, boolean, boolean);
    descriptor: (IZZ)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
          Name  Flags
      rate      
      waveForm  
      fft       

  private static void postEventFromNative(java.lang.Object, int, int, int, java.lang.Object);
    descriptor: (Ljava/lang/Object;IIILjava/lang/Object;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // java.lang.Object effect_ref
        start local 1 // int what
        start local 2 // int arg1
        start local 3 // int arg2
        start local 4 // java.lang.Object obj
         0: .line 777
            aload 0 /* effect_ref */
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast android.media.audiofx.Visualizer
            astore 5 /* visu */
        start local 5 // android.media.audiofx.Visualizer visu
         1: .line 778
            aload 5 /* visu */
            ifnonnull 3
         2: .line 779
            return
         3: .line 782
      StackMap locals: android.media.audiofx.Visualizer
      StackMap stack:
            aload 5 /* visu */
            getfield android.media.audiofx.Visualizer.mNativeEventHandler:Landroid/media/audiofx/Visualizer$NativeEventHandler;
            ifnull 6
         4: .line 783
            aload 5 /* visu */
            getfield android.media.audiofx.Visualizer.mNativeEventHandler:Landroid/media/audiofx/Visualizer$NativeEventHandler;
            iload 1 /* what */
            iload 2 /* arg1 */
            iload 3 /* arg2 */
            aload 4 /* obj */
            invokevirtual android.media.audiofx.Visualizer$NativeEventHandler.obtainMessage:(IIILjava/lang/Object;)Landroid/os/Message;
            astore 6 /* m */
        start local 6 // android.os.Message m
         5: .line 784
            aload 5 /* visu */
            getfield android.media.audiofx.Visualizer.mNativeEventHandler:Landroid/media/audiofx/Visualizer$NativeEventHandler;
            aload 6 /* m */
            invokevirtual android.media.audiofx.Visualizer$NativeEventHandler.sendMessage:(Landroid/os/Message;)Z
            pop
        end local 6 // android.os.Message m
         6: .line 787
      StackMap locals:
      StackMap stack:
            return
        end local 5 // android.media.audiofx.Visualizer visu
        end local 4 // java.lang.Object obj
        end local 3 // int arg2
        end local 2 // int arg1
        end local 1 // int what
        end local 0 // java.lang.Object effect_ref
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0  effect_ref  Ljava/lang/Object;
            0    7     1        what  I
            0    7     2        arg1  I
            0    7     3        arg2  I
            0    7     4         obj  Ljava/lang/Object;
            1    7     5        visu  Landroid/media/audiofx/Visualizer;
            5    6     6           m  Landroid/os/Message;
    MethodParameters:
            Name  Flags
      effect_ref  
      what        
      arg1        
      arg2        
      obj         
}
SourceFile: "Visualizer.java"
NestMembers:
  android.media.audiofx.Visualizer$MeasurementPeakRms  android.media.audiofx.Visualizer$NativeEventHandler  android.media.audiofx.Visualizer$OnDataCaptureListener  android.media.audiofx.Visualizer$OnServerDiedListener
InnerClasses:
  public final MeasurementPeakRms = android.media.audiofx.Visualizer$MeasurementPeakRms of android.media.audiofx.Visualizer
  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