public class android.media.AudioTrack$Builder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.media.AudioTrack$Builder
  super_class: java.lang.Object
{
  private android.media.AudioAttributes mAttributes;
    descriptor: Landroid/media/AudioAttributes;
    flags: (0x0002) ACC_PRIVATE

  private android.media.AudioFormat mFormat;
    descriptor: Landroid/media/AudioFormat;
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

  private boolean mOffload;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.AudioTrack$Builder this
         0: .line 773
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 765
            aload 0 /* this */
            iconst_0
            putfield android.media.AudioTrack$Builder.mSessionId:I
         2: .line 766
            aload 0 /* this */
            iconst_1
            putfield android.media.AudioTrack$Builder.mMode:I
         3: .line 767
            aload 0 /* this */
            iconst_0
            putfield android.media.AudioTrack$Builder.mPerformanceMode:I
         4: .line 768
            aload 0 /* this */
            iconst_0
            putfield android.media.AudioTrack$Builder.mOffload:Z
         5: .line 774
            return
        end local 0 // android.media.AudioTrack$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/media/AudioTrack$Builder;

  public android.media.AudioTrack$Builder setAudioAttributes(android.media.AudioAttributes);
    descriptor: (Landroid/media/AudioAttributes;)Landroid/media/AudioTrack$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.AudioTrack$Builder this
        start local 1 // android.media.AudioAttributes attributes
         0: .line 785
            aload 1 /* attributes */
            ifnonnull 2
         1: .line 786
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal null AudioAttributes argument"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 789
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* attributes */
            putfield android.media.AudioTrack$Builder.mAttributes:Landroid/media/AudioAttributes;
         3: .line 790
            aload 0 /* this */
            areturn
        end local 1 // android.media.AudioAttributes attributes
        end local 0 // android.media.AudioTrack$Builder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Landroid/media/AudioTrack$Builder;
            0    4     1  attributes  Landroid/media/AudioAttributes;
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
            Name  Flags
      attributes  

  public android.media.AudioTrack$Builder setAudioFormat(android.media.AudioFormat);
    descriptor: (Landroid/media/AudioFormat;)Landroid/media/AudioTrack$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.AudioTrack$Builder this
        start local 1 // android.media.AudioFormat format
         0: .line 803
            aload 1 /* format */
            ifnonnull 2
         1: .line 804
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal null AudioFormat argument"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 807
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* format */
            putfield android.media.AudioTrack$Builder.mFormat:Landroid/media/AudioFormat;
         3: .line 808
            aload 0 /* this */
            areturn
        end local 1 // android.media.AudioFormat format
        end local 0 // android.media.AudioTrack$Builder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Landroid/media/AudioTrack$Builder;
            0    4     1  format  Landroid/media/AudioFormat;
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
        Name  Flags
      format  

  public android.media.AudioTrack$Builder setBufferSizeInBytes(int);
    descriptor: (I)Landroid/media/AudioTrack$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.media.AudioTrack$Builder this
        start local 1 // int bufferSizeInBytes
         0: .line 827
            iload 1 /* bufferSizeInBytes */
            ifgt 2
         1: .line 828
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid buffer size "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* bufferSizeInBytes */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 830
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* bufferSizeInBytes */
            putfield android.media.AudioTrack$Builder.mBufferSizeInBytes:I
         3: .line 831
            aload 0 /* this */
            areturn
        end local 1 // int bufferSizeInBytes
        end local 0 // android.media.AudioTrack$Builder this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Landroid/media/AudioTrack$Builder;
            0    4     1  bufferSizeInBytes  I
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
                   Name  Flags
      bufferSizeInBytes  

  public android.media.AudioTrack$Builder setTransferMode(int);
    descriptor: (I)Landroid/media/AudioTrack$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.media.AudioTrack$Builder this
        start local 1 // int mode
         0: .line 843
            iload 1 /* mode */
            tableswitch { // 0 - 1
                    0: 1
                    1: 1
              default: 3
          }
         1: .line 846
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* mode */
            putfield android.media.AudioTrack$Builder.mMode:I
         2: .line 847
            goto 4
         3: .line 849
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid transfer mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* mode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 851
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // int mode
        end local 0 // android.media.AudioTrack$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/media/AudioTrack$Builder;
            0    5     1  mode  I
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
      Name  Flags
      mode  

  public android.media.AudioTrack$Builder setSessionId(int);
    descriptor: (I)Landroid/media/AudioTrack$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.media.AudioTrack$Builder this
        start local 1 // int sessionId
         0: .line 865
            iload 1 /* sessionId */
            ifeq 2
            iload 1 /* sessionId */
            iconst_1
            if_icmpge 2
         1: .line 866
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid audio session ID "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* sessionId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 868
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* sessionId */
            putfield android.media.AudioTrack$Builder.mSessionId:I
         3: .line 869
            aload 0 /* this */
            areturn
        end local 1 // int sessionId
        end local 0 // android.media.AudioTrack$Builder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Landroid/media/AudioTrack$Builder;
            0    4     1  sessionId  I
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
           Name  Flags
      sessionId  

  public android.media.AudioTrack$Builder setPerformanceMode(int);
    descriptor: (I)Landroid/media/AudioTrack$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.media.AudioTrack$Builder this
        start local 1 // int performanceMode
         0: .line 885
            iload 1 /* performanceMode */
            tableswitch { // 0 - 2
                    0: 1
                    1: 1
                    2: 1
              default: 3
          }
         1: .line 889
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* performanceMode */
            putfield android.media.AudioTrack$Builder.mPerformanceMode:I
         2: .line 890
            goto 6
         3: .line 892
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         4: .line 893
            new java.lang.StringBuilder
            dup
            ldc "Invalid performance mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* performanceMode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 892
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 895
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // int performanceMode
        end local 0 // android.media.AudioTrack$Builder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Landroid/media/AudioTrack$Builder;
            0    7     1  performanceMode  I
    MethodParameters:
                 Name  Flags
      performanceMode  

  public android.media.AudioTrack$Builder setOffloadedPlayback(boolean);
    descriptor: (Z)Landroid/media/AudioTrack$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.AudioTrack$Builder this
        start local 1 // boolean offload
         0: .line 910
            aload 0 /* this */
            iload 1 /* offload */
            putfield android.media.AudioTrack$Builder.mOffload:Z
         1: .line 911
            aload 0 /* this */
            areturn
        end local 1 // boolean offload
        end local 0 // android.media.AudioTrack$Builder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/media/AudioTrack$Builder;
            0    2     1  offload  Z
    MethodParameters:
         Name  Flags
      offload  

  public android.media.AudioTrack build();
    descriptor: ()Landroid/media/AudioTrack;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=2, args_size=1
        start local 0 // android.media.AudioTrack$Builder this
         0: .line 923
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mAttributes:Landroid/media/AudioAttributes;
            ifnonnull 5
         1: .line 924
            aload 0 /* this */
            new android.media.AudioAttributes$Builder
            dup
            invokespecial android.media.AudioAttributes$Builder.<init>:()V
         2: .line 925
            iconst_1
            invokevirtual android.media.AudioAttributes$Builder.setUsage:(I)Landroid/media/AudioAttributes$Builder;
         3: .line 926
            invokevirtual android.media.AudioAttributes$Builder.build:()Landroid/media/AudioAttributes;
         4: .line 924
            putfield android.media.AudioTrack$Builder.mAttributes:Landroid/media/AudioAttributes;
         5: .line 928
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mPerformanceMode:I
            tableswitch { // 0 - 2
                    0: 15
                    1: 6
                    2: 17
              default: 25
          }
         6: .line 930
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new android.media.AudioAttributes$Builder
            dup
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mAttributes:Landroid/media/AudioAttributes;
            invokespecial android.media.AudioAttributes$Builder.<init>:(Landroid/media/AudioAttributes;)V
         7: .line 931
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mAttributes:Landroid/media/AudioAttributes;
            invokevirtual android.media.AudioAttributes.getAllFlags:()I
         8: .line 932
            sipush 256
         9: .line 931
            ior
        10: .line 933
            sipush -513
        11: .line 931
            iand
            invokevirtual android.media.AudioAttributes$Builder.replaceFlags:(I)Landroid/media/AudioAttributes$Builder;
        12: .line 934
            invokevirtual android.media.AudioAttributes$Builder.build:()Landroid/media/AudioAttributes;
        13: .line 930
            putfield android.media.AudioTrack$Builder.mAttributes:Landroid/media/AudioAttributes;
        14: .line 935
            goto 25
        15: .line 937
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mAttributes:Landroid/media/AudioAttributes;
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mFormat:Landroid/media/AudioFormat;
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mBufferSizeInBytes:I
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mMode:I
            invokestatic android.media.AudioTrack.shouldEnablePowerSaving:(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;II)Z
            ifne 17
        16: .line 938
            goto 25
        17: .line 942
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new android.media.AudioAttributes$Builder
            dup
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mAttributes:Landroid/media/AudioAttributes;
            invokespecial android.media.AudioAttributes$Builder.<init>:(Landroid/media/AudioAttributes;)V
        18: .line 943
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mAttributes:Landroid/media/AudioAttributes;
            invokevirtual android.media.AudioAttributes.getAllFlags:()I
        19: .line 944
            sipush 512
        20: .line 943
            ior
        21: .line 945
            sipush -257
        22: .line 943
            iand
            invokevirtual android.media.AudioAttributes$Builder.replaceFlags:(I)Landroid/media/AudioAttributes$Builder;
        23: .line 946
            invokevirtual android.media.AudioAttributes$Builder.build:()Landroid/media/AudioAttributes;
        24: .line 942
            putfield android.media.AudioTrack$Builder.mAttributes:Landroid/media/AudioAttributes;
        25: .line 950
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mFormat:Landroid/media/AudioFormat;
            ifnonnull 31
        26: .line 951
            aload 0 /* this */
            new android.media.AudioFormat$Builder
            dup
            invokespecial android.media.AudioFormat$Builder.<init>:()V
        27: .line 952
            bipush 12
            invokevirtual android.media.AudioFormat$Builder.setChannelMask:(I)Landroid/media/AudioFormat$Builder;
        28: .line 954
            iconst_1
            invokevirtual android.media.AudioFormat$Builder.setEncoding:(I)Landroid/media/AudioFormat$Builder;
        29: .line 955
            invokevirtual android.media.AudioFormat$Builder.build:()Landroid/media/AudioFormat;
        30: .line 951
            putfield android.media.AudioTrack$Builder.mFormat:Landroid/media/AudioFormat;
        31: .line 959
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mOffload:Z
            ifeq 40
        32: .line 960
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mAttributes:Landroid/media/AudioAttributes;
            invokevirtual android.media.AudioAttributes.getUsage:()I
            iconst_1
            if_icmpeq 36
        33: .line 961
            new java.lang.UnsupportedOperationException
            dup
        34: .line 962
            ldc "Cannot create AudioTrack, offload requires USAGE_MEDIA"
        35: .line 961
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 964
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mFormat:Landroid/media/AudioFormat;
            invokestatic android.media.AudioSystem.isOffloadSupported:(Landroid/media/AudioFormat;)Z
            ifne 40
        37: .line 965
            new java.lang.UnsupportedOperationException
            dup
        38: .line 966
            ldc "Cannot create AudioTrack, offload format not supported"
        39: .line 965
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        40: .line 974
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mMode:I
            iconst_1
            if_icmpne 44
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mBufferSizeInBytes:I
            ifne 44
        41: .line 975
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mFormat:Landroid/media/AudioFormat;
            invokevirtual android.media.AudioFormat.getChannelCount:()I
        42: .line 976
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mFormat:Landroid/media/AudioFormat;
            invokevirtual android.media.AudioFormat.getEncoding:()I
            invokestatic android.media.AudioFormat.getBytesPerSample:(I)I
            imul
        43: .line 975
            putfield android.media.AudioTrack$Builder.mBufferSizeInBytes:I
        44: .line 978
      StackMap locals:
      StackMap stack:
            new android.media.AudioTrack
            dup
        45: .line 979
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mAttributes:Landroid/media/AudioAttributes;
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mFormat:Landroid/media/AudioFormat;
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mBufferSizeInBytes:I
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mMode:I
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mSessionId:I
            aload 0 /* this */
            getfield android.media.AudioTrack$Builder.mOffload:Z
        46: .line 978
            invokespecial android.media.AudioTrack.<init>:(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;IIIZ)V
            astore 1 /* track */
        start local 1 // android.media.AudioTrack track
        47: .line 980
            aload 1 /* track */
            invokevirtual android.media.AudioTrack.getState:()I
            ifne 49
        48: .line 982
            new java.lang.UnsupportedOperationException
            dup
            ldc "Cannot create AudioTrack"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        49: .line 984
      StackMap locals: android.media.AudioTrack
      StackMap stack:
            aload 1 /* track */
        50: areturn
        end local 1 // android.media.AudioTrack track
        51: .line 985
      StackMap locals: android.media.AudioTrack$Builder
      StackMap stack: java.lang.IllegalArgumentException
            astore 1 /* e */
        start local 1 // java.lang.IllegalArgumentException e
        52: .line 986
            new java.lang.UnsupportedOperationException
            dup
            aload 1 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.IllegalArgumentException e
        end local 0 // android.media.AudioTrack$Builder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   53     0   this  Landroid/media/AudioTrack$Builder;
           47   51     1  track  Landroid/media/AudioTrack;
           52   53     1      e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
          40    50      51  Class java.lang.IllegalArgumentException
    Exceptions:
      throws java.lang.UnsupportedOperationException
}
SourceFile: "AudioTrack.java"
NestHost: android.media.AudioTrack
InnerClasses:
  public Builder = android.media.AudioAttributes$Builder of android.media.AudioAttributes
  public Builder = android.media.AudioFormat$Builder of android.media.AudioFormat
  public Builder = android.media.AudioTrack$Builder of android.media.AudioTrack