com.sun.media.sound
Class SoftMixingMixer

java.lang.Object
  extended by com.sun.media.sound.SoftMixingMixer
All Implemented Interfaces:
javax.sound.sampled.Line, javax.sound.sampled.Mixer

public class SoftMixingMixer
extends java.lang.Object
implements javax.sound.sampled.Mixer

Software audio mixer

Author:
Karl Helgason

Field Summary
protected  java.lang.Object control_mutex
           
protected  boolean implicitOpen
           
protected static javax.sound.sampled.Mixer.Info info
           
protected static java.lang.String INFO_DESCRIPTION
           
protected static java.lang.String INFO_NAME
           
protected static java.lang.String INFO_VENDOR
           
protected static java.lang.String INFO_VERSION
           
 
Constructor Summary
SoftMixingMixer()
           
 
Method Summary
 void addLineListener(javax.sound.sampled.LineListener listener)
           
 void close()
           
 javax.sound.sampled.Control getControl(javax.sound.sampled.Control.Type control)
           
protected  float getControlRate()
           
 javax.sound.sampled.Control[] getControls()
           
 javax.sound.sampled.AudioFormat getFormat()
           
 long getLatency()
           
 javax.sound.sampled.Line getLine(javax.sound.sampled.Line.Info info)
           
 javax.sound.sampled.Line.Info getLineInfo()
           
protected  SoftMixingMainMixer getMainMixer()
           
 int getMaxLines(javax.sound.sampled.Line.Info info)
           
 javax.sound.sampled.Mixer.Info getMixerInfo()
           
 javax.sound.sampled.Line.Info[] getSourceLineInfo()
           
 javax.sound.sampled.Line.Info[] getSourceLineInfo(javax.sound.sampled.Line.Info info)
           
 javax.sound.sampled.Line[] getSourceLines()
           
 javax.sound.sampled.Line.Info[] getTargetLineInfo()
           
 javax.sound.sampled.Line.Info[] getTargetLineInfo(javax.sound.sampled.Line.Info info)
           
 javax.sound.sampled.Line[] getTargetLines()
           
 boolean isControlSupported(javax.sound.sampled.Control.Type control)
           
 boolean isLineSupported(javax.sound.sampled.Line.Info info)
           
 boolean isOpen()
           
 boolean isSynchronizationSupported(javax.sound.sampled.Line[] lines, boolean maintainSync)
           
 void open()
           
 void open(javax.sound.sampled.SourceDataLine line)
           
 javax.sound.sampled.AudioInputStream openStream(javax.sound.sampled.AudioFormat targetFormat)
           
 void removeLineListener(javax.sound.sampled.LineListener listener)
           
 void synchronize(javax.sound.sampled.Line[] lines, boolean maintainSync)
           
 void unsynchronize(javax.sound.sampled.Line[] lines)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INFO_NAME

protected static final java.lang.String INFO_NAME
See Also:
Constant Field Values

INFO_VENDOR

protected static final java.lang.String INFO_VENDOR
See Also:
Constant Field Values

INFO_DESCRIPTION

protected static final java.lang.String INFO_DESCRIPTION
See Also:
Constant Field Values

INFO_VERSION

protected static final java.lang.String INFO_VERSION
See Also:
Constant Field Values

info

protected static final javax.sound.sampled.Mixer.Info info

control_mutex

protected java.lang.Object control_mutex

implicitOpen

protected boolean implicitOpen
Constructor Detail

SoftMixingMixer

public SoftMixingMixer()
Method Detail

getLine

public javax.sound.sampled.Line getLine(javax.sound.sampled.Line.Info info)
                                 throws javax.sound.sampled.LineUnavailableException
Specified by:
getLine in interface javax.sound.sampled.Mixer
Throws:
javax.sound.sampled.LineUnavailableException

getMaxLines

public int getMaxLines(javax.sound.sampled.Line.Info info)
Specified by:
getMaxLines in interface javax.sound.sampled.Mixer

