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

  public static final java.util.UUID EFFECT_TYPE_ENV_REVERB;
    descriptor: Ljava/util/UUID;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.util.UUID EFFECT_TYPE_PRESET_REVERB;
    descriptor: Ljava/util/UUID;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.util.UUID EFFECT_TYPE_EQUALIZER;
    descriptor: Ljava/util/UUID;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.util.UUID EFFECT_TYPE_BASS_BOOST;
    descriptor: Ljava/util/UUID;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.util.UUID EFFECT_TYPE_VIRTUALIZER;
    descriptor: Ljava/util/UUID;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.util.UUID EFFECT_TYPE_AGC;
    descriptor: Ljava/util/UUID;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.util.UUID EFFECT_TYPE_AEC;
    descriptor: Ljava/util/UUID;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.util.UUID EFFECT_TYPE_NS;
    descriptor: Ljava/util/UUID;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.util.UUID EFFECT_TYPE_LOUDNESS_ENHANCER;
    descriptor: Ljava/util/UUID;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.util.UUID EFFECT_TYPE_DYNAMICS_PROCESSING;
    descriptor: Ljava/util/UUID;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.util.UUID EFFECT_TYPE_NULL;
    descriptor: Ljava/util/UUID;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  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 NATIVE_EVENT_CONTROL_STATUS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

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

  public static final int NATIVE_EVENT_PARAMETER_CHANGED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, 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

  public static final java.lang.String EFFECT_INSERT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "Insert"

  public static final java.lang.String EFFECT_AUXILIARY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "Auxiliary"

  public static final java.lang.String EFFECT_PRE_PROCESSING;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "Pre Processing"

  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 long mNativeAudioEffect;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

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

  private android.media.audiofx.AudioEffect$Descriptor mDescriptor;
    descriptor: Landroid/media/audiofx/AudioEffect$Descriptor;
    flags: (0x0002) ACC_PRIVATE

  private android.media.audiofx.AudioEffect$OnEnableStatusChangeListener mEnableStatusChangeListener;
    descriptor: Landroid/media/audiofx/AudioEffect$OnEnableStatusChangeListener;
    flags: (0x0002) ACC_PRIVATE

  private android.media.audiofx.AudioEffect$OnControlStatusChangeListener mControlChangeStatusListener;
    descriptor: Landroid/media/audiofx/AudioEffect$OnControlStatusChangeListener;
    flags: (0x0002) ACC_PRIVATE

  private android.media.audiofx.AudioEffect$OnParameterChangeListener mParameterChangeListener;
    descriptor: Landroid/media/audiofx/AudioEffect$OnParameterChangeListener;
    flags: (0x0002) ACC_PRIVATE

  public final java.lang.Object mListenerLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public android.media.audiofx.AudioEffect$NativeEventHandler mNativeEventHandler;
    descriptor: Landroid/media/audiofx/AudioEffect$NativeEventHandler;
    flags: (0x0001) ACC_PUBLIC

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

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

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

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

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

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

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

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 63
            ldc "audioeffect_jni"
            invokestatic java.lang.System.loadLibrary:(Ljava/lang/String;)V
         1: .line 64
            invokestatic android.media.audiofx.AudioEffect.native_init:()V
         2: .line 81
            ldc "c2e5d5f0-94bd-4763-9cac-4e234d06839e"
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
         3: .line 80
            putstatic android.media.audiofx.AudioEffect.EFFECT_TYPE_ENV_REVERB:Ljava/util/UUID;
         4: .line 86
            ldc "47382d60-ddd8-11db-bf3a-0002a5d5c51b"
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
         5: .line 85
            putstatic android.media.audiofx.AudioEffect.EFFECT_TYPE_PRESET_REVERB:Ljava/util/UUID;
         6: .line 91
            ldc "0bed4300-ddd6-11db-8f34-0002a5d5c51b"
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
         7: .line 90
            putstatic android.media.audiofx.AudioEffect.EFFECT_TYPE_EQUALIZER:Ljava/util/UUID;
         8: .line 96
            ldc "0634f220-ddd4-11db-a0fc-0002a5d5c51b"
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
         9: .line 95
            putstatic android.media.audiofx.AudioEffect.EFFECT_TYPE_BASS_BOOST:Ljava/util/UUID;
        10: .line 101
            ldc "37cc2c00-dddd-11db-8577-0002a5d5c51b"
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
        11: .line 100
            putstatic android.media.audiofx.AudioEffect.EFFECT_TYPE_VIRTUALIZER:Ljava/util/UUID;
        12: .line 110
            ldc "0a8abfe0-654c-11e0-ba26-0002a5d5c51b"
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
        13: .line 109
            putstatic android.media.audiofx.AudioEffect.EFFECT_TYPE_AGC:Ljava/util/UUID;
        14: .line 116
            ldc "7b491460-8d4d-11e0-bd61-0002a5d5c51b"
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
        15: .line 115
            putstatic android.media.audiofx.AudioEffect.EFFECT_TYPE_AEC:Ljava/util/UUID;
        16: .line 122
            ldc "58b4b260-8e06-11e0-aa8e-0002a5d5c51b"
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
        17: .line 121
            putstatic android.media.audiofx.AudioEffect.EFFECT_TYPE_NS:Ljava/util/UUID;
        18: .line 128
            ldc "fe3199be-aed0-413f-87bb-11260eb63cf1"
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
        19: .line 127
            putstatic android.media.audiofx.AudioEffect.EFFECT_TYPE_LOUDNESS_ENHANCER:Ljava/util/UUID;
        20: .line 134
            ldc "7261676f-6d75-7369-6364-28e2fd3ac39e"
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
        21: .line 133
            putstatic android.media.audiofx.AudioEffect.EFFECT_TYPE_DYNAMICS_PROCESSING:Ljava/util/UUID;
        22: .line 142
            ldc "ec7178ec-e5e1-4432-a3f4-4657e6795210"
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
        23: .line 141
            putstatic android.media.audiofx.AudioEffect.EFFECT_TYPE_NULL:Ljava/util/UUID;
        24: .line 1146
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.util.UUID, java.util.UUID, int, int);
    descriptor: (Ljava/util/UUID;Ljava/util/UUID;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=9, args_size=5
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // java.util.UUID type
        start local 2 // java.util.UUID uuid
        start local 3 // int priority
        start local 4 // int audioSession
         0: .line 403
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 319
            aload 0 /* this */
            iconst_0
            putfield android.media.audiofx.AudioEffect.mState:I
         2: .line 323
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.media.audiofx.AudioEffect.mStateLock:Ljava/lang/Object;
         3: .line 343
            aload 0 /* this */
            aconst_null
            putfield android.media.audiofx.AudioEffect.mEnableStatusChangeListener:Landroid/media/audiofx/AudioEffect$OnEnableStatusChangeListener;
         4: .line 349
            aload 0 /* this */
            aconst_null
            putfield android.media.audiofx.AudioEffect.mControlChangeStatusListener:Landroid/media/audiofx/AudioEffect$OnControlStatusChangeListener;
         5: .line 355
            aload 0 /* this */
            aconst_null
            putfield android.media.audiofx.AudioEffect.mParameterChangeListener:Landroid/media/audiofx/AudioEffect$OnParameterChangeListener;
         6: .line 360
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.media.audiofx.AudioEffect.mListenerLock:Ljava/lang/Object;
         7: .line 365
            aload 0 /* this */
            aconst_null
            putfield android.media.audiofx.AudioEffect.mNativeEventHandler:Landroid/media/audiofx/AudioEffect$NativeEventHandler;
         8: .line 406
            iconst_1
            newarray 10
            astore 5 /* id */
        start local 5 // int[] id
         9: .line 407
            iconst_1
            anewarray android.media.audiofx.AudioEffect$Descriptor
            astore 6 /* desc */
        start local 6 // android.media.audiofx.AudioEffect$Descriptor[] desc
        10: .line 409
            aload 0 /* this */
            new java.lang.ref.WeakReference
            dup
            aload 0 /* this */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
        11: .line 410
            aload 1 /* type */
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            aload 2 /* uuid */
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            iload 3 /* priority */
            iload 4 /* audioSession */
            aload 5 /* id */
        12: .line 411
            aload 6 /* desc */
            invokestatic android.app.ActivityThread.currentOpPackageName:()Ljava/lang/String;
        13: .line 409
            invokevirtual android.media.audiofx.AudioEffect.native_setup:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;II[I[Ljava/lang/Object;Ljava/lang/String;)I
            istore 7 /* initResult */
        start local 7 // int initResult
        14: .line 412
            iload 7 /* initResult */
            ifeq 30
            iload 7 /* initResult */
            bipush -2
            if_icmpeq 30
        15: .line 413
            ldc "AudioEffect-JAVA"
            new java.lang.StringBuilder
            dup
            ldc "Error code "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* initResult */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        16: .line 414
            ldc " when initializing AudioEffect."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 413
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        18: .line 415
            iload 7 /* initResult */
            tableswitch { // -5 - -4
                   -5: 22
                   -4: 19
              default: 25
          }
        19: .line 417
      StackMap locals: android.media.audiofx.AudioEffect java.util.UUID java.util.UUID int int int[] android.media.audiofx.AudioEffect$Descriptor[] int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Effect type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        20: .line 418
            ldc " not supported."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 417
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 420
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
        23: .line 421
            ldc "Effect library not loaded"
        24: .line 420
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 423
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
        26: .line 424
            new java.lang.StringBuilder
            dup
            ldc "Cannot initialize effect engine for type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        27: .line 425
            ldc " Error: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* initResult */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        28: .line 424
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 423
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 428
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* id */
            iconst_0
            iaload
            putfield android.media.audiofx.AudioEffect.mId:I
        31: .line 429
            aload 0 /* this */
            aload 6 /* desc */
            iconst_0
            aaload
            putfield android.media.audiofx.AudioEffect.mDescriptor:Landroid/media/audiofx/AudioEffect$Descriptor;
        32: .line 430
            aload 0 /* this */
            getfield android.media.audiofx.AudioEffect.mStateLock:Ljava/lang/Object;
            dup
            astore 8
            monitorenter
        33: .line 431
            aload 0 /* this */
            iconst_1
            putfield android.media.audiofx.AudioEffect.mState:I
        34: .line 430
            aload 8
            monitorexit
        35: goto 38
      StackMap locals: android.media.audiofx.AudioEffect java.util.UUID java.util.UUID int int int[] android.media.audiofx.AudioEffect$Descriptor[] int java.lang.Object
      StackMap stack: java.lang.Throwable
        36: aload 8
            monitorexit
        37: athrow
        38: .line 433
      StackMap locals:
      StackMap stack:
            return
        end local 7 // int initResult
        end local 6 // android.media.audiofx.AudioEffect$Descriptor[] desc
        end local 5 // int[] id
        end local 4 // int audioSession
        end local 3 // int priority
        end local 2 // java.util.UUID uuid
        end local 1 // java.util.UUID type
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   39     0          this  Landroid/media/audiofx/AudioEffect;
            0   39     1          type  Ljava/util/UUID;
            0   39     2          uuid  Ljava/util/UUID;
            0   39     3      priority  I
            0   39     4  audioSession  I
            9   39     5            id  [I
           10   39     6          desc  [Landroid/media/audiofx/AudioEffect$Descriptor;
           14   39     7    initResult  I
      Exception table:
        from    to  target  type
          33    35      36  any
          36    37      36  any
    Exceptions:
      throws java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException, java.lang.RuntimeException
    MethodParameters:
              Name  Flags
      type          
      uuid          
      priority      
      audioSession  

  public void release();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.media.audiofx.AudioEffect this
         0: .line 441
            aload 0 /* this */
            getfield android.media.audiofx.AudioEffect.mStateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 442
            aload 0 /* this */
            invokevirtual android.media.audiofx.AudioEffect.native_release:()V
         2: .line 443
            aload 0 /* this */
            iconst_0
            putfield android.media.audiofx.AudioEffect.mState:I
         3: .line 441
            aload 1
            monitorexit
         4: goto 7
      StackMap locals: android.media.audiofx.AudioEffect java.lang.Object
      StackMap stack: java.lang.Throwable
         5: aload 1
            monitorexit
         6: athrow
         7: .line 445
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/media/audiofx/AudioEffect;
      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.AudioEffect this
         0: .line 449
            aload 0 /* this */
            invokevirtual android.media.audiofx.AudioEffect.native_finalize:()V
         1: .line 450
            return
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/audiofx/AudioEffect;

  public android.media.audiofx.AudioEffect$Descriptor getDescriptor();
    descriptor: ()Landroid/media/audiofx/AudioEffect$Descriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.audiofx.AudioEffect this
         0: .line 459
            aload 0 /* this */
            ldc "getDescriptor()"
            invokevirtual android.media.audiofx.AudioEffect.checkState:(Ljava/lang/String;)V
         1: .line 460
            aload 0 /* this */
            getfield android.media.audiofx.AudioEffect.mDescriptor:Landroid/media/audiofx/AudioEffect$Descriptor;
            areturn
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/audiofx/AudioEffect;
    Exceptions:
      throws java.lang.IllegalStateException

  public static android.media.audiofx.AudioEffect$Descriptor[] queryEffects();
    descriptor: ()[Landroid/media/audiofx/AudioEffect$Descriptor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 475
            invokestatic android.media.audiofx.AudioEffect.native_query_effects:()[Ljava/lang/Object;
            checkcast android.media.audiofx.AudioEffect$Descriptor[]
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static android.media.audiofx.AudioEffect$Descriptor[] queryPreProcessings(int);
    descriptor: (I)[Landroid/media/audiofx/AudioEffect$Descriptor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int audioSession
         0: .line 488
            iload 0 /* audioSession */
            invokestatic android.media.audiofx.AudioEffect.native_query_pre_processing:(I)[Ljava/lang/Object;
            checkcast android.media.audiofx.AudioEffect$Descriptor[]
            areturn
        end local 0 // int audioSession
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0  audioSession  I
    MethodParameters:
              Name  Flags
      audioSession  

  public static boolean isEffectTypeAvailable(java.util.UUID);
    descriptor: (Ljava/util/UUID;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.util.UUID type
         0: .line 499
            invokestatic android.media.audiofx.AudioEffect.queryEffects:()[Landroid/media/audiofx/AudioEffect$Descriptor;
            astore 1 /* desc */
        start local 1 // android.media.audiofx.AudioEffect$Descriptor[] desc
         1: .line 500
            aload 1 /* desc */
            ifnonnull 3
         2: .line 501
            iconst_0
            ireturn
         3: .line 504
      StackMap locals: android.media.audiofx.AudioEffect$Descriptor[]
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 8
         5: .line 505
      StackMap locals: int
      StackMap stack:
            aload 1 /* desc */
            iload 2 /* i */
            aaload
            getfield android.media.audiofx.AudioEffect$Descriptor.type:Ljava/util/UUID;
            aload 0 /* type */
            invokevirtual java.util.UUID.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 506
            iconst_1
            ireturn
         7: .line 504
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            aload 1 /* desc */
            arraylength
            if_icmplt 5
        end local 2 // int i
         9: .line 509
            iconst_0
            ireturn
        end local 1 // android.media.audiofx.AudioEffect$Descriptor[] desc
        end local 0 // java.util.UUID type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  type  Ljava/util/UUID;
            1   10     1  desc  [Landroid/media/audiofx/AudioEffect$Descriptor;
            4    9     2     i  I
    MethodParameters:
      Name  Flags
      type  

  public int setEnabled(boolean);
    descriptor: (Z)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // boolean enabled
         0: .line 529
            aload 0 /* this */
            ldc "setEnabled()"
            invokevirtual android.media.audiofx.AudioEffect.checkState:(Ljava/lang/String;)V
         1: .line 530
            aload 0 /* this */
            iload 1 /* enabled */
            invokevirtual android.media.audiofx.AudioEffect.native_setEnabled:(Z)I
            ireturn
        end local 1 // boolean enabled
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/media/audiofx/AudioEffect;
            0    2     1  enabled  Z
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
         Name  Flags
      enabled  

  public int setParameter(byte[], byte[]);
    descriptor: ([B[B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // byte[] param
        start local 2 // byte[] value
         0: .line 553
            aload 0 /* this */
            ldc "setParameter()"
            invokevirtual android.media.audiofx.AudioEffect.checkState:(Ljava/lang/String;)V
         1: .line 554
            aload 0 /* this */
            aload 1 /* param */
            arraylength
            aload 1 /* param */
            aload 2 /* value */
            arraylength
            aload 2 /* value */
            invokevirtual android.media.audiofx.AudioEffect.native_setParameter:(I[BI[B)I
            ireturn
        end local 2 // byte[] value
        end local 1 // byte[] param
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/media/audiofx/AudioEffect;
            0    2     1  param  [B
            0    2     2  value  [B
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
       Name  Flags
      param  
      value  

  public int setParameter(int, int);
    descriptor: (II)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // int param
        start local 2 // int value
         0: .line 565
            iload 1 /* param */
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 3 /* p */
        start local 3 // byte[] p
         1: .line 566
            iload 2 /* value */
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 4 /* v */
        start local 4 // byte[] v
         2: .line 567
            aload 0 /* this */
            aload 3 /* p */
            aload 4 /* v */
            invokevirtual android.media.audiofx.AudioEffect.setParameter:([B[B)I
            ireturn
        end local 4 // byte[] v
        end local 3 // byte[] p
        end local 2 // int value
        end local 1 // int param
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Landroid/media/audiofx/AudioEffect;
            0    3     1  param  I
            0    3     2  value  I
            1    3     3      p  [B
            2    3     4      v  [B
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
       Name  Flags
      param  
      value  

  public int setParameter(int, short);
    descriptor: (IS)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // int param
        start local 2 // short value
         0: .line 580
            iload 1 /* param */
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 3 /* p */
        start local 3 // byte[] p
         1: .line 581
            iload 2 /* value */
            invokestatic android.media.audiofx.AudioEffect.shortToByteArray:(S)[B
            astore 4 /* v */
        start local 4 // byte[] v
         2: .line 582
            aload 0 /* this */
            aload 3 /* p */
            aload 4 /* v */
            invokevirtual android.media.audiofx.AudioEffect.setParameter:([B[B)I
            ireturn
        end local 4 // byte[] v
        end local 3 // byte[] p
        end local 2 // short value
        end local 1 // int param
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Landroid/media/audiofx/AudioEffect;
            0    3     1  param  I
            0    3     2  value  S
            1    3     3      p  [B
            2    3     4      v  [B
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
       Name  Flags
      param  
      value  

  public int setParameter(int, byte[]);
    descriptor: (I[B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // int param
        start local 2 // byte[] value
         0: .line 595
            iload 1 /* param */
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 3 /* p */
        start local 3 // byte[] p
         1: .line 596
            aload 0 /* this */
            aload 3 /* p */
            aload 2 /* value */
            invokevirtual android.media.audiofx.AudioEffect.setParameter:([B[B)I
            ireturn
        end local 3 // byte[] p
        end local 2 // byte[] value
        end local 1 // int param
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/media/audiofx/AudioEffect;
            0    2     1  param  I
            0    2     2  value  [B
            1    2     3      p  [B
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
       Name  Flags
      param  
      value  

  public int setParameter(int[], int[]);
    descriptor: ([I[I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // int[] param
        start local 2 // int[] value
         0: .line 609
            aload 1 /* param */
            arraylength
            iconst_2
            if_icmpgt 1
            aload 2 /* value */
            arraylength
            iconst_2
            if_icmple 2
         1: .line 610
      StackMap locals:
      StackMap stack:
            bipush -4
            ireturn
         2: .line 612
      StackMap locals:
      StackMap stack:
            aload 1 /* param */
            iconst_0
            iaload
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 3 /* p */
        start local 3 // byte[] p
         3: .line 613
            aload 1 /* param */
            arraylength
            iconst_1
            if_icmple 6
         4: .line 614
            aload 1 /* param */
            iconst_1
            iaload
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 4 /* p2 */
        start local 4 // byte[] p2
         5: .line 615
            iconst_2
            anewarray byte[]
            dup
            iconst_0
            aload 3 /* p */
            aastore
            dup
            iconst_1
            aload 4 /* p2 */
            aastore
            invokestatic android.media.audiofx.AudioEffect.concatArrays:([[B)[B
            astore 3 /* p */
        end local 4 // byte[] p2
         6: .line 617
      StackMap locals: byte[]
      StackMap stack:
            aload 2 /* value */
            iconst_0
            iaload
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 4 /* v */
        start local 4 // byte[] v
         7: .line 618
            aload 2 /* value */
            arraylength
            iconst_1
            if_icmple 10
         8: .line 619
            aload 2 /* value */
            iconst_1
            iaload
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 5 /* v2 */
        start local 5 // byte[] v2
         9: .line 620
            iconst_2
            anewarray byte[]
            dup
            iconst_0
            aload 4 /* v */
            aastore
            dup
            iconst_1
            aload 5 /* v2 */
            aastore
            invokestatic android.media.audiofx.AudioEffect.concatArrays:([[B)[B
            astore 4 /* v */
        end local 5 // byte[] v2
        10: .line 622
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            aload 3 /* p */
            aload 4 /* v */
            invokevirtual android.media.audiofx.AudioEffect.setParameter:([B[B)I
            ireturn
        end local 4 // byte[] v
        end local 3 // byte[] p
        end local 2 // int[] value
        end local 1 // int[] param
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Landroid/media/audiofx/AudioEffect;
            0   11     1  param  [I
            0   11     2  value  [I
            3   11     3      p  [B
            5    6     4     p2  [B
            7   11     4      v  [B
            9   10     5     v2  [B
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
       Name  Flags
      param  
      value  

  public int setParameter(int[], short[]);
    descriptor: ([I[S)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // int[] param
        start local 2 // short[] value
         0: .line 634
            aload 1 /* param */
            arraylength
            iconst_2
            if_icmpgt 1
            aload 2 /* value */
            arraylength
            iconst_2
            if_icmple 2
         1: .line 635
      StackMap locals:
      StackMap stack:
            bipush -4
            ireturn
         2: .line 637
      StackMap locals:
      StackMap stack:
            aload 1 /* param */
            iconst_0
            iaload
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 3 /* p */
        start local 3 // byte[] p
         3: .line 638
            aload 1 /* param */
            arraylength
            iconst_1
            if_icmple 6
         4: .line 639
            aload 1 /* param */
            iconst_1
            iaload
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 4 /* p2 */
        start local 4 // byte[] p2
         5: .line 640
            iconst_2
            anewarray byte[]
            dup
            iconst_0
            aload 3 /* p */
            aastore
            dup
            iconst_1
            aload 4 /* p2 */
            aastore
            invokestatic android.media.audiofx.AudioEffect.concatArrays:([[B)[B
            astore 3 /* p */
        end local 4 // byte[] p2
         6: .line 643
      StackMap locals: byte[]
      StackMap stack:
            aload 2 /* value */
            iconst_0
            saload
            invokestatic android.media.audiofx.AudioEffect.shortToByteArray:(S)[B
            astore 4 /* v */
        start local 4 // byte[] v
         7: .line 644
            aload 2 /* value */
            arraylength
            iconst_1
            if_icmple 10
         8: .line 645
            aload 2 /* value */
            iconst_1
            saload
            invokestatic android.media.audiofx.AudioEffect.shortToByteArray:(S)[B
            astore 5 /* v2 */
        start local 5 // byte[] v2
         9: .line 646
            iconst_2
            anewarray byte[]
            dup
            iconst_0
            aload 4 /* v */
            aastore
            dup
            iconst_1
            aload 5 /* v2 */
            aastore
            invokestatic android.media.audiofx.AudioEffect.concatArrays:([[B)[B
            astore 4 /* v */
        end local 5 // byte[] v2
        10: .line 648
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            aload 3 /* p */
            aload 4 /* v */
            invokevirtual android.media.audiofx.AudioEffect.setParameter:([B[B)I
            ireturn
        end local 4 // byte[] v
        end local 3 // byte[] p
        end local 2 // short[] value
        end local 1 // int[] param
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Landroid/media/audiofx/AudioEffect;
            0   11     1  param  [I
            0   11     2  value  [S
            3   11     3      p  [B
            5    6     4     p2  [B
            7   11     4      v  [B
            9   10     5     v2  [B
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
       Name  Flags
      param  
      value  

  public int setParameter(int[], byte[]);
    descriptor: ([I[B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // int[] param
        start local 2 // byte[] value
         0: .line 661
            aload 1 /* param */
            arraylength
            iconst_2
            if_icmple 2
         1: .line 662
            bipush -4
            ireturn
         2: .line 664
      StackMap locals:
      StackMap stack:
            aload 1 /* param */
            iconst_0
            iaload
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 3 /* p */
        start local 3 // byte[] p
         3: .line 665
            aload 1 /* param */
            arraylength
            iconst_1
            if_icmple 6
         4: .line 666
            aload 1 /* param */
            iconst_1
            iaload
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 4 /* p2 */
        start local 4 // byte[] p2
         5: .line 667
            iconst_2
            anewarray byte[]
            dup
            iconst_0
            aload 3 /* p */
            aastore
            dup
            iconst_1
            aload 4 /* p2 */
            aastore
            invokestatic android.media.audiofx.AudioEffect.concatArrays:([[B)[B
            astore 3 /* p */
        end local 4 // byte[] p2
         6: .line 669
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            aload 3 /* p */
            aload 2 /* value */
            invokevirtual android.media.audiofx.AudioEffect.setParameter:([B[B)I
            ireturn
        end local 3 // byte[] p
        end local 2 // byte[] value
        end local 1 // int[] param
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Landroid/media/audiofx/AudioEffect;
            0    7     1  param  [I
            0    7     2  value  [B
            3    7     3      p  [B
            5    6     4     p2  [B
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
       Name  Flags
      param  
      value  

  public int getParameter(byte[], byte[]);
    descriptor: ([B[B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // byte[] param
        start local 2 // byte[] value
         0: .line 690
            aload 0 /* this */
            ldc "getParameter()"
            invokevirtual android.media.audiofx.AudioEffect.checkState:(Ljava/lang/String;)V
         1: .line 691
            aload 0 /* this */
            aload 1 /* param */
            arraylength
            aload 1 /* param */
            aload 2 /* value */
            arraylength
            aload 2 /* value */
            invokevirtual android.media.audiofx.AudioEffect.native_getParameter:(I[BI[B)I
            ireturn
        end local 2 // byte[] value
        end local 1 // byte[] param
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/media/audiofx/AudioEffect;
            0    2     1  param  [B
            0    2     2  value  [B
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
       Name  Flags
      param  
      value  

  public int getParameter(int, byte[]);
    descriptor: (I[B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // int param
        start local 2 // byte[] value
         0: .line 704
            iload 1 /* param */
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 3 /* p */
        start local 3 // byte[] p
         1: .line 706
            aload 0 /* this */
            aload 3 /* p */
            aload 2 /* value */
            invokevirtual android.media.audiofx.AudioEffect.getParameter:([B[B)I
            ireturn
        end local 3 // byte[] p
        end local 2 // byte[] value
        end local 1 // int param
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/media/audiofx/AudioEffect;
            0    2     1  param  I
            0    2     2  value  [B
            1    2     3      p  [B
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
       Name  Flags
      param  
      value  

  public int getParameter(int, int[]);
    descriptor: (I[I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // int param
        start local 2 // int[] value
         0: .line 720
            aload 2 /* value */
            arraylength
            iconst_2
            if_icmple 2
         1: .line 721
            bipush -4
            ireturn
         2: .line 723
      StackMap locals:
      StackMap stack:
            iload 1 /* param */
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 3 /* p */
        start local 3 // byte[] p
         3: .line 725
            aload 2 /* value */
            arraylength
            iconst_4
            imul
            newarray 8
            astore 4 /* v */
        start local 4 // byte[] v
         4: .line 727
            aload 0 /* this */
            aload 3 /* p */
            aload 4 /* v */
            invokevirtual android.media.audiofx.AudioEffect.getParameter:([B[B)I
            istore 5 /* status */
        start local 5 // int status
         5: .line 729
            iload 5 /* status */
            iconst_4
            if_icmpeq 6
            iload 5 /* status */
            bipush 8
            if_icmpne 11
         6: .line 730
      StackMap locals: byte[] byte[] int
      StackMap stack:
            aload 2 /* value */
            iconst_0
            aload 4 /* v */
            invokestatic android.media.audiofx.AudioEffect.byteArrayToInt:([B)I
            iastore
         7: .line 731
            iload 5 /* status */
            bipush 8
            if_icmpne 9
         8: .line 732
            aload 2 /* value */
            iconst_1
            aload 4 /* v */
            iconst_4
            invokestatic android.media.audiofx.AudioEffect.byteArrayToInt:([BI)I
            iastore
         9: .line 734
      StackMap locals:
      StackMap stack:
            iload 5 /* status */
            iconst_4
            idiv
            istore 5 /* status */
        10: .line 735
            goto 12
        11: .line 736
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 5 /* status */
        12: .line 738
      StackMap locals:
      StackMap stack:
            iload 5 /* status */
            ireturn
        end local 5 // int status
        end local 4 // byte[] v
        end local 3 // byte[] p
        end local 2 // int[] value
        end local 1 // int param
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Landroid/media/audiofx/AudioEffect;
            0   13     1   param  I
            0   13     2   value  [I
            3   13     3       p  [B
            4   13     4       v  [B
            5   13     5  status  I
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
       Name  Flags
      param  
      value  

  public int getParameter(int, short[]);
    descriptor: (I[S)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // int param
        start local 2 // short[] value
         0: .line 752
            aload 2 /* value */
            arraylength
            iconst_2
            if_icmple 2
         1: .line 753
            bipush -4
            ireturn
         2: .line 755
      StackMap locals:
      StackMap stack:
            iload 1 /* param */
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 3 /* p */
        start local 3 // byte[] p
         3: .line 757
            aload 2 /* value */
            arraylength
            iconst_2
            imul
            newarray 8
            astore 4 /* v */
        start local 4 // byte[] v
         4: .line 759
            aload 0 /* this */
            aload 3 /* p */
            aload 4 /* v */
            invokevirtual android.media.audiofx.AudioEffect.getParameter:([B[B)I
            istore 5 /* status */
        start local 5 // int status
         5: .line 761
            iload 5 /* status */
            iconst_2
            if_icmpeq 6
            iload 5 /* status */
            iconst_4
            if_icmpne 11
         6: .line 762
      StackMap locals: byte[] byte[] int
      StackMap stack:
            aload 2 /* value */
            iconst_0
            aload 4 /* v */
            invokestatic android.media.audiofx.AudioEffect.byteArrayToShort:([B)S
            sastore
         7: .line 763
            iload 5 /* status */
            iconst_4
            if_icmpne 9
         8: .line 764
            aload 2 /* value */
            iconst_1
            aload 4 /* v */
            iconst_2
            invokestatic android.media.audiofx.AudioEffect.byteArrayToShort:([BI)S
            sastore
         9: .line 766
      StackMap locals:
      StackMap stack:
            iload 5 /* status */
            iconst_2
            idiv
            istore 5 /* status */
        10: .line 767
            goto 12
        11: .line 768
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 5 /* status */
        12: .line 770
      StackMap locals:
      StackMap stack:
            iload 5 /* status */
            ireturn
        end local 5 // int status
        end local 4 // byte[] v
        end local 3 // byte[] p
        end local 2 // short[] value
        end local 1 // int param
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Landroid/media/audiofx/AudioEffect;
            0   13     1   param  I
            0   13     2   value  [S
            3   13     3       p  [B
            4   13     4       v  [B
            5   13     5  status  I
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
       Name  Flags
      param  
      value  

  public int getParameter(int[], int[]);
    descriptor: ([I[I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // int[] param
        start local 2 // int[] value
         0: .line 783
            aload 1 /* param */
            arraylength
            iconst_2
            if_icmpgt 1
            aload 2 /* value */
            arraylength
            iconst_2
            if_icmple 2
         1: .line 784
      StackMap locals:
      StackMap stack:
            bipush -4
            ireturn
         2: .line 786
      StackMap locals:
      StackMap stack:
            aload 1 /* param */
            iconst_0
            iaload
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 3 /* p */
        start local 3 // byte[] p
         3: .line 787
            aload 1 /* param */
            arraylength
            iconst_1
            if_icmple 6
         4: .line 788
            aload 1 /* param */
            iconst_1
            iaload
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 4 /* p2 */
        start local 4 // byte[] p2
         5: .line 789
            iconst_2
            anewarray byte[]
            dup
            iconst_0
            aload 3 /* p */
            aastore
            dup
            iconst_1
            aload 4 /* p2 */
            aastore
            invokestatic android.media.audiofx.AudioEffect.concatArrays:([[B)[B
            astore 3 /* p */
        end local 4 // byte[] p2
         6: .line 791
      StackMap locals: byte[]
      StackMap stack:
            aload 2 /* value */
            arraylength
            iconst_4
            imul
            newarray 8
            astore 4 /* v */
        start local 4 // byte[] v
         7: .line 793
            aload 0 /* this */
            aload 3 /* p */
            aload 4 /* v */
            invokevirtual android.media.audiofx.AudioEffect.getParameter:([B[B)I
            istore 5 /* status */
        start local 5 // int status
         8: .line 795
            iload 5 /* status */
            iconst_4
            if_icmpeq 9
            iload 5 /* status */
            bipush 8
            if_icmpne 14
         9: .line 796
      StackMap locals: byte[] int
      StackMap stack:
            aload 2 /* value */
            iconst_0
            aload 4 /* v */
            invokestatic android.media.audiofx.AudioEffect.byteArrayToInt:([B)I
            iastore
        10: .line 797
            iload 5 /* status */
            bipush 8
            if_icmpne 12
        11: .line 798
            aload 2 /* value */
            iconst_1
            aload 4 /* v */
            iconst_4
            invokestatic android.media.audiofx.AudioEffect.byteArrayToInt:([BI)I
            iastore
        12: .line 800
      StackMap locals:
      StackMap stack:
            iload 5 /* status */
            iconst_4
            idiv
            istore 5 /* status */
        13: .line 801
            goto 15
        14: .line 802
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 5 /* status */
        15: .line 804
      StackMap locals:
      StackMap stack:
            iload 5 /* status */
            ireturn
        end local 5 // int status
        end local 4 // byte[] v
        end local 3 // byte[] p
        end local 2 // int[] value
        end local 1 // int[] param
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Landroid/media/audiofx/AudioEffect;
            0   16     1   param  [I
            0   16     2   value  [I
            3   16     3       p  [B
            5    6     4      p2  [B
            7   16     4       v  [B
            8   16     5  status  I
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
       Name  Flags
      param  
      value  

  public int getParameter(int[], short[]);
    descriptor: ([I[S)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // int[] param
        start local 2 // short[] value
         0: .line 818
            aload 1 /* param */
            arraylength
            iconst_2
            if_icmpgt 1
            aload 2 /* value */
            arraylength
            iconst_2
            if_icmple 2
         1: .line 819
      StackMap locals:
      StackMap stack:
            bipush -4
            ireturn
         2: .line 821
      StackMap locals:
      StackMap stack:
            aload 1 /* param */
            iconst_0
            iaload
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 3 /* p */
        start local 3 // byte[] p
         3: .line 822
            aload 1 /* param */
            arraylength
            iconst_1
            if_icmple 6
         4: .line 823
            aload 1 /* param */
            iconst_1
            iaload
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 4 /* p2 */
        start local 4 // byte[] p2
         5: .line 824
            iconst_2
            anewarray byte[]
            dup
            iconst_0
            aload 3 /* p */
            aastore
            dup
            iconst_1
            aload 4 /* p2 */
            aastore
            invokestatic android.media.audiofx.AudioEffect.concatArrays:([[B)[B
            astore 3 /* p */
        end local 4 // byte[] p2
         6: .line 826
      StackMap locals: byte[]
      StackMap stack:
            aload 2 /* value */
            arraylength
            iconst_2
            imul
            newarray 8
            astore 4 /* v */
        start local 4 // byte[] v
         7: .line 828
            aload 0 /* this */
            aload 3 /* p */
            aload 4 /* v */
            invokevirtual android.media.audiofx.AudioEffect.getParameter:([B[B)I
            istore 5 /* status */
        start local 5 // int status
         8: .line 830
            iload 5 /* status */
            iconst_2
            if_icmpeq 9
            iload 5 /* status */
            iconst_4
            if_icmpne 14
         9: .line 831
      StackMap locals: byte[] int
      StackMap stack:
            aload 2 /* value */
            iconst_0
            aload 4 /* v */
            invokestatic android.media.audiofx.AudioEffect.byteArrayToShort:([B)S
            sastore
        10: .line 832
            iload 5 /* status */
            iconst_4
            if_icmpne 12
        11: .line 833
            aload 2 /* value */
            iconst_1
            aload 4 /* v */
            iconst_2
            invokestatic android.media.audiofx.AudioEffect.byteArrayToShort:([BI)S
            sastore
        12: .line 835
      StackMap locals:
      StackMap stack:
            iload 5 /* status */
            iconst_2
            idiv
            istore 5 /* status */
        13: .line 836
            goto 15
        14: .line 837
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 5 /* status */
        15: .line 839
      StackMap locals:
      StackMap stack:
            iload 5 /* status */
            ireturn
        end local 5 // int status
        end local 4 // byte[] v
        end local 3 // byte[] p
        end local 2 // short[] value
        end local 1 // int[] param
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Landroid/media/audiofx/AudioEffect;
            0   16     1   param  [I
            0   16     2   value  [S
            3   16     3       p  [B
            5    6     4      p2  [B
            7   16     4       v  [B
            8   16     5  status  I
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
       Name  Flags
      param  
      value  

  public int getParameter(int[], byte[]);
    descriptor: ([I[B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // int[] param
        start local 2 // byte[] value
         0: .line 851
            aload 1 /* param */
            arraylength
            iconst_2
            if_icmple 2
         1: .line 852
            bipush -4
            ireturn
         2: .line 854
      StackMap locals:
      StackMap stack:
            aload 1 /* param */
            iconst_0
            iaload
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 3 /* p */
        start local 3 // byte[] p
         3: .line 855
            aload 1 /* param */
            arraylength
            iconst_1
            if_icmple 6
         4: .line 856
            aload 1 /* param */
            iconst_1
            iaload
            invokestatic android.media.audiofx.AudioEffect.intToByteArray:(I)[B
            astore 4 /* p2 */
        start local 4 // byte[] p2
         5: .line 857
            iconst_2
            anewarray byte[]
            dup
            iconst_0
            aload 3 /* p */
            aastore
            dup
            iconst_1
            aload 4 /* p2 */
            aastore
            invokestatic android.media.audiofx.AudioEffect.concatArrays:([[B)[B
            astore 3 /* p */
        end local 4 // byte[] p2
         6: .line 860
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            aload 3 /* p */
            aload 2 /* value */
            invokevirtual android.media.audiofx.AudioEffect.getParameter:([B[B)I
            ireturn
        end local 3 // byte[] p
        end local 2 // byte[] value
        end local 1 // int[] param
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Landroid/media/audiofx/AudioEffect;
            0    7     1  param  [I
            0    7     2  value  [B
            3    7     3      p  [B
            5    6     4     p2  [B
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
       Name  Flags
      param  
      value  

  public int command(int, byte[], byte[]);
    descriptor: (I[B[B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // int cmdCode
        start local 2 // byte[] command
        start local 3 // byte[] reply
         0: .line 872
            aload 0 /* this */
            ldc "command()"
            invokevirtual android.media.audiofx.AudioEffect.checkState:(Ljava/lang/String;)V
         1: .line 873
            aload 0 /* this */
            iload 1 /* cmdCode */
            aload 2 /* command */
            arraylength
            aload 2 /* command */
            aload 3 /* reply */
            arraylength
            aload 3 /* reply */
            invokevirtual android.media.audiofx.AudioEffect.native_command:(II[BI[B)I
            ireturn
        end local 3 // byte[] reply
        end local 2 // byte[] command
        end local 1 // int cmdCode
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/media/audiofx/AudioEffect;
            0    2     1  cmdCode  I
            0    2     2  command  [B
            0    2     3    reply  [B
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
         Name  Flags
      cmdCode  
      command  
      reply    

  public int getId();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.audiofx.AudioEffect this
         0: .line 889
            aload 0 /* this */
            ldc "getId()"
            invokevirtual android.media.audiofx.AudioEffect.checkState:(Ljava/lang/String;)V
         1: .line 890
            aload 0 /* this */
            getfield android.media.audiofx.AudioEffect.mId:I
            ireturn
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/audiofx/AudioEffect;
    Exceptions:
      throws java.lang.IllegalStateException

  public boolean getEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.audiofx.AudioEffect this
         0: .line 900
            aload 0 /* this */
            ldc "getEnabled()"
            invokevirtual android.media.audiofx.AudioEffect.checkState:(Ljava/lang/String;)V
         1: .line 901
            aload 0 /* this */
            invokevirtual android.media.audiofx.AudioEffect.native_getEnabled:()Z
            ireturn
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/audiofx/AudioEffect;
    Exceptions:
      throws java.lang.IllegalStateException

  public boolean hasControl();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.audiofx.AudioEffect this
         0: .line 912
            aload 0 /* this */
            ldc "hasControl()"
            invokevirtual android.media.audiofx.AudioEffect.checkState:(Ljava/lang/String;)V
         1: .line 913
            aload 0 /* this */
            invokevirtual android.media.audiofx.AudioEffect.native_hasControl:()Z
            ireturn
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/audiofx/AudioEffect;
    Exceptions:
      throws java.lang.IllegalStateException

  public void setEnableStatusListener(android.media.audiofx.AudioEffect$OnEnableStatusChangeListener);
    descriptor: (Landroid/media/audiofx/AudioEffect$OnEnableStatusChangeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // android.media.audiofx.AudioEffect$OnEnableStatusChangeListener listener
         0: .line 926
            aload 0 /* this */
            getfield android.media.audiofx.AudioEffect.mListenerLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 927
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.audiofx.AudioEffect.mEnableStatusChangeListener:Landroid/media/audiofx/AudioEffect$OnEnableStatusChangeListener;
         2: .line 926
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: android.media.audiofx.AudioEffect android.media.audiofx.AudioEffect$OnEnableStatusChangeListener java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 929
      StackMap locals:
      StackMap stack:
            aload 1 /* listener */
            ifnull 8
            aload 0 /* this */
            getfield android.media.audiofx.AudioEffect.mNativeEventHandler:Landroid/media/audiofx/AudioEffect$NativeEventHandler;
            ifnonnull 8
         7: .line 930
            aload 0 /* this */
            invokevirtual android.media.audiofx.AudioEffect.createNativeEventHandler:()V
         8: .line 932
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.audiofx.AudioEffect$OnEnableStatusChangeListener listener
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Landroid/media/audiofx/AudioEffect;
            0    9     1  listener  Landroid/media/audiofx/AudioEffect$OnEnableStatusChangeListener;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
          Name  Flags
      listener  

  public void setControlStatusListener(android.media.audiofx.AudioEffect$OnControlStatusChangeListener);
    descriptor: (Landroid/media/audiofx/AudioEffect$OnControlStatusChangeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // android.media.audiofx.AudioEffect$OnControlStatusChangeListener listener
         0: .line 941
            aload 0 /* this */
            getfield android.media.audiofx.AudioEffect.mListenerLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 942
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.audiofx.AudioEffect.mControlChangeStatusListener:Landroid/media/audiofx/AudioEffect$OnControlStatusChangeListener;
         2: .line 941
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: android.media.audiofx.AudioEffect android.media.audiofx.AudioEffect$OnControlStatusChangeListener java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 944
      StackMap locals:
      StackMap stack:
            aload 1 /* listener */
            ifnull 8
            aload 0 /* this */
            getfield android.media.audiofx.AudioEffect.mNativeEventHandler:Landroid/media/audiofx/AudioEffect$NativeEventHandler;
            ifnonnull 8
         7: .line 945
            aload 0 /* this */
            invokevirtual android.media.audiofx.AudioEffect.createNativeEventHandler:()V
         8: .line 947
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.audiofx.AudioEffect$OnControlStatusChangeListener listener
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Landroid/media/audiofx/AudioEffect;
            0    9     1  listener  Landroid/media/audiofx/AudioEffect$OnControlStatusChangeListener;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
          Name  Flags
      listener  

  public void setParameterListener(android.media.audiofx.AudioEffect$OnParameterChangeListener);
    descriptor: (Landroid/media/audiofx/AudioEffect$OnParameterChangeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // android.media.audiofx.AudioEffect$OnParameterChangeListener listener
         0: .line 957
            aload 0 /* this */
            getfield android.media.audiofx.AudioEffect.mListenerLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 958
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.audiofx.AudioEffect.mParameterChangeListener:Landroid/media/audiofx/AudioEffect$OnParameterChangeListener;
         2: .line 957
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: android.media.audiofx.AudioEffect android.media.audiofx.AudioEffect$OnParameterChangeListener java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 960
      StackMap locals:
      StackMap stack:
            aload 1 /* listener */
            ifnull 8
            aload 0 /* this */
            getfield android.media.audiofx.AudioEffect.mNativeEventHandler:Landroid/media/audiofx/AudioEffect$NativeEventHandler;
            ifnonnull 8
         7: .line 961
            aload 0 /* this */
            invokevirtual android.media.audiofx.AudioEffect.createNativeEventHandler:()V
         8: .line 963
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.audiofx.AudioEffect$OnParameterChangeListener listener
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Landroid/media/audiofx/AudioEffect;
            0    9     1  listener  Landroid/media/audiofx/AudioEffect$OnParameterChangeListener;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
          Name  Flags
      listener  

  private void createNativeEventHandler();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // android.media.audiofx.AudioEffect this
         0: .line 971
            invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
            dup
            astore 1 /* looper */
        start local 1 // android.os.Looper looper
         1: ifnull 4
         2: .line 972
            aload 0 /* this */
            new android.media.audiofx.AudioEffect$NativeEventHandler
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* looper */
            invokespecial android.media.audiofx.AudioEffect$NativeEventHandler.<init>:(Landroid/media/audiofx/AudioEffect;Landroid/media/audiofx/AudioEffect;Landroid/os/Looper;)V
            putfield android.media.audiofx.AudioEffect.mNativeEventHandler:Landroid/media/audiofx/AudioEffect$NativeEventHandler;
         3: .line 973
            goto 8
      StackMap locals: android.os.Looper
      StackMap stack:
         4: invokestatic android.os.Looper.getMainLooper:()Landroid/os/Looper;
            dup
            astore 1 /* looper */
            ifnull 7
         5: .line 974
            aload 0 /* this */
            new android.media.audiofx.AudioEffect$NativeEventHandler
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* looper */
            invokespecial android.media.audiofx.AudioEffect$NativeEventHandler.<init>:(Landroid/media/audiofx/AudioEffect;Landroid/media/audiofx/AudioEffect;Landroid/os/Looper;)V
            putfield android.media.audiofx.AudioEffect.mNativeEventHandler:Landroid/media/audiofx/AudioEffect$NativeEventHandler;
         6: .line 975
            goto 8
         7: .line 976
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.media.audiofx.AudioEffect.mNativeEventHandler:Landroid/media/audiofx/AudioEffect$NativeEventHandler;
         8: .line 978
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.os.Looper looper
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Landroid/media/audiofx/AudioEffect;
            1    9     1  looper  Landroid/os/Looper;

  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 1228
            aload 0 /* effect_ref */
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast android.media.audiofx.AudioEffect
            astore 5 /* effect */
        start local 5 // android.media.audiofx.AudioEffect effect
         1: .line 1229
            aload 5 /* effect */
            ifnonnull 3
         2: .line 1230
            return
         3: .line 1232
      StackMap locals: android.media.audiofx.AudioEffect
      StackMap stack:
            aload 5 /* effect */
            getfield android.media.audiofx.AudioEffect.mNativeEventHandler:Landroid/media/audiofx/AudioEffect$NativeEventHandler;
            ifnull 8
         4: .line 1233
            aload 5 /* effect */
            getfield android.media.audiofx.AudioEffect.mNativeEventHandler:Landroid/media/audiofx/AudioEffect$NativeEventHandler;
            iload 1 /* what */
            iload 2 /* arg1 */
         5: .line 1234
            iload 3 /* arg2 */
            aload 4 /* obj */
         6: .line 1233
            invokevirtual android.media.audiofx.AudioEffect$NativeEventHandler.obtainMessage:(IIILjava/lang/Object;)Landroid/os/Message;
            astore 6 /* m */
        start local 6 // android.os.Message m
         7: .line 1235
            aload 5 /* effect */
            getfield android.media.audiofx.AudioEffect.mNativeEventHandler:Landroid/media/audiofx/AudioEffect$NativeEventHandler;
            aload 6 /* m */
            invokevirtual android.media.audiofx.AudioEffect$NativeEventHandler.sendMessage:(Landroid/os/Message;)Z
            pop
        end local 6 // android.os.Message m
         8: .line 1238
      StackMap locals:
      StackMap stack:
            return
        end local 5 // android.media.audiofx.AudioEffect effect
        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    9     0  effect_ref  Ljava/lang/Object;
            0    9     1        what  I
            0    9     2        arg1  I
            0    9     3        arg2  I
            0    9     4         obj  Ljava/lang/Object;
            1    9     5      effect  Landroid/media/audiofx/AudioEffect;
            7    8     6           m  Landroid/os/Message;
    MethodParameters:
            Name  Flags
      effect_ref  
      what        
      arg1        
      arg2        
      obj         

  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, java.lang.String, java.lang.String, int, int, int[], java.lang.Object[], java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;II[I[Ljava/lang/Object;Ljava/lang/String;)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
                  Name  Flags
      audioeffect_this  
      type              
      uuid              
      priority          
      audioSession      
      id                
      desc              
      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 boolean native_hasControl();
    descriptor: ()Z
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE

  private final native int native_setParameter(int, byte[], int, byte[]);
    descriptor: (I[BI[B)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
       Name  Flags
      psize  
      param  
      vsize  
      value  

  private final native int native_getParameter(int, byte[], int, byte[]);
    descriptor: (I[BI[B)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
       Name  Flags
      psize  
      param  
      vsize  
      value  

  private final native int native_command(int, int, byte[], int, byte[]);
    descriptor: (II[BI[B)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
         Name  Flags
      cmdCode  
      cmdSize  
      cmdData  
      repSize  
      repData  

  private static native java.lang.Object[] native_query_effects();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  private static native java.lang.Object[] native_query_pre_processing(int);
    descriptor: (I)[Ljava/lang/Object;
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
              Name  Flags
      audioSession  

  public void checkState(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // java.lang.String methodName
         0: .line 1281
            aload 0 /* this */
            getfield android.media.audiofx.AudioEffect.mStateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 1282
            aload 0 /* this */
            getfield android.media.audiofx.AudioEffect.mState:I
            iconst_1
            if_icmpeq 5
         2: .line 1283
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* methodName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 1284
            ldc " called on uninitialized AudioEffect."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 1283
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1281
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 1287
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String methodName
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Landroid/media/audiofx/AudioEffect;
            0   10     1  methodName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
            Name  Flags
      methodName  

  public void checkStatus(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.audiofx.AudioEffect this
        start local 1 // int status
         0: .line 1293
            iload 1 /* status */
            invokestatic android.media.audiofx.AudioEffect.isError:(I)Z
            ifeq 9
         1: .line 1294
            iload 1 /* status */
            tableswitch { // -5 - -4
                   -5: 5
                   -4: 2
              default: 8
          }
         2: .line 1296
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         3: .line 1297
            ldc "AudioEffect: bad parameter value"
         4: .line 1296
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1299
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
         6: .line 1300
            ldc "AudioEffect: invalid parameter operation"
         7: .line 1299
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 1302
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            ldc "AudioEffect: set/get parameter error"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1305
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int status
        end local 0 // android.media.audiofx.AudioEffect this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Landroid/media/audiofx/AudioEffect;
            0   10     1  status  I
    MethodParameters:
        Name  Flags
      status  

  public static boolean isError(int);
    descriptor: (I)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int status
         0: .line 1312
            iload 0 /* status */
            ifge 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // int status
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  status  I
    MethodParameters:
        Name  Flags
      status  

  public static int byteArrayToInt(byte[]);
    descriptor: ([B)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte[] valueBuf
         0: .line 1320
            aload 0 /* valueBuf */
            iconst_0
            invokestatic android.media.audiofx.AudioEffect.byteArrayToInt:([BI)I
            ireturn
        end local 0 // byte[] valueBuf
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  valueBuf  [B
    MethodParameters:
          Name  Flags
      valueBuf  

  public static int byteArrayToInt(byte[], int);
    descriptor: ([BI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // byte[] valueBuf
        start local 1 // int offset
         0: .line 1328
            aload 0 /* valueBuf */
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            astore 2 /* converter */
        start local 2 // java.nio.ByteBuffer converter
         1: .line 1329
            aload 2 /* converter */
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
         2: .line 1330
            aload 2 /* converter */
            iload 1 /* offset */
            invokevirtual java.nio.ByteBuffer.getInt:(I)I
            ireturn
        end local 2 // java.nio.ByteBuffer converter
        end local 1 // int offset
        end local 0 // byte[] valueBuf
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0   valueBuf  [B
            0    3     1     offset  I
            1    3     2  converter  Ljava/nio/ByteBuffer;
    MethodParameters:
          Name  Flags
      valueBuf  
      offset    

  public static byte[] intToByteArray(int);
    descriptor: (I)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // int value
         0: .line 1339
            iconst_4
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 1 /* converter */
        start local 1 // java.nio.ByteBuffer converter
         1: .line 1340
            aload 1 /* converter */
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
         2: .line 1341
            aload 1 /* converter */
            iload 0 /* value */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 1342
            aload 1 /* converter */
            invokevirtual java.nio.ByteBuffer.array:()[B
            areturn
        end local 1 // java.nio.ByteBuffer converter
        end local 0 // int value
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0      value  I
            1    4     1  converter  Ljava/nio/ByteBuffer;
    MethodParameters:
       Name  Flags
      value  

  public static short byteArrayToShort(byte[]);
    descriptor: ([B)S
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte[] valueBuf
         0: .line 1350
            aload 0 /* valueBuf */
            iconst_0
            invokestatic android.media.audiofx.AudioEffect.byteArrayToShort:([BI)S
            ireturn
        end local 0 // byte[] valueBuf
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  valueBuf  [B
    MethodParameters:
          Name  Flags
      valueBuf  

  public static short byteArrayToShort(byte[], int);
    descriptor: ([BI)S
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // byte[] valueBuf
        start local 1 // int offset
         0: .line 1357
            aload 0 /* valueBuf */
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            astore 2 /* converter */
        start local 2 // java.nio.ByteBuffer converter
         1: .line 1358
            aload 2 /* converter */
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
         2: .line 1359
            aload 2 /* converter */
            iload 1 /* offset */
            invokevirtual java.nio.ByteBuffer.getShort:(I)S
            ireturn
        end local 2 // java.nio.ByteBuffer converter
        end local 1 // int offset
        end local 0 // byte[] valueBuf
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0   valueBuf  [B
            0    3     1     offset  I
            1    3     2  converter  Ljava/nio/ByteBuffer;
    MethodParameters:
          Name  Flags
      valueBuf  
      offset    

  public static byte[] shortToByteArray(short);
    descriptor: (S)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // short value
         0: .line 1368
            iconst_2
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 1 /* converter */
        start local 1 // java.nio.ByteBuffer converter
         1: .line 1369
            aload 1 /* converter */
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
         2: .line 1370
            iload 0 /* value */
            istore 2 /* sValue */
        start local 2 // short sValue
         3: .line 1371
            aload 1 /* converter */
            iload 2 /* sValue */
            invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
            pop
         4: .line 1372
            aload 1 /* converter */
            invokevirtual java.nio.ByteBuffer.array:()[B
            areturn
        end local 2 // short sValue
        end local 1 // java.nio.ByteBuffer converter
        end local 0 // short value
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0      value  S
            1    5     1  converter  Ljava/nio/ByteBuffer;
            3    5     2     sValue  S
    MethodParameters:
       Name  Flags
      value  

  public static float byteArrayToFloat(byte[]);
    descriptor: ([B)F
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte[] valueBuf
         0: .line 1379
            aload 0 /* valueBuf */
            iconst_0
            invokestatic android.media.audiofx.AudioEffect.byteArrayToFloat:([BI)F
            freturn
        end local 0 // byte[] valueBuf
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  valueBuf  [B
    MethodParameters:
          Name  Flags
      valueBuf  

  public static float byteArrayToFloat(byte[], int);
    descriptor: ([BI)F
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // byte[] valueBuf
        start local 1 // int offset
         0: .line 1387
            aload 0 /* valueBuf */
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            astore 2 /* converter */
        start local 2 // java.nio.ByteBuffer converter
         1: .line 1388
            aload 2 /* converter */
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
         2: .line 1389
            aload 2 /* converter */
            iload 1 /* offset */
            invokevirtual java.nio.ByteBuffer.getFloat:(I)F
            freturn
        end local 2 // java.nio.ByteBuffer converter
        end local 1 // int offset
        end local 0 // byte[] valueBuf
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0   valueBuf  [B
            0    3     1     offset  I
            1    3     2  converter  Ljava/nio/ByteBuffer;
    MethodParameters:
          Name  Flags
      valueBuf  
      offset    

  public static byte[] floatToByteArray(float);
    descriptor: (F)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // float value
         0: .line 1397
            iconst_4
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 1 /* converter */
        start local 1 // java.nio.ByteBuffer converter
         1: .line 1398
            aload 1 /* converter */
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
         2: .line 1399
            aload 1 /* converter */
            fload 0 /* value */
            invokevirtual java.nio.ByteBuffer.putFloat:(F)Ljava/nio/ByteBuffer;
            pop
         3: .line 1400
            aload 1 /* converter */
            invokevirtual java.nio.ByteBuffer.array:()[B
            areturn
        end local 1 // java.nio.ByteBuffer converter
        end local 0 // float value
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0      value  F
            1    4     1  converter  Ljava/nio/ByteBuffer;
    MethodParameters:
       Name  Flags
      value  

  public static byte[] concatArrays(byte[][]);
    descriptor: ([[B)[B
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // byte[][] arrays
         0: .line 1407
            iconst_0
            istore 1 /* len */
        start local 1 // int len
         1: .line 1408
            aload 0 /* arrays */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: byte[][] int top int int byte[][]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* a */
        start local 2 // byte[] a
         3: .line 1409
            iload 1 /* len */
            aload 2 /* a */
            arraylength
            iadd
            istore 1 /* len */
        end local 2 // byte[] a
         4: .line 1408
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 2
         6: .line 1411
            iload 1 /* len */
            newarray 8
            astore 2 /* b */
        start local 2 // byte[] b
         7: .line 1413
            iconst_0
            istore 3 /* offs */
        start local 3 // int offs
         8: .line 1414
            aload 0 /* arrays */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 13
      StackMap locals: byte[][] int byte[] int top int int byte[][]
      StackMap stack:
         9: aload 7
            iload 5
            aaload
            astore 4 /* a */
        start local 4 // byte[] a
        10: .line 1415
            aload 4 /* a */
            iconst_0
            aload 2 /* b */
            iload 3 /* offs */
            aload 4 /* a */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        11: .line 1416
            iload 3 /* offs */
            aload 4 /* a */
            arraylength
            iadd
            istore 3 /* offs */
        end local 4 // byte[] a
        12: .line 1414
            iinc 5 1
      StackMap locals:
      StackMap stack:
        13: iload 5
            iload 6
            if_icmplt 9
        14: .line 1418
            aload 2 /* b */
            areturn
        end local 3 // int offs
        end local 2 // byte[] b
        end local 1 // int len
        end local 0 // byte[][] arrays
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0  arrays  [[B
            1   15     1     len  I
            3    4     2       a  [B
            7   15     2       b  [B
            8   15     3    offs  I
           10   12     4       a  [B
    MethodParameters:
        Name  Flags
      arrays  
}
SourceFile: "AudioEffect.java"
NestMembers:
  android.media.audiofx.AudioEffect$Descriptor  android.media.audiofx.AudioEffect$NativeEventHandler  android.media.audiofx.AudioEffect$OnControlStatusChangeListener  android.media.audiofx.AudioEffect$OnEnableStatusChangeListener  android.media.audiofx.AudioEffect$OnParameterChangeListener
InnerClasses:
  public Descriptor = android.media.audiofx.AudioEffect$Descriptor of android.media.audiofx.AudioEffect
  private NativeEventHandler = android.media.audiofx.AudioEffect$NativeEventHandler of android.media.audiofx.AudioEffect
  public abstract OnControlStatusChangeListener = android.media.audiofx.AudioEffect$OnControlStatusChangeListener of android.media.audiofx.AudioEffect
  public abstract OnEnableStatusChangeListener = android.media.audiofx.AudioEffect$OnEnableStatusChangeListener of android.media.audiofx.AudioEffect
  public abstract OnParameterChangeListener = android.media.audiofx.AudioEffect$OnParameterChangeListener of android.media.audiofx.AudioEffect