final class com.sun.media.sound.DirectAudioDevice extends com.sun.media.sound.AbstractMixer
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.media.sound.DirectAudioDevice
  super_class: com.sun.media.sound.AbstractMixer
{
  private static final int CLIP_BUFFER_TIME;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1000

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

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

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

  void <init>(com.sun.media.sound.DirectAudioDeviceProvider$DirectAudioDeviceInfo);
    descriptor: (Lcom/sun/media/sound/DirectAudioDeviceProvider$DirectAudioDeviceInfo;)V
    flags: (0x0000) 
    Code:
      stack=9, locals=4, args_size=2
        start local 0 // com.sun.media.sound.DirectAudioDevice this
        start local 1 // com.sun.media.sound.DirectAudioDeviceProvider$DirectAudioDeviceInfo portMixerInfo
         0: .line 63
            aload 0 /* this */
            aload 1 /* portMixerInfo */
         1: .line 64
            aconst_null
         2: .line 65
            aconst_null
         3: .line 66
            aconst_null
            invokespecial com.sun.media.sound.AbstractMixer.<init>:(Ljavax/sound/sampled/Mixer$Info;[Ljavax/sound/sampled/Control;[Ljavax/sound/sampled/Line$Info;[Ljavax/sound/sampled/Line$Info;)V
         4: .line 55
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice.deviceCountOpened:I
         5: .line 58
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice.deviceCountStarted:I
         6: .line 71
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.media.sound.DirectAudioDevice.createDataLineInfo:(Z)Lcom/sun/media/sound/DirectAudioDevice$DirectDLI;
            astore 2 /* srcLineInfo */
        start local 2 // com.sun.media.sound.DirectAudioDevice$DirectDLI srcLineInfo
         7: .line 72
            aload 2 /* srcLineInfo */
            ifnull 16
         8: .line 73
            aload 0 /* this */
            iconst_2
            anewarray javax.sound.sampled.Line$Info
            putfield com.sun.media.sound.DirectAudioDevice.sourceLineInfo:[Ljavax/sound/sampled/Line$Info;
         9: .line 75
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice.sourceLineInfo:[Ljavax/sound/sampled/Line$Info;
            iconst_0
            aload 2 /* srcLineInfo */
            aastore
        10: .line 77
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice.sourceLineInfo:[Ljavax/sound/sampled/Line$Info;
            iconst_1
            new com.sun.media.sound.DirectAudioDevice$DirectDLI
            dup
            ldc Ljavax/sound/sampled/Clip;
            aload 2 /* srcLineInfo */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDLI.getFormats:()[Ljavax/sound/sampled/AudioFormat;
        11: .line 78
            aload 2 /* srcLineInfo */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDLI.getHardwareFormats:()[Ljavax/sound/sampled/AudioFormat;
        12: .line 79
            bipush 32
        13: .line 80
            iconst_m1
            invokespecial com.sun.media.sound.DirectAudioDevice$DirectDLI.<init>:(Ljava/lang/Class;[Ljavax/sound/sampled/AudioFormat;[Ljavax/sound/sampled/AudioFormat;II)V
        14: .line 77
            aastore
        15: .line 81
            goto 17
        16: .line 82
      StackMap locals: com.sun.media.sound.DirectAudioDevice com.sun.media.sound.DirectAudioDeviceProvider$DirectAudioDeviceInfo com.sun.media.sound.DirectAudioDevice$DirectDLI
      StackMap stack:
            aload 0 /* this */
            iconst_0
            anewarray javax.sound.sampled.Line$Info
            putfield com.sun.media.sound.DirectAudioDevice.sourceLineInfo:[Ljavax/sound/sampled/Line$Info;
        17: .line 86
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.media.sound.DirectAudioDevice.createDataLineInfo:(Z)Lcom/sun/media/sound/DirectAudioDevice$DirectDLI;
            astore 3 /* dstLineInfo */
        start local 3 // javax.sound.sampled.DataLine$Info dstLineInfo
        18: .line 87
            aload 3 /* dstLineInfo */
            ifnull 22
        19: .line 88
            aload 0 /* this */
            iconst_1
            anewarray javax.sound.sampled.Line$Info
            putfield com.sun.media.sound.DirectAudioDevice.targetLineInfo:[Ljavax/sound/sampled/Line$Info;
        20: .line 89
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice.targetLineInfo:[Ljavax/sound/sampled/Line$Info;
            iconst_0
            aload 3 /* dstLineInfo */
            aastore
        21: .line 90
            goto 23
        22: .line 91
      StackMap locals: javax.sound.sampled.DataLine$Info
      StackMap stack:
            aload 0 /* this */
            iconst_0
            anewarray javax.sound.sampled.Line$Info
            putfield com.sun.media.sound.DirectAudioDevice.targetLineInfo:[Ljavax/sound/sampled/Line$Info;
        23: .line 94
      StackMap locals:
      StackMap stack:
            return
        end local 3 // javax.sound.sampled.DataLine$Info dstLineInfo
        end local 2 // com.sun.media.sound.DirectAudioDevice$DirectDLI srcLineInfo
        end local 1 // com.sun.media.sound.DirectAudioDeviceProvider$DirectAudioDeviceInfo portMixerInfo
        end local 0 // com.sun.media.sound.DirectAudioDevice this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   24     0           this  Lcom/sun/media/sound/DirectAudioDevice;
            0   24     1  portMixerInfo  Lcom/sun/media/sound/DirectAudioDeviceProvider$DirectAudioDeviceInfo;
            7   24     2    srcLineInfo  Lcom/sun/media/sound/DirectAudioDevice$DirectDLI;
           18   24     3    dstLineInfo  Ljavax/sound/sampled/DataLine$Info;
    MethodParameters:
               Name  Flags
      portMixerInfo  

  private com.sun.media.sound.DirectAudioDevice$DirectDLI createDataLineInfo(boolean);
    descriptor: (Z)Lcom/sun/media/sound/DirectAudioDevice$DirectDLI;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=14, args_size=2
        start local 0 // com.sun.media.sound.DirectAudioDevice this
        start local 1 // boolean isSource
         0: .line 97
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 2 /* formats */
        start local 2 // java.util.Vector formats
         1: .line 98
            aconst_null
            astore 3 /* hardwareFormatArray */
        start local 3 // javax.sound.sampled.AudioFormat[] hardwareFormatArray
         2: .line 99
            aconst_null
            astore 4 /* formatArray */
        start local 4 // javax.sound.sampled.AudioFormat[] formatArray
         3: .line 101
            aload 2 /* formats */
            dup
            astore 5
            monitorenter
         4: .line 102
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice.getMixerIndex:()I
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice.getDeviceID:()I
         5: .line 103
            iload 1 /* isSource */
         6: .line 104
            aload 2 /* formats */
         7: .line 102
            invokestatic com.sun.media.sound.DirectAudioDevice.nGetFormats:(IIZLjava/util/Vector;)V
         8: .line 105
            aload 2 /* formats */
            invokevirtual java.util.Vector.size:()I
            ifle 64
         9: .line 106
            aload 2 /* formats */
            invokevirtual java.util.Vector.size:()I
            istore 6 /* size */
        start local 6 // int size
        10: .line 107
            iload 6 /* size */
            istore 7 /* formatArraySize */
        start local 7 // int formatArraySize
        11: .line 108
            iload 6 /* size */
            anewarray javax.sound.sampled.AudioFormat
            astore 3 /* hardwareFormatArray */
        12: .line 109
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        13: goto 22
        14: .line 110
      StackMap locals: com.sun.media.sound.DirectAudioDevice int java.util.Vector javax.sound.sampled.AudioFormat[] javax.sound.sampled.AudioFormat[] java.util.Vector int int int
      StackMap stack:
            aload 2 /* formats */
            iload 8 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast javax.sound.sampled.AudioFormat
            astore 9 /* format */
        start local 9 // javax.sound.sampled.AudioFormat format
        15: .line 111
            aload 3 /* hardwareFormatArray */
            iload 8 /* i */
            aload 9 /* format */
            aastore
        16: .line 112
            aload 9 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
            pop
        17: .line 113
            aload 9 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            istore 10 /* isSigned */
        start local 10 // boolean isSigned
        18: .line 114
            aload 9 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            istore 11 /* isUnsigned */
        start local 11 // boolean isUnsigned
        19: .line 115
            iload 10 /* isSigned */
            ifne 20
            iload 11 /* isUnsigned */
            ifeq 21
        20: .line 117
      StackMap locals: javax.sound.sampled.AudioFormat int int
      StackMap stack:
            iinc 7 /* formatArraySize */ 1
        end local 11 // boolean isUnsigned
        end local 10 // boolean isSigned
        end local 9 // javax.sound.sampled.AudioFormat format
        21: .line 109
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 8 /* i */
            iload 6 /* size */
            if_icmplt 14
        end local 8 // int i
        23: .line 120
            iload 7 /* formatArraySize */
            anewarray javax.sound.sampled.AudioFormat
            astore 4 /* formatArray */
        24: .line 121
            iconst_0
            istore 8 /* formatArrayIndex */
        start local 8 // int formatArrayIndex
        25: .line 122
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        26: goto 63
        27: .line 123
      StackMap locals: int
      StackMap stack:
            aload 3 /* hardwareFormatArray */
            iload 9 /* i */
            aaload
            astore 10 /* format */
        start local 10 // javax.sound.sampled.AudioFormat format
        28: .line 124
            aload 4 /* formatArray */
            iload 8 /* formatArrayIndex */
            iinc 8 /* formatArrayIndex */ 1
            aload 10 /* format */
            aastore
        29: .line 125
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
            istore 11 /* bits */
        start local 11 // int bits
        30: .line 126
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            istore 12 /* isSigned */
        start local 12 // boolean isSigned
        31: .line 127
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            istore 13 /* isUnsigned */
        start local 13 // boolean isUnsigned
        32: .line 129
            iload 11 /* bits */
            bipush 8
            if_icmpne 51
        33: .line 131
            iload 12 /* isSigned */
            ifeq 42
        34: .line 132
            aload 4 /* formatArray */
            iload 8 /* formatArrayIndex */
            iinc 8 /* formatArrayIndex */ 1
        35: .line 133
            new javax.sound.sampled.AudioFormat
            dup
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
        36: .line 134
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
            iload 11 /* bits */
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
        37: .line 135
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
        38: .line 136
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
        39: .line 133
            invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
        40: .line 132
            aastore
        41: .line 137
            goto 62
        42: .line 138
      StackMap locals: com.sun.media.sound.DirectAudioDevice int java.util.Vector javax.sound.sampled.AudioFormat[] javax.sound.sampled.AudioFormat[] java.util.Vector int int int int javax.sound.sampled.AudioFormat int int int
      StackMap stack:
            iload 13 /* isUnsigned */
            ifeq 62
        43: .line 139
            aload 4 /* formatArray */
            iload 8 /* formatArrayIndex */
            iinc 8 /* formatArrayIndex */ 1
        44: .line 140
            new javax.sound.sampled.AudioFormat
            dup
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
        45: .line 141
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
            iload 11 /* bits */
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
        46: .line 142
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
        47: .line 143
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
        48: .line 140
            invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
        49: .line 139
            aastore
        50: .line 145
            goto 62
      StackMap locals:
      StackMap stack:
        51: iload 11 /* bits */
            bipush 8
            if_icmple 62
            iload 12 /* isSigned */
            ifne 52
            iload 13 /* isUnsigned */
            ifeq 62
        52: .line 147
      StackMap locals:
      StackMap stack:
            aload 4 /* formatArray */
            iload 8 /* formatArrayIndex */
            iinc 8 /* formatArrayIndex */ 1
        53: .line 148
            new javax.sound.sampled.AudioFormat
            dup
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
        54: .line 149
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
            iload 11 /* bits */
        55: .line 150
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
        56: .line 151
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
        57: .line 152
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
        58: .line 153
            aload 10 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
            ifeq 59
            iconst_0
            goto 60
      StackMap locals: com.sun.media.sound.DirectAudioDevice int java.util.Vector javax.sound.sampled.AudioFormat[] javax.sound.sampled.AudioFormat[] java.util.Vector int int int int javax.sound.sampled.AudioFormat int int int
      StackMap stack: javax.sound.sampled.AudioFormat[] int new 53 new 53 javax.sound.sampled.AudioFormat$Encoding float int int int float
        59: iconst_1
        60: .line 148
      StackMap locals: com.sun.media.sound.DirectAudioDevice int java.util.Vector javax.sound.sampled.AudioFormat[] javax.sound.sampled.AudioFormat[] java.util.Vector int int int int javax.sound.sampled.AudioFormat int int int
      StackMap stack: javax.sound.sampled.AudioFormat[] int new 53 new 53 javax.sound.sampled.AudioFormat$Encoding float int int int float int
            invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
        61: .line 147
            aastore
        end local 13 // boolean isUnsigned
        end local 12 // boolean isSigned
        end local 11 // int bits
        end local 10 // javax.sound.sampled.AudioFormat format
        62: .line 122
      StackMap locals: com.sun.media.sound.DirectAudioDevice int java.util.Vector javax.sound.sampled.AudioFormat[] javax.sound.sampled.AudioFormat[] java.util.Vector int int int int
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        63: iload 9 /* i */
            iload 6 /* size */
            if_icmplt 27
        end local 9 // int i
        end local 8 // int formatArrayIndex
        end local 7 // int formatArraySize
        end local 6 // int size
        64: .line 101
      StackMap locals: com.sun.media.sound.DirectAudioDevice int java.util.Vector javax.sound.sampled.AudioFormat[] javax.sound.sampled.AudioFormat[] java.util.Vector
      StackMap stack:
            aload 5
            monitorexit
        65: goto 68
      StackMap locals:
      StackMap stack: java.lang.Throwable
        66: aload 5
            monitorexit
        67: athrow
        68: .line 160
      StackMap locals:
      StackMap stack:
            aload 4 /* formatArray */
            ifnull 75
        69: .line 161
            new com.sun.media.sound.DirectAudioDevice$DirectDLI
            dup
            iload 1 /* isSource */
            ifeq 70
            ldc Ljavax/sound/sampled/SourceDataLine;
            goto 71
      StackMap locals: com.sun.media.sound.DirectAudioDevice int java.util.Vector javax.sound.sampled.AudioFormat[] javax.sound.sampled.AudioFormat[]
      StackMap stack: new 69 new 69
        70: ldc Ljavax/sound/sampled/TargetDataLine;
        71: .line 162
      StackMap locals: com.sun.media.sound.DirectAudioDevice int java.util.Vector javax.sound.sampled.AudioFormat[] javax.sound.sampled.AudioFormat[]
      StackMap stack: new 69 new 69 java.lang.Class
            aload 4 /* formatArray */
            aload 3 /* hardwareFormatArray */
        72: .line 163
            bipush 32
        73: .line 164
            iconst_m1
        74: .line 161
            invokespecial com.sun.media.sound.DirectAudioDevice$DirectDLI.<init>:(Ljava/lang/Class;[Ljavax/sound/sampled/AudioFormat;[Ljavax/sound/sampled/AudioFormat;II)V
            areturn
        75: .line 166
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 4 // javax.sound.sampled.AudioFormat[] formatArray
        end local 3 // javax.sound.sampled.AudioFormat[] hardwareFormatArray
        end local 2 // java.util.Vector formats
        end local 1 // boolean isSource
        end local 0 // com.sun.media.sound.DirectAudioDevice this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   76     0                 this  Lcom/sun/media/sound/DirectAudioDevice;
            0   76     1             isSource  Z
            1   76     2              formats  Ljava/util/Vector;
            2   76     3  hardwareFormatArray  [Ljavax/sound/sampled/AudioFormat;
            3   76     4          formatArray  [Ljavax/sound/sampled/AudioFormat;
           10   64     6                 size  I
           11   64     7      formatArraySize  I
           13   23     8                    i  I
           15   21     9               format  Ljavax/sound/sampled/AudioFormat;
           18   21    10             isSigned  Z
           19   21    11           isUnsigned  Z
           25   64     8     formatArrayIndex  I
           26   64     9                    i  I
           28   62    10               format  Ljavax/sound/sampled/AudioFormat;
           30   62    11                 bits  I
           31   62    12             isSigned  Z
           32   62    13           isUnsigned  Z
      Exception table:
        from    to  target  type
           4    65      66  any
          66    67      66  any
    MethodParameters:
          Name  Flags
      isSource  

  public javax.sound.sampled.Line getLine(javax.sound.sampled.Line$Info);
    descriptor: (Ljavax/sound/sampled/Line$Info;)Ljavax/sound/sampled/Line;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // com.sun.media.sound.DirectAudioDevice this
        start local 1 // javax.sound.sampled.Line$Info info
         0: .line 172
            aload 0 /* this */
            aload 1 /* info */
            invokevirtual com.sun.media.sound.DirectAudioDevice.getLineInfo:(Ljavax/sound/sampled/Line$Info;)Ljavax/sound/sampled/Line$Info;
            astore 2 /* fullInfo */
        start local 2 // javax.sound.sampled.Line$Info fullInfo
         1: .line 173
            aload 2 /* fullInfo */
            ifnonnull 3
         2: .line 174
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Line unsupported: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* info */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 176
      StackMap locals: javax.sound.sampled.Line$Info
      StackMap stack:
            aload 2 /* fullInfo */
            instanceof javax.sound.sampled.DataLine$Info
            ifeq 22
         4: .line 178
            aload 2 /* fullInfo */
            checkcast javax.sound.sampled.DataLine$Info
            astore 3 /* dataLineInfo */
        start local 3 // javax.sound.sampled.DataLine$Info dataLineInfo
         5: .line 180
            iconst_m1
            istore 5 /* lineBufferSize */
        start local 5 // int lineBufferSize
         6: .line 185
            aconst_null
            astore 6 /* supportedFormats */
        start local 6 // javax.sound.sampled.AudioFormat[] supportedFormats
         7: .line 187
            aload 1 /* info */
            instanceof javax.sound.sampled.DataLine$Info
            ifeq 10
         8: .line 188
            aload 1 /* info */
            checkcast javax.sound.sampled.DataLine$Info
            invokevirtual javax.sound.sampled.DataLine$Info.getFormats:()[Ljavax/sound/sampled/AudioFormat;
            astore 6 /* supportedFormats */
         9: .line 189
            aload 1 /* info */
            checkcast javax.sound.sampled.DataLine$Info
            invokevirtual javax.sound.sampled.DataLine$Info.getMaxBufferSize:()I
            istore 5 /* lineBufferSize */
        10: .line 192
      StackMap locals: com.sun.media.sound.DirectAudioDevice javax.sound.sampled.Line$Info javax.sound.sampled.Line$Info javax.sound.sampled.DataLine$Info top int javax.sound.sampled.AudioFormat[]
      StackMap stack:
            aload 6 /* supportedFormats */
            ifnull 11
            aload 6 /* supportedFormats */
            arraylength
            ifne 13
        11: .line 194
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* lineFormat */
        start local 4 // javax.sound.sampled.AudioFormat lineFormat
        12: .line 195
            goto 16
        end local 4 // javax.sound.sampled.AudioFormat lineFormat
        13: .line 198
      StackMap locals:
      StackMap stack:
            aload 6 /* supportedFormats */
            aload 6 /* supportedFormats */
            arraylength
            iconst_1
            isub
            aaload
            astore 4 /* lineFormat */
        start local 4 // javax.sound.sampled.AudioFormat lineFormat
        14: .line 201
            aload 4 /* lineFormat */
            invokestatic com.sun.media.sound.Toolkit.isFullySpecifiedPCMFormat:(Ljavax/sound/sampled/AudioFormat;)Z
            ifne 16
        15: .line 202
            aconst_null
            astore 4 /* lineFormat */
        16: .line 206
      StackMap locals: com.sun.media.sound.DirectAudioDevice javax.sound.sampled.Line$Info javax.sound.sampled.Line$Info javax.sound.sampled.DataLine$Info javax.sound.sampled.AudioFormat int javax.sound.sampled.AudioFormat[]
      StackMap stack:
            aload 3 /* dataLineInfo */
            invokevirtual javax.sound.sampled.DataLine$Info.getLineClass:()Ljava/lang/Class;
            ldc Lcom/sun/media/sound/DirectAudioDevice$DirectSDL;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 18
        17: .line 207
            new com.sun.media.sound.DirectAudioDevice$DirectSDL
            dup
            aload 3 /* dataLineInfo */
            aload 4 /* lineFormat */
            iload 5 /* lineBufferSize */
            aload 0 /* this */
            invokespecial com.sun.media.sound.DirectAudioDevice$DirectSDL.<init>:(Ljavax/sound/sampled/DataLine$Info;Ljavax/sound/sampled/AudioFormat;ILcom/sun/media/sound/DirectAudioDevice;)V
            areturn
        18: .line 209
      StackMap locals:
      StackMap stack:
            aload 3 /* dataLineInfo */
            invokevirtual javax.sound.sampled.DataLine$Info.getLineClass:()Ljava/lang/Class;
            ldc Lcom/sun/media/sound/DirectAudioDevice$DirectClip;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 20
        19: .line 210
            new com.sun.media.sound.DirectAudioDevice$DirectClip
            dup
            aload 3 /* dataLineInfo */
            aload 4 /* lineFormat */
            iload 5 /* lineBufferSize */
            aload 0 /* this */
            invokespecial com.sun.media.sound.DirectAudioDevice$DirectClip.<init>:(Ljavax/sound/sampled/DataLine$Info;Ljavax/sound/sampled/AudioFormat;ILcom/sun/media/sound/DirectAudioDevice;)V
            areturn
        20: .line 212
      StackMap locals:
      StackMap stack:
            aload 3 /* dataLineInfo */
            invokevirtual javax.sound.sampled.DataLine$Info.getLineClass:()Ljava/lang/Class;
            ldc Lcom/sun/media/sound/DirectAudioDevice$DirectTDL;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 22
        21: .line 213
            new com.sun.media.sound.DirectAudioDevice$DirectTDL
            dup
            aload 3 /* dataLineInfo */
            aload 4 /* lineFormat */
            iload 5 /* lineBufferSize */
            aload 0 /* this */
            invokespecial com.sun.media.sound.DirectAudioDevice$DirectTDL.<init>:(Ljavax/sound/sampled/DataLine$Info;Ljavax/sound/sampled/AudioFormat;ILcom/sun/media/sound/DirectAudioDevice;)V
            areturn
        end local 6 // javax.sound.sampled.AudioFormat[] supportedFormats
        end local 5 // int lineBufferSize
        end local 4 // javax.sound.sampled.AudioFormat lineFormat
        end local 3 // javax.sound.sampled.DataLine$Info dataLineInfo
        22: .line 216
      StackMap locals: com.sun.media.sound.DirectAudioDevice javax.sound.sampled.Line$Info javax.sound.sampled.Line$Info
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Line unsupported: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* info */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // javax.sound.sampled.Line$Info fullInfo
        end local 1 // javax.sound.sampled.Line$Info info
        end local 0 // com.sun.media.sound.DirectAudioDevice this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   23     0              this  Lcom/sun/media/sound/DirectAudioDevice;
            0   23     1              info  Ljavax/sound/sampled/Line$Info;
            1   23     2          fullInfo  Ljavax/sound/sampled/Line$Info;
            5   22     3      dataLineInfo  Ljavax/sound/sampled/DataLine$Info;
           12   13     4        lineFormat  Ljavax/sound/sampled/AudioFormat;
           14   22     4        lineFormat  Ljavax/sound/sampled/AudioFormat;
            6   22     5    lineBufferSize  I
            7   22     6  supportedFormats  [Ljavax/sound/sampled/AudioFormat;
    Exceptions:
      throws javax.sound.sampled.LineUnavailableException
    MethodParameters:
      Name  Flags
      info  

  public int getMaxLines(javax.sound.sampled.Line$Info);
    descriptor: (Ljavax/sound/sampled/Line$Info;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.media.sound.DirectAudioDevice this
        start local 1 // javax.sound.sampled.Line$Info info
         0: .line 221
            aload 0 /* this */
            aload 1 /* info */
            invokevirtual com.sun.media.sound.DirectAudioDevice.getLineInfo:(Ljavax/sound/sampled/Line$Info;)Ljavax/sound/sampled/Line$Info;
            astore 2 /* fullInfo */
        start local 2 // javax.sound.sampled.Line$Info fullInfo
         1: .line 224
            aload 2 /* fullInfo */
            ifnonnull 3
         2: .line 225
            iconst_0
            ireturn
         3: .line 228
      StackMap locals: javax.sound.sampled.Line$Info
      StackMap stack:
            aload 2 /* fullInfo */
            instanceof javax.sound.sampled.DataLine$Info
            ifeq 5
         4: .line 230
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice.getMaxSimulLines:()I
            ireturn
         5: .line 233
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // javax.sound.sampled.Line$Info fullInfo
        end local 1 // javax.sound.sampled.Line$Info info
        end local 0 // com.sun.media.sound.DirectAudioDevice this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/sun/media/sound/DirectAudioDevice;
            0    6     1      info  Ljavax/sound/sampled/Line$Info;
            1    6     2  fullInfo  Ljavax/sound/sampled/Line$Info;
    MethodParameters:
      Name  Flags
      info  

  protected void implOpen();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice this
         0: .line 239
            return
        end local 0 // com.sun.media.sound.DirectAudioDevice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/DirectAudioDevice;
    Exceptions:
      throws javax.sound.sampled.LineUnavailableException

  protected void implClose();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice this
         0: .line 243
            return
        end local 0 // com.sun.media.sound.DirectAudioDevice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/DirectAudioDevice;

  protected void implStart();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice this
         0: .line 247
            return
        end local 0 // com.sun.media.sound.DirectAudioDevice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/DirectAudioDevice;

  protected void implStop();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice this
         0: .line 251
            return
        end local 0 // com.sun.media.sound.DirectAudioDevice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/DirectAudioDevice;

  int getMixerIndex();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice this
         0: .line 257
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice.getMixerInfo:()Ljavax/sound/sampled/Mixer$Info;
            checkcast com.sun.media.sound.DirectAudioDeviceProvider$DirectAudioDeviceInfo
            invokevirtual com.sun.media.sound.DirectAudioDeviceProvider$DirectAudioDeviceInfo.getIndex:()I
            ireturn
        end local 0 // com.sun.media.sound.DirectAudioDevice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/DirectAudioDevice;

  int getDeviceID();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice this
         0: .line 261
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice.getMixerInfo:()Ljavax/sound/sampled/Mixer$Info;
            checkcast com.sun.media.sound.DirectAudioDeviceProvider$DirectAudioDeviceInfo
            invokevirtual com.sun.media.sound.DirectAudioDeviceProvider$DirectAudioDeviceInfo.getDeviceID:()I
            ireturn
        end local 0 // com.sun.media.sound.DirectAudioDevice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/DirectAudioDevice;

  int getMaxSimulLines();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice this
         0: .line 265
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice.getMixerInfo:()Ljavax/sound/sampled/Mixer$Info;
            checkcast com.sun.media.sound.DirectAudioDeviceProvider$DirectAudioDeviceInfo
            invokevirtual com.sun.media.sound.DirectAudioDeviceProvider$DirectAudioDeviceInfo.getMaxSimulLines:()I
            ireturn
        end local 0 // com.sun.media.sound.DirectAudioDevice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/DirectAudioDevice;

  private static void addFormat(java.util.Vector, int, int, int, float, int, boolean, boolean);
    descriptor: (Ljava/util/Vector;IIIFIZZ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=9, args_size=8
        start local 0 // java.util.Vector v
        start local 1 // int bits
        start local 2 // int frameSizeInBytes
        start local 3 // int channels
        start local 4 // float sampleRate
        start local 5 // int encoding
        start local 6 // boolean signed
        start local 7 // boolean bigEndian
         0: .line 270
            aconst_null
            astore 8 /* enc */
        start local 8 // javax.sound.sampled.AudioFormat$Encoding enc
         1: .line 271
            iload 5 /* encoding */
            tableswitch { // 0 - 2
                    0: 2
                    1: 6
                    2: 10
              default: 13
          }
         2: .line 273
      StackMap locals: javax.sound.sampled.AudioFormat$Encoding
      StackMap stack:
            iload 6 /* signed */
            ifeq 3
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            goto 4
      StackMap locals:
      StackMap stack:
         3: getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
      StackMap locals:
      StackMap stack: javax.sound.sampled.AudioFormat$Encoding
         4: astore 8 /* enc */
         5: .line 274
            goto 13
         6: .line 276
      StackMap locals:
      StackMap stack:
            getstatic javax.sound.sampled.AudioFormat$Encoding.ULAW:Ljavax/sound/sampled/AudioFormat$Encoding;
            astore 8 /* enc */
         7: .line 277
            iload 1 /* bits */
            bipush 8
            if_icmpeq 13
         8: .line 279
            bipush 8
            istore 1 /* bits */
            iload 3 /* channels */
            istore 2 /* frameSizeInBytes */
         9: .line 281
            goto 13
        10: .line 283
      StackMap locals:
      StackMap stack:
            getstatic javax.sound.sampled.AudioFormat$Encoding.ALAW:Ljavax/sound/sampled/AudioFormat$Encoding;
            astore 8 /* enc */
        11: .line 284
            iload 1 /* bits */
            bipush 8
            if_icmpeq 13
        12: .line 286
            bipush 8
            istore 1 /* bits */
            iload 3 /* channels */
            istore 2 /* frameSizeInBytes */
        13: .line 290
      StackMap locals:
      StackMap stack:
            aload 8 /* enc */
            ifnonnull 15
        14: .line 292
            return
        15: .line 294
      StackMap locals:
      StackMap stack:
            iload 2 /* frameSizeInBytes */
            ifgt 20
        16: .line 295
            iload 3 /* channels */
            ifle 19
        17: .line 296
            iload 1 /* bits */
            bipush 7
            iadd
            bipush 8
            idiv
            iload 3 /* channels */
            imul
            istore 2 /* frameSizeInBytes */
        18: .line 297
            goto 20
        19: .line 298
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 2 /* frameSizeInBytes */
        20: .line 301
      StackMap locals:
      StackMap stack:
            aload 0 /* v */
            new javax.sound.sampled.AudioFormat
            dup
            aload 8 /* enc */
            fload 4 /* sampleRate */
            iload 1 /* bits */
            iload 3 /* channels */
            iload 2 /* frameSizeInBytes */
            fload 4 /* sampleRate */
            iload 7 /* bigEndian */
            invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
            invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
            pop
        21: .line 302
            return
        end local 8 // javax.sound.sampled.AudioFormat$Encoding enc
        end local 7 // boolean bigEndian
        end local 6 // boolean signed
        end local 5 // int encoding
        end local 4 // float sampleRate
        end local 3 // int channels
        end local 2 // int frameSizeInBytes
        end local 1 // int bits
        end local 0 // java.util.Vector v
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0                 v  Ljava/util/Vector;
            0   22     1              bits  I
            0   22     2  frameSizeInBytes  I
            0   22     3          channels  I
            0   22     4        sampleRate  F
            0   22     5          encoding  I
            0   22     6            signed  Z
            0   22     7         bigEndian  Z
            1   22     8               enc  Ljavax/sound/sampled/AudioFormat$Encoding;
    MethodParameters:
                  Name  Flags
      v                 
      bits              
      frameSizeInBytes  
      channels          
      sampleRate        
      encoding          
      signed            
      bigEndian         

  protected static javax.sound.sampled.AudioFormat getSignOrEndianChangedFormat(javax.sound.sampled.AudioFormat);
    descriptor: (Ljavax/sound/sampled/AudioFormat;)Ljavax/sound/sampled/AudioFormat;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=9, locals=3, args_size=1
        start local 0 // javax.sound.sampled.AudioFormat format
         0: .line 305
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            istore 1 /* isSigned */
        start local 1 // boolean isSigned
         1: .line 306
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            istore 2 /* isUnsigned */
        start local 2 // boolean isUnsigned
         2: .line 307
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
            bipush 8
            if_icmple 8
            iload 1 /* isSigned */
            ifeq 8
         3: .line 309
            new javax.sound.sampled.AudioFormat
            dup
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
         4: .line 310
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
         5: .line 311
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameRate:()F
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
            ifeq 6
            iconst_0
            goto 7
      StackMap locals: javax.sound.sampled.AudioFormat int int
      StackMap stack: new 3 new 3 javax.sound.sampled.AudioFormat$Encoding float int int int float
         6: iconst_1
         7: .line 309
      StackMap locals: javax.sound.sampled.AudioFormat int int
      StackMap stack: new 3 new 3 javax.sound.sampled.AudioFormat$Encoding float int int int float int
            invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
            areturn
         8: .line 313
      StackMap locals:
      StackMap stack:
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
            bipush 8
            if_icmpne 14
            iload 1 /* isSigned */
            ifne 9
            iload 2 /* isUnsigned */
            ifeq 14
         9: .line 315
      StackMap locals:
      StackMap stack:
            new javax.sound.sampled.AudioFormat
            dup
            iload 1 /* isSigned */
            ifeq 10
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            goto 11
      StackMap locals: javax.sound.sampled.AudioFormat int int
      StackMap stack: new 9 new 9
        10: getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
        11: .line 316
      StackMap locals: javax.sound.sampled.AudioFormat int int
      StackMap stack: new 9 new 9 javax.sound.sampled.AudioFormat$Encoding
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
        12: .line 317
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameRate:()F
            aload 0 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
        13: .line 315
            invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
            areturn
        14: .line 319
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // boolean isUnsigned
        end local 1 // boolean isSigned
        end local 0 // javax.sound.sampled.AudioFormat format
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0      format  Ljavax/sound/sampled/AudioFormat;
            1   15     1    isSigned  Z
            2   15     2  isUnsigned  Z
    MethodParameters:
        Name  Flags
      format  

  private static native void nGetFormats(int, int, boolean, java.util.Vector);
    descriptor: (IIZLjava/util/Vector;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
            Name  Flags
      mixerIndex  
      deviceID    
      isSource    
      formats     

  private static native long nOpen(int, int, boolean, int, float, int, int, int, boolean, boolean, int);
    descriptor: (IIZIFIIIZZI)J
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws javax.sound.sampled.LineUnavailableException
    MethodParameters:
                  Name  Flags
      mixerIndex        
      deviceID          
      isSource          
      encoding          
      sampleRate        
      sampleSizeInBits  
      frameSize         
      channels          
      signed            
      bigEndian         
      bufferSize        

  private static native void nStart(long, boolean);
    descriptor: (JZ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      id        
      isSource  

  private static native void nStop(long, boolean);
    descriptor: (JZ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      id        
      isSource  

  private static native void nClose(long, boolean);
    descriptor: (JZ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      id        
      isSource  

  private static native int nWrite(long, byte[], int, int, int, float, float);
    descriptor: (J[BIIIFF)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      id              
      b               
      off             
      len             
      conversionSize  
      volLeft         
      volRight        

  private static native int nRead(long, byte[], int, int, int);
    descriptor: (J[BIII)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      id              
      b               
      off             
      len             
      conversionSize  

  private static native int nGetBufferSize(long, boolean);
    descriptor: (JZ)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      id        
      isSource  

  private static native boolean nIsStillDraining(long, boolean);
    descriptor: (JZ)Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      id        
      isSource  

  private static native void nFlush(long, boolean);
    descriptor: (JZ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      id        
      isSource  

  private static native int nAvailable(long, boolean);
    descriptor: (JZ)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      id        
      isSource  

  private static native long nGetBytePosition(long, boolean, long);
    descriptor: (JZJ)J
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      id        
      isSource  
      javaPos   

  private static native void nSetBytePosition(long, boolean, long);
    descriptor: (JZJ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      id        
      isSource  
      pos       

  private static native boolean nRequiresServicing(long, boolean);
    descriptor: (JZ)Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      id        
      isSource  

  private static native void nService(long, boolean);
    descriptor: (JZ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      id        
      isSource  
}
SourceFile: "DirectAudioDevice.java"
NestMembers:
  com.sun.media.sound.DirectAudioDevice$DirectBAOS  com.sun.media.sound.DirectAudioDevice$DirectClip  com.sun.media.sound.DirectAudioDevice$DirectDL  com.sun.media.sound.DirectAudioDevice$DirectDL$Balance  com.sun.media.sound.DirectAudioDevice$DirectDL$Gain  com.sun.media.sound.DirectAudioDevice$DirectDL$Mute  com.sun.media.sound.DirectAudioDevice$DirectDL$Pan  com.sun.media.sound.DirectAudioDevice$DirectDLI  com.sun.media.sound.DirectAudioDevice$DirectSDL  com.sun.media.sound.DirectAudioDevice$DirectTDL
InnerClasses:
  private DirectBAOS = com.sun.media.sound.DirectAudioDevice$DirectBAOS of com.sun.media.sound.DirectAudioDevice
  private final DirectClip = com.sun.media.sound.DirectAudioDevice$DirectClip of com.sun.media.sound.DirectAudioDevice
  private DirectDL = com.sun.media.sound.DirectAudioDevice$DirectDL of com.sun.media.sound.DirectAudioDevice
  private final DirectDLI = com.sun.media.sound.DirectAudioDevice$DirectDLI of com.sun.media.sound.DirectAudioDevice
  private final DirectSDL = com.sun.media.sound.DirectAudioDevice$DirectSDL of com.sun.media.sound.DirectAudioDevice
  private final DirectTDL = com.sun.media.sound.DirectAudioDevice$DirectTDL of com.sun.media.sound.DirectAudioDevice
  final DirectAudioDeviceInfo = com.sun.media.sound.DirectAudioDeviceProvider$DirectAudioDeviceInfo of com.sun.media.sound.DirectAudioDeviceProvider
  public Encoding = javax.sound.sampled.AudioFormat$Encoding of javax.sound.sampled.AudioFormat
  public Info = javax.sound.sampled.DataLine$Info of javax.sound.sampled.DataLine
  public Info = javax.sound.sampled.Line$Info of javax.sound.sampled.Line
  public Info = javax.sound.sampled.Mixer$Info of javax.sound.sampled.Mixer