public final class sun.audio.AudioDevice
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.audio.AudioDevice
  super_class: java.lang.Object
{
  private boolean DEBUG;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.Hashtable clipStreams;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Vector infos;
    descriptor: Ljava/util/Vector;
    flags: (0x0002) ACC_PRIVATE

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

  private javax.sound.sampled.Mixer mixer;
    descriptor: Ljavax/sound/sampled/Mixer;
    flags: (0x0002) ACC_PRIVATE

  public static final sun.audio.AudioDevice device;
    descriptor: Lsun/audio/AudioDevice;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 78
            new sun.audio.AudioDevice
            dup
            invokespecial sun.audio.AudioDevice.<init>:()V
            putstatic sun.audio.AudioDevice.device:Lsun/audio/AudioDevice;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.audio.AudioDevice this
         0: .line 83
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            aload 0 /* this */
            iconst_0
            putfield sun.audio.AudioDevice.DEBUG:Z
         2: .line 67
            aload 0 /* this */
            iconst_0
            putfield sun.audio.AudioDevice.playing:Z
         3: .line 70
            aload 0 /* this */
            aconst_null
            putfield sun.audio.AudioDevice.mixer:Ljavax/sound/sampled/Mixer;
         4: .line 85
            aload 0 /* this */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield sun.audio.AudioDevice.clipStreams:Ljava/util/Hashtable;
         5: .line 86
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield sun.audio.AudioDevice.infos:Ljava/util/Vector;
         6: .line 87
            return
        end local 0 // sun.audio.AudioDevice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/audio/AudioDevice;

  private synchronized void startSampled(javax.sound.sampled.AudioInputStream, java.io.InputStream);
    descriptor: (Ljavax/sound/sampled/AudioInputStream;Ljava/io/InputStream;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // sun.audio.AudioDevice this
        start local 1 // javax.sound.sampled.AudioInputStream as
        start local 2 // java.io.InputStream in
         0: .line 94
            aconst_null
            astore 3 /* info */
        start local 3 // sun.audio.AudioDevice$Info info
         1: .line 95
            aconst_null
            astore 4 /* datapusher */
        start local 4 // com.sun.media.sound.DataPusher datapusher
         2: .line 96
            aconst_null
            astore 5 /* lineinfo */
        start local 5 // javax.sound.sampled.DataLine$Info lineinfo
         3: .line 97
            aconst_null
            astore 6 /* sourcedataline */
        start local 6 // javax.sound.sampled.SourceDataLine sourcedataline
         4: .line 100
            aload 1 /* as */
            invokestatic com.sun.media.sound.Toolkit.getPCMConvertedAudioInputStream:(Ljavax/sound/sampled/AudioInputStream;)Ljavax/sound/sampled/AudioInputStream;
            astore 1 /* as */
         5: .line 102
            aload 1 /* as */
            ifnonnull 7
         6: .line 104
            return
         7: .line 107
      StackMap locals: sun.audio.AudioDevice javax.sound.sampled.AudioInputStream java.io.InputStream sun.audio.AudioDevice$Info com.sun.media.sound.DataPusher javax.sound.sampled.DataLine$Info javax.sound.sampled.SourceDataLine
      StackMap stack:
            new javax.sound.sampled.DataLine$Info
            dup
            ldc Ljavax/sound/sampled/SourceDataLine;
         8: .line 108
            aload 1 /* as */
            invokevirtual javax.sound.sampled.AudioInputStream.getFormat:()Ljavax/sound/sampled/AudioFormat;
         9: .line 107
            invokespecial javax.sound.sampled.DataLine$Info.<init>:(Ljava/lang/Class;Ljavax/sound/sampled/AudioFormat;)V
            astore 5 /* lineinfo */
        10: .line 109
            aload 5 /* lineinfo */
            invokestatic javax.sound.sampled.AudioSystem.isLineSupported:(Ljavax/sound/sampled/Line$Info;)Z
            ifne 12
        11: .line 110
            return
        12: .line 112
      StackMap locals:
      StackMap stack:
            aload 5 /* lineinfo */
            invokestatic javax.sound.sampled.AudioSystem.getLine:(Ljavax/sound/sampled/Line$Info;)Ljavax/sound/sampled/Line;
            checkcast javax.sound.sampled.SourceDataLine
            astore 6 /* sourcedataline */
        13: .line 113
            new com.sun.media.sound.DataPusher
            dup
            aload 6 /* sourcedataline */
            aload 1 /* as */
            invokespecial com.sun.media.sound.DataPusher.<init>:(Ljavax/sound/sampled/SourceDataLine;Ljavax/sound/sampled/AudioInputStream;)V
            astore 4 /* datapusher */
        14: .line 115
            new sun.audio.AudioDevice$Info
            dup
            aload 0 /* this */
            aconst_null
            aload 2 /* in */
            aload 4 /* datapusher */
            invokespecial sun.audio.AudioDevice$Info.<init>:(Lsun/audio/AudioDevice;Ljavax/sound/midi/Sequencer;Ljava/io/InputStream;Lcom/sun/media/sound/DataPusher;)V
            astore 3 /* info */
        15: .line 116
            aload 0 /* this */
            getfield sun.audio.AudioDevice.infos:Ljava/util/Vector;
            aload 3 /* info */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        16: .line 118
            aload 4 /* datapusher */
            invokevirtual com.sun.media.sound.DataPusher.start:()V
        17: .line 119
            return
        end local 6 // javax.sound.sampled.SourceDataLine sourcedataline
        end local 5 // javax.sound.sampled.DataLine$Info lineinfo
        end local 4 // com.sun.media.sound.DataPusher datapusher
        end local 3 // sun.audio.AudioDevice$Info info
        end local 2 // java.io.InputStream in
        end local 1 // javax.sound.sampled.AudioInputStream as
        end local 0 // sun.audio.AudioDevice this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Lsun/audio/AudioDevice;
            0   18     1              as  Ljavax/sound/sampled/AudioInputStream;
            0   18     2              in  Ljava/io/InputStream;
            1   18     3            info  Lsun/audio/AudioDevice$Info;
            2   18     4      datapusher  Lcom/sun/media/sound/DataPusher;
            3   18     5        lineinfo  Ljavax/sound/sampled/DataLine$Info;
            4   18     6  sourcedataline  Ljavax/sound/sampled/SourceDataLine;
    Exceptions:
      throws javax.sound.sampled.UnsupportedAudioFileException, javax.sound.sampled.LineUnavailableException
    MethodParameters:
      Name  Flags
      as    
      in    

  private synchronized void startMidi(java.io.InputStream, java.io.InputStream);
    descriptor: (Ljava/io/InputStream;Ljava/io/InputStream;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.audio.AudioDevice this
        start local 1 // java.io.InputStream bis
        start local 2 // java.io.InputStream in
         0: .line 125
            aconst_null
            astore 3 /* sequencer */
        start local 3 // javax.sound.midi.Sequencer sequencer
         1: .line 126
            aconst_null
            astore 4 /* info */
        start local 4 // sun.audio.AudioDevice$Info info
         2: .line 128
            invokestatic javax.sound.midi.MidiSystem.getSequencer:()Ljavax/sound/midi/Sequencer;
            astore 3 /* sequencer */
         3: .line 129
            aload 3 /* sequencer */
            invokeinterface javax.sound.midi.Sequencer.open:()V
         4: .line 131
            aload 3 /* sequencer */
            aload 1 /* bis */
            invokeinterface javax.sound.midi.Sequencer.setSequence:(Ljava/io/InputStream;)V
         5: .line 132
            goto 8
      StackMap locals: sun.audio.AudioDevice java.io.InputStream java.io.InputStream javax.sound.midi.Sequencer sun.audio.AudioDevice$Info
      StackMap stack: java.io.IOException
         6: astore 5 /* e */
        start local 5 // java.io.IOException e
         7: .line 133
            new javax.sound.midi.InvalidMidiDataException
            dup
            aload 5 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.sound.midi.InvalidMidiDataException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.io.IOException e
         8: .line 136
      StackMap locals:
      StackMap stack:
            new sun.audio.AudioDevice$Info
            dup
            aload 0 /* this */
            aload 3 /* sequencer */
            aload 2 /* in */
            aconst_null
            invokespecial sun.audio.AudioDevice$Info.<init>:(Lsun/audio/AudioDevice;Ljavax/sound/midi/Sequencer;Ljava/io/InputStream;Lcom/sun/media/sound/DataPusher;)V
            astore 4 /* info */
         9: .line 138
            aload 0 /* this */
            getfield sun.audio.AudioDevice.infos:Ljava/util/Vector;
            aload 4 /* info */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        10: .line 141
            aload 3 /* sequencer */
            aload 4 /* info */
            invokeinterface javax.sound.midi.Sequencer.addMetaEventListener:(Ljavax/sound/midi/MetaEventListener;)Z
            pop
        11: .line 143
            aload 3 /* sequencer */
            invokeinterface javax.sound.midi.Sequencer.start:()V
        12: .line 145
            return
        end local 4 // sun.audio.AudioDevice$Info info
        end local 3 // javax.sound.midi.Sequencer sequencer
        end local 2 // java.io.InputStream in
        end local 1 // java.io.InputStream bis
        end local 0 // sun.audio.AudioDevice this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lsun/audio/AudioDevice;
            0   13     1        bis  Ljava/io/InputStream;
            0   13     2         in  Ljava/io/InputStream;
            1   13     3  sequencer  Ljavax/sound/midi/Sequencer;
            2   13     4       info  Lsun/audio/AudioDevice$Info;
            7    8     5          e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
    Exceptions:
      throws javax.sound.midi.InvalidMidiDataException, javax.sound.midi.MidiUnavailableException
    MethodParameters:
      Name  Flags
      bis   
      in    

  public synchronized void openChannel(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=9, locals=7, args_size=2
        start local 0 // sun.audio.AudioDevice this
        start local 1 // java.io.InputStream in
         0: .line 155
            aload 0 /* this */
            getfield sun.audio.AudioDevice.DEBUG:Z
            ifeq 3
         1: .line 156
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "AudioDevice: openChannel"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 157
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "input stream ="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* in */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 160
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* info */
        start local 2 // sun.audio.AudioDevice$Info info
         4: .line 163
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 10
         6: .line 164
      StackMap locals: sun.audio.AudioDevice$Info int
      StackMap stack:
            aload 0 /* this */
            getfield sun.audio.AudioDevice.infos:Ljava/util/Vector;
            iload 3 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast sun.audio.AudioDevice$Info
            astore 2 /* info */
         7: .line 165
            aload 2 /* info */
            getfield sun.audio.AudioDevice$Info.in:Ljava/io/InputStream;
            aload 1 /* in */
            if_acmpne 9
         8: .line 167
            return
         9: .line 163
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            aload 0 /* this */
            getfield sun.audio.AudioDevice.infos:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            if_icmplt 6
        end local 3 // int i
        11: .line 172
            aconst_null
            astore 3 /* as */
        start local 3 // javax.sound.sampled.AudioInputStream as
        12: .line 174
            aload 1 /* in */
            instanceof sun.audio.AudioStream
            ifeq 23
        13: .line 176
            aload 1 /* in */
            checkcast sun.audio.AudioStream
            getfield sun.audio.AudioStream.midiformat:Ljavax/sound/midi/MidiFileFormat;
            ifnull 18
        14: .line 180
            aload 0 /* this */
            aload 1 /* in */
            checkcast sun.audio.AudioStream
            getfield sun.audio.AudioStream.stream:Ljava/io/InputStream;
            aload 1 /* in */
            invokevirtual sun.audio.AudioDevice.startMidi:(Ljava/io/InputStream;Ljava/io/InputStream;)V
        15: .line 181
            goto 72
      StackMap locals: sun.audio.AudioDevice java.io.InputStream sun.audio.AudioDevice$Info javax.sound.sampled.AudioInputStream
      StackMap stack: java.lang.Exception
        16: pop
        17: .line 182
            return
        18: .line 186
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            checkcast sun.audio.AudioStream
            getfield sun.audio.AudioStream.ais:Ljavax/sound/sampled/AudioInputStream;
            ifnull 72
        19: .line 190
            aload 0 /* this */
            aload 1 /* in */
            checkcast sun.audio.AudioStream
            getfield sun.audio.AudioStream.ais:Ljavax/sound/sampled/AudioInputStream;
            aload 1 /* in */
            invokevirtual sun.audio.AudioDevice.startSampled:(Ljavax/sound/sampled/AudioInputStream;Ljava/io/InputStream;)V
        20: .line 191
            goto 72
      StackMap locals:
      StackMap stack: java.lang.Exception
        21: pop
        22: .line 192
            return
        23: .line 196
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            instanceof sun.audio.AudioDataStream
            ifeq 41
        24: .line 197
            aload 1 /* in */
            instanceof sun.audio.ContinuousAudioDataStream
            ifeq 33
        25: .line 199
            new javax.sound.sampled.AudioInputStream
            dup
            aload 1 /* in */
        26: .line 200
            aload 1 /* in */
            checkcast sun.audio.AudioDataStream
            invokevirtual sun.audio.AudioDataStream.getAudioData:()Lsun/audio/AudioData;
            getfield sun.audio.AudioData.format:Ljavax/sound/sampled/AudioFormat;
        27: .line 201
            ldc -1
        28: .line 199
            invokespecial javax.sound.sampled.AudioInputStream.<init>:(Ljava/io/InputStream;Ljavax/sound/sampled/AudioFormat;J)V
            astore 4 /* ais */
        start local 4 // javax.sound.sampled.AudioInputStream ais
        29: .line 202
            aload 0 /* this */
            aload 4 /* ais */
            aload 1 /* in */
            invokevirtual sun.audio.AudioDevice.startSampled:(Ljavax/sound/sampled/AudioInputStream;Ljava/io/InputStream;)V
        end local 4 // javax.sound.sampled.AudioInputStream ais
        30: .line 203
            goto 72
      StackMap locals:
      StackMap stack: java.lang.Exception
        31: pop
        32: .line 204
            return
        33: .line 209
      StackMap locals:
      StackMap stack:
            new javax.sound.sampled.AudioInputStream
            dup
            aload 1 /* in */
        34: .line 210
            aload 1 /* in */
            checkcast sun.audio.AudioDataStream
            invokevirtual sun.audio.AudioDataStream.getAudioData:()Lsun/audio/AudioData;
            getfield sun.audio.AudioData.format:Ljavax/sound/sampled/AudioFormat;
        35: .line 211
            aload 1 /* in */
            checkcast sun.audio.AudioDataStream
            invokevirtual sun.audio.AudioDataStream.getAudioData:()Lsun/audio/AudioData;
            getfield sun.audio.AudioData.buffer:[B
            arraylength
            i2l
        36: .line 209
            invokespecial javax.sound.sampled.AudioInputStream.<init>:(Ljava/io/InputStream;Ljavax/sound/sampled/AudioFormat;J)V
            astore 4 /* ais */
        start local 4 // javax.sound.sampled.AudioInputStream ais
        37: .line 212
            aload 0 /* this */
            aload 4 /* ais */
            aload 1 /* in */
            invokevirtual sun.audio.AudioDevice.startSampled:(Ljavax/sound/sampled/AudioInputStream;Ljava/io/InputStream;)V
        end local 4 // javax.sound.sampled.AudioInputStream ais
        38: .line 213
            goto 72
      StackMap locals:
      StackMap stack: java.lang.Exception
        39: pop
        40: .line 214
            return
        41: .line 218
      StackMap locals:
      StackMap stack:
            new java.io.BufferedInputStream
            dup
            aload 1 /* in */
            sipush 1024
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;I)V
            astore 4 /* bis */
        start local 4 // java.io.BufferedInputStream bis
        42: .line 223
            aload 4 /* bis */
            invokestatic javax.sound.sampled.AudioSystem.getAudioInputStream:(Ljava/io/InputStream;)Ljavax/sound/sampled/AudioInputStream;
            astore 3 /* as */
        43: .line 224
            goto 46
      StackMap locals: sun.audio.AudioDevice java.io.InputStream sun.audio.AudioDevice$Info javax.sound.sampled.AudioInputStream java.io.BufferedInputStream
      StackMap stack: java.io.IOException
        44: pop
        45: .line 225
            return
        46: .line 228
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* as */
            aload 1 /* in */
            invokevirtual sun.audio.AudioDevice.startSampled:(Ljavax/sound/sampled/AudioInputStream;Ljava/io/InputStream;)V
        47: .line 230
            goto 72
      StackMap locals:
      StackMap stack: javax.sound.sampled.UnsupportedAudioFileException
        48: pop
        49: .line 235
            aload 4 /* bis */
            invokestatic javax.sound.midi.MidiSystem.getMidiFileFormat:(Ljava/io/InputStream;)Ljavax/sound/midi/MidiFileFormat;
            pop
        50: .line 236
            goto 53
      StackMap locals:
      StackMap stack: java.io.IOException
        51: pop
        52: .line 237
            return
        53: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* bis */
            aload 1 /* in */
            invokevirtual sun.audio.AudioDevice.startMidi:(Ljava/io/InputStream;Ljava/io/InputStream;)V
        54: .line 243
            goto 72
      StackMap locals:
      StackMap stack: javax.sound.midi.InvalidMidiDataException
        55: pop
        56: .line 249
            new javax.sound.sampled.AudioFormat
            dup
            getstatic javax.sound.sampled.AudioFormat$Encoding.ULAW:Ljavax/sound/sampled/AudioFormat$Encoding;
        57: .line 250
            ldc 8000.0
            bipush 8
            iconst_1
            iconst_1
            ldc 8000.0
            iconst_1
        58: .line 249
            invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
            astore 5 /* defformat */
        start local 5 // javax.sound.sampled.AudioFormat defformat
        59: .line 252
            new javax.sound.sampled.AudioInputStream
            dup
            aload 4 /* bis */
        60: .line 253
            aload 5 /* defformat */
            ldc -1
        61: .line 252
            invokespecial javax.sound.sampled.AudioInputStream.<init>:(Ljava/io/InputStream;Ljavax/sound/sampled/AudioFormat;J)V
            astore 6 /* defaif */
        start local 6 // javax.sound.sampled.AudioInputStream defaif
        62: .line 254
            aload 0 /* this */
            aload 6 /* defaif */
            aload 1 /* in */
            invokevirtual sun.audio.AudioDevice.startSampled:(Ljavax/sound/sampled/AudioInputStream;Ljava/io/InputStream;)V
        end local 6 // javax.sound.sampled.AudioInputStream defaif
        63: .line 255
            goto 72
      StackMap locals: sun.audio.AudioDevice java.io.InputStream sun.audio.AudioDevice$Info javax.sound.sampled.AudioInputStream java.io.BufferedInputStream javax.sound.sampled.AudioFormat
      StackMap stack: javax.sound.sampled.UnsupportedAudioFileException
        64: pop
        65: .line 256
            return
        66: .line 257
      StackMap locals:
      StackMap stack: javax.sound.sampled.LineUnavailableException
            pop
        67: .line 258
            return
        end local 5 // javax.sound.sampled.AudioFormat defformat
        68: .line 261
      StackMap locals: sun.audio.AudioDevice java.io.InputStream sun.audio.AudioDevice$Info javax.sound.sampled.AudioInputStream java.io.BufferedInputStream
      StackMap stack: javax.sound.midi.MidiUnavailableException
            pop
        69: .line 264
            return
        70: .line 267
      StackMap locals:
      StackMap stack: javax.sound.sampled.LineUnavailableException
            pop
        71: .line 269
            return
        end local 4 // java.io.BufferedInputStream bis
        72: .line 274
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.notify:()V
        73: .line 275
            return
        end local 3 // javax.sound.sampled.AudioInputStream as
        end local 2 // sun.audio.AudioDevice$Info info
        end local 1 // java.io.InputStream in
        end local 0 // sun.audio.AudioDevice this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   74     0       this  Lsun/audio/AudioDevice;
            0   74     1         in  Ljava/io/InputStream;
            4   74     2       info  Lsun/audio/AudioDevice$Info;
            5   11     3          i  I
           12   74     3         as  Ljavax/sound/sampled/AudioInputStream;
           29   30     4        ais  Ljavax/sound/sampled/AudioInputStream;
           37   38     4        ais  Ljavax/sound/sampled/AudioInputStream;
           42   72     4        bis  Ljava/io/BufferedInputStream;
           59   68     5  defformat  Ljavax/sound/sampled/AudioFormat;
           62   63     6     defaif  Ljavax/sound/sampled/AudioInputStream;
      Exception table:
        from    to  target  type
          14    15      16  Class java.lang.Exception
          19    20      21  Class java.lang.Exception
          25    30      31  Class java.lang.Exception
          33    38      39  Class java.lang.Exception
          42    43      44  Class java.io.IOException
          42    45      48  Class javax.sound.sampled.UnsupportedAudioFileException
          46    47      48  Class javax.sound.sampled.UnsupportedAudioFileException
          49    50      51  Class java.io.IOException
          49    52      55  Class javax.sound.midi.InvalidMidiDataException
          53    54      55  Class javax.sound.midi.InvalidMidiDataException
          59    63      64  Class javax.sound.sampled.UnsupportedAudioFileException
          59    63      66  Class javax.sound.sampled.LineUnavailableException
          49    52      68  Class javax.sound.midi.MidiUnavailableException
          53    54      68  Class javax.sound.midi.MidiUnavailableException
          42    45      70  Class javax.sound.sampled.LineUnavailableException
          46    47      70  Class javax.sound.sampled.LineUnavailableException
    MethodParameters:
      Name  Flags
      in    

  public synchronized void closeChannel(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // sun.audio.AudioDevice this
        start local 1 // java.io.InputStream in
         0: .line 283
            aload 0 /* this */
            getfield sun.audio.AudioDevice.DEBUG:Z
            ifeq 2
         1: .line 284
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "AudioDevice.closeChannel"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 287
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            ifnonnull 3
            return
         3: .line 291
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 15
         5: .line 293
      StackMap locals: sun.audio.AudioDevice java.io.InputStream top int
      StackMap stack:
            aload 0 /* this */
            getfield sun.audio.AudioDevice.infos:Ljava/util/Vector;
            iload 3 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast sun.audio.AudioDevice$Info
            astore 2 /* info */
        start local 2 // sun.audio.AudioDevice$Info info
         6: .line 295
            aload 2 /* info */
            getfield sun.audio.AudioDevice$Info.in:Ljava/io/InputStream;
            aload 1 /* in */
            if_acmpne 14
         7: .line 297
            aload 2 /* info */
            getfield sun.audio.AudioDevice$Info.sequencer:Ljavax/sound/midi/Sequencer;
            ifnull 11
         8: .line 299
            aload 2 /* info */
            getfield sun.audio.AudioDevice$Info.sequencer:Ljavax/sound/midi/Sequencer;
            invokeinterface javax.sound.midi.Sequencer.stop:()V
         9: .line 301
            aload 0 /* this */
            getfield sun.audio.AudioDevice.infos:Ljava/util/Vector;
            aload 2 /* info */
            invokevirtual java.util.Vector.removeElement:(Ljava/lang/Object;)Z
            pop
        10: .line 303
            goto 14
      StackMap locals: sun.audio.AudioDevice java.io.InputStream sun.audio.AudioDevice$Info int
      StackMap stack:
        11: aload 2 /* info */
            getfield sun.audio.AudioDevice$Info.datapusher:Lcom/sun/media/sound/DataPusher;
            ifnull 14
        12: .line 305
            aload 2 /* info */
            getfield sun.audio.AudioDevice$Info.datapusher:Lcom/sun/media/sound/DataPusher;
            invokevirtual com.sun.media.sound.DataPusher.stop:()V
        13: .line 306
            aload 0 /* this */
            getfield sun.audio.AudioDevice.infos:Ljava/util/Vector;
            aload 2 /* info */
            invokevirtual java.util.Vector.removeElement:(Ljava/lang/Object;)Z
            pop
        14: .line 291
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
        end local 2 // sun.audio.AudioDevice$Info info
      StackMap locals: sun.audio.AudioDevice java.io.InputStream top int
      StackMap stack:
        15: iload 3 /* i */
            aload 0 /* this */
            getfield sun.audio.AudioDevice.infos:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            if_icmplt 5
        end local 3 // int i
        16: .line 310
            aload 0 /* this */
            invokevirtual java.lang.Object.notify:()V
        17: .line 311
            return
        end local 1 // java.io.InputStream in
        end local 0 // sun.audio.AudioDevice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Lsun/audio/AudioDevice;
            0   18     1    in  Ljava/io/InputStream;
            6   15     2  info  Lsun/audio/AudioDevice$Info;
            4   16     3     i  I
    MethodParameters:
      Name  Flags
      in    

  public synchronized void open();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // sun.audio.AudioDevice this
         0: .line 321
            return
        end local 0 // sun.audio.AudioDevice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/audio/AudioDevice;

  public synchronized void close();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // sun.audio.AudioDevice this
         0: .line 332
            return
        end local 0 // sun.audio.AudioDevice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/audio/AudioDevice;

  public void play();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.audio.AudioDevice this
         0: .line 344
            aload 0 /* this */
            getfield sun.audio.AudioDevice.DEBUG:Z
            ifeq 2
         1: .line 345
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "exiting play()"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 347
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.audio.AudioDevice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/audio/AudioDevice;

  public synchronized void closeStreams();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // sun.audio.AudioDevice this
         0: .line 356
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 12
         2: .line 358
      StackMap locals: sun.audio.AudioDevice top int
      StackMap stack:
            aload 0 /* this */
            getfield sun.audio.AudioDevice.infos:Ljava/util/Vector;
            iload 2 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast sun.audio.AudioDevice$Info
            astore 1 /* info */
        start local 1 // sun.audio.AudioDevice$Info info
         3: .line 360
            aload 1 /* info */
            getfield sun.audio.AudioDevice$Info.sequencer:Ljavax/sound/midi/Sequencer;
            ifnull 8
         4: .line 362
            aload 1 /* info */
            getfield sun.audio.AudioDevice$Info.sequencer:Ljavax/sound/midi/Sequencer;
            invokeinterface javax.sound.midi.Sequencer.stop:()V
         5: .line 363
            aload 1 /* info */
            getfield sun.audio.AudioDevice$Info.sequencer:Ljavax/sound/midi/Sequencer;
            invokeinterface javax.sound.midi.Sequencer.close:()V
         6: .line 364
            aload 0 /* this */
            getfield sun.audio.AudioDevice.infos:Ljava/util/Vector;
            aload 1 /* info */
            invokevirtual java.util.Vector.removeElement:(Ljava/lang/Object;)Z
            pop
         7: .line 366
            goto 11
      StackMap locals: sun.audio.AudioDevice sun.audio.AudioDevice$Info int
      StackMap stack:
         8: aload 1 /* info */
            getfield sun.audio.AudioDevice$Info.datapusher:Lcom/sun/media/sound/DataPusher;
            ifnull 11
         9: .line 368
            aload 1 /* info */
            getfield sun.audio.AudioDevice$Info.datapusher:Lcom/sun/media/sound/DataPusher;
            invokevirtual com.sun.media.sound.DataPusher.stop:()V
        10: .line 369
            aload 0 /* this */
            getfield sun.audio.AudioDevice.infos:Ljava/util/Vector;
            aload 1 /* info */
            invokevirtual java.util.Vector.removeElement:(Ljava/lang/Object;)Z
            pop
        11: .line 356
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
        end local 1 // sun.audio.AudioDevice$Info info
      StackMap locals: sun.audio.AudioDevice top int
      StackMap stack:
        12: iload 2 /* i */
            aload 0 /* this */
            getfield sun.audio.AudioDevice.infos:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            if_icmplt 2
        end local 2 // int i
        13: .line 374
            aload 0 /* this */
            getfield sun.audio.AudioDevice.DEBUG:Z
            ifeq 15
        14: .line 375
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Audio Device: Streams all closed."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        15: .line 378
      StackMap locals: sun.audio.AudioDevice
      StackMap stack:
            aload 0 /* this */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield sun.audio.AudioDevice.clipStreams:Ljava/util/Hashtable;
        16: .line 379
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield sun.audio.AudioDevice.infos:Ljava/util/Vector;
        17: .line 380
            return
        end local 0 // sun.audio.AudioDevice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Lsun/audio/AudioDevice;
            3   12     1  info  Lsun/audio/AudioDevice$Info;
            1   13     2     i  I

  public int openChannels();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.audio.AudioDevice this
         0: .line 386
            aload 0 /* this */
            getfield sun.audio.AudioDevice.infos:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ireturn
        end local 0 // sun.audio.AudioDevice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/audio/AudioDevice;

  void setVerbose(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.audio.AudioDevice this
        start local 1 // boolean v
         0: .line 393
            aload 0 /* this */
            iload 1 /* v */
            putfield sun.audio.AudioDevice.DEBUG:Z
         1: .line 394
            return
        end local 1 // boolean v
        end local 0 // sun.audio.AudioDevice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/audio/AudioDevice;
            0    2     1     v  Z
    MethodParameters:
      Name  Flags
      v     
}
SourceFile: "AudioDevice.java"
NestMembers:
  sun.audio.AudioDevice$Info
InnerClasses:
  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
  final Info = sun.audio.AudioDevice$Info of sun.audio.AudioDevice