final class com.sun.media.sound.PortMixer$PortMixerPort extends com.sun.media.sound.AbstractLine implements javax.sound.sampled.Port
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.media.sound.PortMixer$PortMixerPort
  super_class: com.sun.media.sound.AbstractLine
{
  private final int portIndex;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private void <init>(javax.sound.sampled.Port$Info, com.sun.media.sound.PortMixer, int);
    descriptor: (Ljavax/sound/sampled/Port$Info;Lcom/sun/media/sound/PortMixer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.media.sound.PortMixer$PortMixerPort this
        start local 1 // javax.sound.sampled.Port$Info info
        start local 2 // com.sun.media.sound.PortMixer mixer
        start local 3 // int portIndex
         0: .line 233
            aload 0 /* this */
            aload 1 /* info */
            aload 2 /* mixer */
            aconst_null
            invokespecial com.sun.media.sound.AbstractLine.<init>:(Ljavax/sound/sampled/Line$Info;Lcom/sun/media/sound/AbstractMixer;[Ljavax/sound/sampled/Control;)V
         1: .line 235
            aload 0 /* this */
            iload 3 /* portIndex */
            putfield com.sun.media.sound.PortMixer$PortMixerPort.portIndex:I
         2: .line 236
            return
        end local 3 // int portIndex
        end local 2 // com.sun.media.sound.PortMixer mixer
        end local 1 // javax.sound.sampled.Port$Info info
        end local 0 // com.sun.media.sound.PortMixer$PortMixerPort this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/sun/media/sound/PortMixer$PortMixerPort;
            0    3     1       info  Ljavax/sound/sampled/Port$Info;
            0    3     2      mixer  Lcom/sun/media/sound/PortMixer;
            0    3     3  portIndex  I
    MethodParameters:
           Name  Flags
      info       
      mixer      
      portIndex  

  void implOpen();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // com.sun.media.sound.PortMixer$PortMixerPort this
         0: .line 240
            aload 0 /* this */
            getfield com.sun.media.sound.PortMixer$PortMixerPort.mixer:Lcom/sun/media/sound/AbstractMixer;
            checkcast com.sun.media.sound.PortMixer
            invokevirtual com.sun.media.sound.PortMixer.getID:()J
            lstore 1 /* newID */
        start local 1 // long newID
         1: .line 241
            aload 0 /* this */
            getfield com.sun.media.sound.PortMixer$PortMixerPort.id:J
            lconst_0
            lcmp
            ifeq 2
            lload 1 /* newID */
            aload 0 /* this */
            getfield com.sun.media.sound.PortMixer$PortMixerPort.id:J
            lcmp
            ifne 2
            aload 0 /* this */
            getfield com.sun.media.sound.PortMixer$PortMixerPort.controls:[Ljavax/sound/sampled/Control;
            arraylength
            ifne 16
         2: .line 242
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            lload 1 /* newID */
            putfield com.sun.media.sound.PortMixer$PortMixerPort.id:J
         3: .line 243
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 3 /* vector */
        start local 3 // java.util.Vector vector
         4: .line 244
            aload 3 /* vector */
            dup
            astore 4
            monitorenter
         5: .line 245
            aload 0 /* this */
            getfield com.sun.media.sound.PortMixer$PortMixerPort.id:J
            aload 0 /* this */
            getfield com.sun.media.sound.PortMixer$PortMixerPort.portIndex:I
            aload 3 /* vector */
            invokestatic com.sun.media.sound.PortMixer.nGetControls:(JILjava/util/Vector;)V
         6: .line 246
            aload 0 /* this */
            aload 3 /* vector */
            invokevirtual java.util.Vector.size:()I
            anewarray javax.sound.sampled.Control
            putfield com.sun.media.sound.PortMixer$PortMixerPort.controls:[Ljavax/sound/sampled/Control;
         7: .line 247
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         8: goto 11
         9: .line 248
      StackMap locals: java.util.Vector java.util.Vector int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.PortMixer$PortMixerPort.controls:[Ljavax/sound/sampled/Control;
            iload 5 /* i */
            aload 3 /* vector */
            iload 5 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast javax.sound.sampled.Control
            aastore
        10: .line 247
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* i */
            aload 0 /* this */
            getfield com.sun.media.sound.PortMixer$PortMixerPort.controls:[Ljavax/sound/sampled/Control;
            arraylength
            if_icmplt 9
        end local 5 // int i
        12: .line 244
            aload 4
            monitorexit
        13: goto 17
      StackMap locals: com.sun.media.sound.PortMixer$PortMixerPort long java.util.Vector java.util.Vector
      StackMap stack: java.lang.Throwable
        14: aload 4
            monitorexit
        15: athrow
        end local 3 // java.util.Vector vector
        16: .line 252
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.PortMixer$PortMixerPort.controls:[Ljavax/sound/sampled/Control;
            iconst_1
            invokevirtual com.sun.media.sound.PortMixer$PortMixerPort.enableControls:([Ljavax/sound/sampled/Control;Z)V
        17: .line 255
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long newID
        end local 0 // com.sun.media.sound.PortMixer$PortMixerPort this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0    this  Lcom/sun/media/sound/PortMixer$PortMixerPort;
            1   18     1   newID  J
            4   16     3  vector  Ljava/util/Vector<Ljavax/sound/sampled/Control;>;
            8   12     5       i  I
      Exception table:
        from    to  target  type
           5    13      14  any
          14    15      14  any
    Exceptions:
      throws javax.sound.sampled.LineUnavailableException

  private void enableControls(javax.sound.sampled.Control[], boolean);
    descriptor: ([Ljavax/sound/sampled/Control;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.media.sound.PortMixer$PortMixerPort this
        start local 1 // javax.sound.sampled.Control[] controls
        start local 2 // boolean enable
         0: .line 258
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 15
         2: .line 259
      StackMap locals: int
      StackMap stack:
            aload 1 /* controls */
            iload 3 /* i */
            aaload
            instanceof com.sun.media.sound.PortMixer$BoolCtrl
            ifeq 7
         3: .line 260
            aload 1 /* controls */
            iload 3 /* i */
            aaload
            checkcast com.sun.media.sound.PortMixer$BoolCtrl
            iload 2 /* enable */
            ifeq 4
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack: com.sun.media.sound.PortMixer$BoolCtrl
         4: iconst_1
      StackMap locals: com.sun.media.sound.PortMixer$PortMixerPort javax.sound.sampled.Control[] int int
      StackMap stack: com.sun.media.sound.PortMixer$BoolCtrl int
         5: putfield com.sun.media.sound.PortMixer$BoolCtrl.closed:Z
         6: .line 261
            goto 14
         7: .line 262
      StackMap locals:
      StackMap stack:
            aload 1 /* controls */
            iload 3 /* i */
            aaload
            instanceof com.sun.media.sound.PortMixer$FloatCtrl
            ifeq 12
         8: .line 263
            aload 1 /* controls */
            iload 3 /* i */
            aaload
            checkcast com.sun.media.sound.PortMixer$FloatCtrl
            iload 2 /* enable */
            ifeq 9
            iconst_0
            goto 10
      StackMap locals:
      StackMap stack: com.sun.media.sound.PortMixer$FloatCtrl
         9: iconst_1
      StackMap locals: com.sun.media.sound.PortMixer$PortMixerPort javax.sound.sampled.Control[] int int
      StackMap stack: com.sun.media.sound.PortMixer$FloatCtrl int
        10: putfield com.sun.media.sound.PortMixer$FloatCtrl.closed:Z
        11: .line 264
            goto 14
        12: .line 265
      StackMap locals:
      StackMap stack:
            aload 1 /* controls */
            iload 3 /* i */
            aaload
            instanceof javax.sound.sampled.CompoundControl
            ifeq 14
        13: .line 266
            aload 0 /* this */
            aload 1 /* controls */
            iload 3 /* i */
            aaload
            checkcast javax.sound.sampled.CompoundControl
            invokevirtual javax.sound.sampled.CompoundControl.getMemberControls:()[Ljavax/sound/sampled/Control;
            iload 2 /* enable */
            invokevirtual com.sun.media.sound.PortMixer$PortMixerPort.enableControls:([Ljavax/sound/sampled/Control;Z)V
        14: .line 258
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 3 /* i */
            aload 1 /* controls */
            arraylength
            if_icmplt 2
        end local 3 // int i
        16: .line 269
            return
        end local 2 // boolean enable
        end local 1 // javax.sound.sampled.Control[] controls
        end local 0 // com.sun.media.sound.PortMixer$PortMixerPort this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Lcom/sun/media/sound/PortMixer$PortMixerPort;
            0   17     1  controls  [Ljavax/sound/sampled/Control;
            0   17     2    enable  Z
            1   16     3         i  I
    MethodParameters:
          Name  Flags
      controls  
      enable    

  private void disposeControls();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.media.sound.PortMixer$PortMixerPort this
         0: .line 272
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.PortMixer$PortMixerPort.controls:[Ljavax/sound/sampled/Control;
            iconst_0
            invokevirtual com.sun.media.sound.PortMixer$PortMixerPort.enableControls:([Ljavax/sound/sampled/Control;Z)V
         1: .line 273
            aload 0 /* this */
            iconst_0
            anewarray javax.sound.sampled.Control
            putfield com.sun.media.sound.PortMixer$PortMixerPort.controls:[Ljavax/sound/sampled/Control;
         2: .line 274
            return
        end local 0 // com.sun.media.sound.PortMixer$PortMixerPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/media/sound/PortMixer$PortMixerPort;

  void implClose();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.media.sound.PortMixer$PortMixerPort this
         0: .line 279
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.PortMixer$PortMixerPort.controls:[Ljavax/sound/sampled/Control;
            iconst_0
            invokevirtual com.sun.media.sound.PortMixer$PortMixerPort.enableControls:([Ljavax/sound/sampled/Control;Z)V
         1: .line 281
            return
        end local 0 // com.sun.media.sound.PortMixer$PortMixerPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/media/sound/PortMixer$PortMixerPort;

  public void open();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.sun.media.sound.PortMixer$PortMixerPort this
         0: .line 286
            aload 0 /* this */
            getfield com.sun.media.sound.PortMixer$PortMixerPort.mixer:Lcom/sun/media/sound/AbstractMixer;
            dup
            astore 1
            monitorenter
         1: .line 288
            aload 0 /* this */
            invokevirtual com.sun.media.sound.PortMixer$PortMixerPort.isOpen:()Z
            ifne 9
         2: .line 291
            aload 0 /* this */
            getfield com.sun.media.sound.PortMixer$PortMixerPort.mixer:Lcom/sun/media/sound/AbstractMixer;
            aload 0 /* this */
            invokevirtual com.sun.media.sound.AbstractMixer.open:(Ljavax/sound/sampled/Line;)V
         3: .line 294
            aload 0 /* this */
            invokevirtual com.sun.media.sound.PortMixer$PortMixerPort.implOpen:()V
         4: .line 297
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.media.sound.PortMixer$PortMixerPort.setOpen:(Z)V
         5: .line 298
            goto 9
      StackMap locals: com.sun.media.sound.PortMixer$PortMixerPort com.sun.media.sound.AbstractMixer
      StackMap stack: javax.sound.sampled.LineUnavailableException
         6: astore 2 /* e */
        start local 2 // javax.sound.sampled.LineUnavailableException e
         7: .line 300
            aload 0 /* this */
            getfield com.sun.media.sound.PortMixer$PortMixerPort.mixer:Lcom/sun/media/sound/AbstractMixer;
            aload 0 /* this */
            invokevirtual com.sun.media.sound.AbstractMixer.close:(Ljavax/sound/sampled/Line;)V
         8: .line 301
            aload 2 /* e */
            athrow
        end local 2 // javax.sound.sampled.LineUnavailableException e
         9: .line 286
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 1
            monitorexit
        12: athrow
        13: .line 306
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.media.sound.PortMixer$PortMixerPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lcom/sun/media/sound/PortMixer$PortMixerPort;
            7    9     2     e  Ljavax/sound/sampled/LineUnavailableException;
      Exception table:
        from    to  target  type
           3     5       6  Class javax.sound.sampled.LineUnavailableException
           1    10      11  any
          11    12      11  any
    Exceptions:
      throws javax.sound.sampled.LineUnavailableException

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.media.sound.PortMixer$PortMixerPort this
         0: .line 311
            aload 0 /* this */
            getfield com.sun.media.sound.PortMixer$PortMixerPort.mixer:Lcom/sun/media/sound/AbstractMixer;
            dup
            astore 1
            monitorenter
         1: .line 312
            aload 0 /* this */
            invokevirtual com.sun.media.sound.PortMixer$PortMixerPort.isOpen:()Z
            ifeq 5
         2: .line 316
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.media.sound.PortMixer$PortMixerPort.setOpen:(Z)V
         3: .line 319
            aload 0 /* this */
            invokevirtual com.sun.media.sound.PortMixer$PortMixerPort.implClose:()V
         4: .line 322
            aload 0 /* this */
            getfield com.sun.media.sound.PortMixer$PortMixerPort.mixer:Lcom/sun/media/sound/AbstractMixer;
            aload 0 /* this */
            invokevirtual com.sun.media.sound.AbstractMixer.close:(Ljavax/sound/sampled/Line;)V
         5: .line 311
      StackMap locals: com.sun.media.sound.AbstractMixer
      StackMap stack:
            aload 1
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 1
            monitorexit
         8: athrow
         9: .line 326
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.media.sound.PortMixer$PortMixerPort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/sun/media/sound/PortMixer$PortMixerPort;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
}
SourceFile: "PortMixer.java"
NestHost: com.sun.media.sound.PortMixer
InnerClasses:
  private final BoolCtrl = com.sun.media.sound.PortMixer$BoolCtrl of com.sun.media.sound.PortMixer
  private final FloatCtrl = com.sun.media.sound.PortMixer$FloatCtrl of com.sun.media.sound.PortMixer
  private final PortMixerPort = com.sun.media.sound.PortMixer$PortMixerPort of com.sun.media.sound.PortMixer
  public Info = javax.sound.sampled.Line$Info of javax.sound.sampled.Line
  public Info = javax.sound.sampled.Port$Info of javax.sound.sampled.Port