gnu.javax.sound.sampled.gstreamer.lines

Class GstSourceDataLine

Implemented Interfaces:
AutoCloseable, DataLine, Line, SourceDataLine

public class GstSourceDataLine
extends GstDataLine
implements SourceDataLine

Field Summary

Fields inherited from class gnu.javax.sound.sampled.gstreamer.lines.GstDataLine

DEFAULT_BUFFER_SIZE, open

Constructor Summary

GstSourceDataLine(AudioFormat format)

Method Summary

int
available()
Return the number of bytes currently available on this DataLine.
void
close()
Close this line.
void
drain()
This method blocks until whatever data is buffered in the DataLine's internal buffer has been drained.
void
flush()
This flushes the DataLine by discarding any buffered data.
int
getFramePosition()
Return the current frame position.
long
getLongFramePosition()
Return the current frame position.
long
getMicrosecondPosition()
Return the number of microseconds this DataLine has been playing.
boolean
isActive()
Return true if this line is active, meaning that it is actively performing audio I/O.
boolean
isRunning()
Return true if this line is running, meaning that it has been started.
void
open()
Open this line.
void
open(AudioFormat fmt)
Open the line, given the desired audio format.
void
open(AudioFormat fmt, int size)
Open the line, given the desired audio format and the buffer size.
void
start()
Start processing data.
void
stop()
Stop processing data.
int
write(byte[] buf, int offset, int length)
Write audio data to this line.

Methods inherited from class gnu.javax.sound.sampled.gstreamer.lines.GstDataLine

addLineListener, getBufferSize, getControl, getControls, getFormat, getLevel, getLineInfo, isControlSupported, isOpen, removeLineListener, setBufferSize, setFormat, setOpen

Methods inherited from class java.lang.Object

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

Constructor Details

GstSourceDataLine

public GstSourceDataLine(AudioFormat format)

Method Details

available

public int available()
Return the number of bytes currently available on this DataLine.
Specified by:
available in interface DataLine

close

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

drain

public void drain()
This method blocks until whatever data is buffered in the DataLine's internal buffer has been drained.
Specified by:
drain in interface DataLine

flush

public void flush()
This flushes the DataLine by discarding any buffered data.
Specified by:
flush in interface DataLine

getFramePosition

public int getFramePosition()
Return the current frame position.
Specified by:
getFramePosition in interface DataLine

getLongFramePosition

public long getLongFramePosition()
Return the current frame position.
Specified by:
getLongFramePosition in interface DataLine
Since:
1.5

getMicrosecondPosition

public long getMicrosecondPosition()
Return the number of microseconds this DataLine has been playing.
Specified by:
getMicrosecondPosition in interface DataLine

isActive

public boolean isActive()
Return true if this line is active, meaning that it is actively performing audio I/O.
Specified by:
isActive in interface DataLine

isRunning

public boolean isRunning()
Return true if this line is running, meaning that it has been started. When the line is stopped, this method will return false.
Specified by:
isRunning in interface DataLine

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

open

public void open(AudioFormat fmt)
            throws LineUnavailableException
Open the line, given the desired audio format.
Specified by:
open in interface SourceDataLine
Parameters:
fmt - the format to use
Throws:
LineUnavailableException - if the line is not available for some reason
SecurityException - if this is prevented by the security manager

open

public void open(AudioFormat fmt,
                 int size)
            throws LineUnavailableException
Open the line, given the desired audio format and the buffer size.
Specified by:
open in interface SourceDataLine
Parameters:
fmt - the format to use
size - the buffer size
Throws:
LineUnavailableException - if the line is not available for some reason
SecurityException - if this is prevented by the security manager

start

public void start()
Start processing data. This will emit a START event.
Specified by:
start in interface DataLine

stop

public void stop()
Stop processing data. This will emit a STOP event.
Specified by:
stop in interface DataLine

write

public int write(byte[] buf,
                 int offset,
                 int length)
Write audio data to this line. The data must be an integral number of frames, as determined by the audio format.
Specified by:
write in interface SourceDataLine
Parameters:
buf - a byte array of audio data
offset - index of the first byte in the array to use
length - the number of bytes to write
Returns:
the number of bytes written

GstSourceDataLine.java -- SourceDataLine implementation. Copyright (C) 2007 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.