gnu.javax.sound.sampled.gstreamer

Class GStreamerMixer

Implemented Interfaces:
AutoCloseable, Line, Mixer

public class GStreamerMixer
extends Object
implements Mixer

Nested Class Summary

static class
GStreamerMixer.GstInfo

Field Summary

static String
GST_BACKEND
static String
GST_DECODER
static String
GST_FILE_EXTENSION
static String
GST_TYPE_NAME

Method Summary

void
addLineListener(LineListener listener)
Add a listener which will be notified whenever this Line changes state.
void
close()
Close this line.
Control
getControl(Control.Type what)
Return the control associated with this Line that matches the argument.
Control[]
getControls()
Return an array of controls associated with this Line.
Line
getLine(Line.Info info)
Return a Line associated with this Mixer, given its description.
Line.Info
getLineInfo()
Return the Info object associated with this Line.
int
getMaxLines(Line.Info info)
Return the number of lines matching this description.
Info
getMixerInfo()
Return an Info object describing this Mixer.
Line.Info[]
getSourceLineInfo()
Return an array of Info objects describing all the source lines available in this Mixer.
Line.Info[]
getSourceLineInfo(Line.Info info)
Return an array of Info objects describing all the source lines available in this Mixer, which match the provided decsription.
Line[]
getSourceLines()
Return an array of all the source lines available in this Mixer.
Line.Info[]
getTargetLineInfo()
Return an array of Info objects describing all the target lines available in this Mixer.
Line.Info[]
getTargetLineInfo(Line.Info info)
Return an array of Info objects describing all the target lines available in this Mixer, which match the provided decsription.
Line[]
getTargetLines()
Return an array of all the target lines available in this Mixer.
boolean
isControlSupported(Control.Type what)
Return true if a Control matching the argument is available for this Line, false otherwise.
boolean
isLineSupported(Line.Info info)
Return true if a Line matching the given description is supported by this Mixer, false otherwise.
boolean
isOpen()
Return true if this line is open, false otherwise.
boolean
isSynchronizationSupported(Line[] lines, boolean sync)
Return true if this Mixer supports synchronization of the given set of lines.
void
open()
Open this line.
void
removeLineListener(LineListener listener)
Remove the listener from this Line; after this call the listener will no longer be notified when this Line changes state.
void
synchronize(Line[] lines, boolean sync)
Start synchronization on the given set of lines.
void
unsynchronize(Line[] lines)
Stop synchronization for the given set of lines.

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

GST_BACKEND

public static final String GST_BACKEND
Field Value:
"Classpath GStreamer Sound Audio Engine"

GST_DECODER

public static final String GST_DECODER
Field Value:
"decoder"

GST_FILE_EXTENSION

public static final String GST_FILE_EXTENSION
Field Value:
"ext"

GST_TYPE_NAME

public static final String GST_TYPE_NAME
Field Value:
"type"

Method Details

addLineListener

public void addLineListener(LineListener listener)
Add a listener which will be notified whenever this Line changes state.
Specified by:
addLineListener in interface Line
Parameters:
listener - the listener to notify

close

public void close()
Close this line.
Specified by:
close in interface Line
close in interface AutoCloseable

getControl

public Control getControl(Control.Type what)
Return the control associated with this Line that matches the argument.
Specified by:
getControl in interface Line
Parameters:
what - the type of the control to match
Returns:
the associated control
Throws:
IllegalArgumentException - if a control of this type is not available for this line

getControls

public Control[] getControls()
Return an array of controls associated with this Line. Note that this method will not return null -- if there are no controls, it will return a zero-length array.
Specified by:
getControls in interface Line

getLine

public Line getLine(Line.Info info)
            throws LineUnavailableException
Return a Line associated with this Mixer, given its description.
Specified by:
getLine in interface Mixer
Parameters:
info - the description of the line to find
Returns:
the corresponding Line
Throws:
LineUnavailableException - if no Line matching the description exists in this Mixer

getLineInfo

public Line.Info getLineInfo()
Return the Info object associated with this Line.
Specified by:
getLineInfo in interface Line

getMaxLines

public int getMaxLines(Line.Info info)
Return the number of lines matching this description.
Specified by:
getMaxLines in interface Mixer
Parameters:
info - the description of the lines to find.

getMixerInfo

public Info getMixerInfo()
Return an Info object describing this Mixer.
Specified by:
getMixerInfo in interface Mixer

getSourceLineInfo

public Line.Info[] getSourceLineInfo()
Return an array of Info objects describing all the source lines available in this Mixer.
Specified by:
getSourceLineInfo in interface Mixer

getSourceLineInfo

public Line.Info[] getSourceLineInfo(Line.Info info)
Return an array of Info objects describing all the source lines available in this Mixer, which match the provided decsription.
Specified by:
getSourceLineInfo in interface Mixer
Parameters:
info - the description of the source lines to find

getSourceLines

public Line[] getSourceLines()
Return an array of all the source lines available in this Mixer.
Specified by:
getSourceLines in interface Mixer

getTargetLineInfo

public Line.Info[] getTargetLineInfo()
Return an array of Info objects describing all the target lines available in this Mixer.
Specified by:
getTargetLineInfo in interface Mixer

getTargetLineInfo

public Line.Info[] getTargetLineInfo(Line.Info info)
Return an array of Info objects describing all the target lines available in this Mixer, which match the provided decsription.
Specified by:
getTargetLineInfo in interface Mixer
Parameters:
info - the description of the target lines to find

getTargetLines

public Line[] getTargetLines()
Return an array of all the target lines available in this Mixer.
Specified by:
getTargetLines in interface Mixer

isControlSupported

public boolean isControlSupported(Control.Type what)
Return true if a Control matching the argument is available for this Line, false otherwise.
Specified by:
isControlSupported in interface Line
Parameters:
what - the type of the control to match

isLineSupported

public boolean isLineSupported(Line.Info info)
Return true if a Line matching the given description is supported by this Mixer, false otherwise.
Specified by:
isLineSupported in interface Mixer
Parameters:
info - the description of the line to find

isOpen

public boolean isOpen()
Return true if this line is open, false otherwise.
Specified by:
isOpen in interface Line

isSynchronizationSupported

public boolean isSynchronizationSupported(Line[] lines,
                                          boolean sync)
Return true if this Mixer supports synchronization of the given set of lines.
Specified by:
isSynchronizationSupported in interface Mixer
Parameters:
lines - the lines to check
sync - true if the synchronization must be accurate at all times

open

public void open()
            throws LineUnavailableException
Open this line.
Specified by:
open in interface Line
Throws:
LineUnavailableException - if the line is unavailable for some reason

removeLineListener

public void removeLineListener(LineListener listener)
Remove the listener from this Line; after this call the listener will no longer be notified when this Line changes state.
Specified by:
removeLineListener in interface Line
Parameters:
listener - the listener to remove

synchronize

public void synchronize(Line[] lines,
                        boolean sync)
Start synchronization on the given set of lines.
Specified by:
synchronize in interface Mixer
Parameters:
lines - the lines to synchronize, or null for all the lines
sync - true if the synchronization must be accurate at all times
Throws:
IllegalArgumentException - if the lines cannot be synchronized

unsynchronize

public void unsynchronize(Line[] lines)
Stop synchronization for the given set of lines.
Specified by:
unsynchronize in interface Mixer
Parameters:
lines - the lines to unsynchronize, or null for all the lines

GStreamerMixer.java -- Mixer implementation. Copyright (C) 2007, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.