getMixerInfo

public javax.sound.sampled.Mixer.Info getMixerInfo()
Specified by:
getMixerInfo in interface javax.sound.sampled.Mixer

getSourceLineInfo

public javax.sound.sampled.Line.Info[] getSourceLineInfo()
Specified by:
getSourceLineInfo in interface javax.sound.sampled.Mixer

getSourceLineInfo

public javax.sound.sampled.Line.Info[] getSourceLineInfo(javax.sound.sampled.Line.Info info)
Specified by:
getSourceLineInfo in interface javax.sound.sampled.Mixer

getSourceLines

public javax.sound.sampled.Line[] getSourceLines()
Specified by:
getSourceLines in interface javax.sound.sampled.Mixer

getTargetLineInfo

public javax.sound.sampled.Line.Info[] getTargetLineInfo()
Specified by:
getTargetLineInfo in interface javax.sound.sampled.Mixer

getTargetLineInfo

public javax.sound.sampled.Line.Info[] getTargetLineInfo(javax.sound.sampled.Line.Info info)
Specified by:
getTargetLineInfo in interface javax.sound.sampled.Mixer

getTargetLines

public javax.sound.sampled.Line[] getTargetLines()
Specified by:
getTargetLines in interface javax.sound.sampled.Mixer

isLineSupported

public boolean isLineSupported(javax.sound.sampled.Line.Info info)
Specified by:
isLineSupported in interface javax.sound.sampled.Mixer

isSynchronizationSupported

public boolean isSynchronizationSupported(javax.sound.sampled.Line[] lines,
                                          boolean maintainSync)
Specified by:
isSynchronizationSupported in interface javax.sound.sampled.Mixer

synchronize

public void synchronize(javax.sound.sampled.Line[] lines,
                        boolean maintainSync)
Specified by:
synchronize in interface javax.sound.sampled.Mixer

unsynchronize

public void unsynchronize(javax.sound.sampled.Line[] lines)
Specified by:
unsynchronize in interface javax.sound.sampled.Mixer

addLineListener

public void addLineListener(javax.sound.sampled.LineListener listener)
Specified by:
addLineListener in interface javax.sound.sampled.Line

close

public void close()
Specified by:
close in interface javax.sound.sampled.Line

getControl

public javax.sound.sampled.Control getControl(javax.sound.sampled.Control.Type control)
Specified by:
getControl in interface javax.sound.sampled.Line

getControls

public javax.sound.sampled.Control[] getControls()
Specified by:
getControls in interface javax.sound.sampled.Line

getLineInfo

public javax.sound.sampled.Line.Info getLineInfo()
Specified by:
getLineInfo in interface javax.sound.sampled.Line

isControlSupported

public boolean isControlSupported(javax.sound.sampled.Control.Type control)
Specified by:
isControlSupported in interface javax.sound.sampled.Line

isOpen

public boolean isOpen()
Specified by:
isOpen in interface javax.sound.sampled.Line

open

public void open()
          throws javax.sound.sampled.LineUnavailableException
Specified by:
open in interface javax.sound.sampled.Line
Throws:
javax.sound.sampled.LineUnavailableException

open

public void open(javax.sound.sampled.SourceDataLine line)
          throws javax.sound.sampled.LineUnavailableException
Throws:
javax.sound.sampled.LineUnavailableException

openStream

public javax.sound.sampled.AudioInputStream openStream(javax.sound.sampled.AudioFormat targetFormat)
                                                throws javax.sound.sampled.LineUnavailableException
Throws:
javax.sound.sampled.LineUnavailableException

removeLineListener

public void removeLineListener(javax.sound.sampled.LineListener listener)
Specified by:
removeLineListener in interface javax.sound.sampled.Line

getLatency

public long getLatency()

getFormat

public javax.sound.sampled.AudioFormat getFormat()

getControlRate

protected float getControlRate()

getMainMixer

protected SoftMixingMainMixer getMainMixer()