Package javazoom.jl.player
Class AudioDeviceBase
- java.lang.Object
-
- javazoom.jl.player.AudioDeviceBase
-
- All Implemented Interfaces:
AudioDevice
- Direct Known Subclasses:
JavaSoundAudioDevice
,NullAudioDevice
public abstract class AudioDeviceBase extends java.lang.Object implements AudioDevice
TheAudioDeviceBase
class provides a simple thread-safe implementation of theAudioDevice
interface. Template methods are provided for subclasses to override and in doing so provide the implementation for the main operations of theAudioDevice
interface.- Since:
- 0.0.8
-
-
Constructor Summary
Constructors Constructor Description AudioDeviceBase()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Closes this audio device.protected void
closeImpl()
Template method to provide the implementation for closing the audio device.void
flush()
Waits for any buffered audio samples to be played by the audio device.protected void
flushImpl()
Template method to provide the implementation for flushing any buffered audio data.protected Decoder
getDecoder()
Retrieves the decoder that provides audio data to this audio device.boolean
isOpen()
Determines if this audio device is open or not.void
open(Decoder decoder)
Opens this audio device.protected void
openImpl()
Template method to provide the implementation for the opening of the audio device.protected void
setOpen(boolean open)
Sets the open state for this audio device.void
write(short[] samples, int offs, int len)
Writes audio data to this audio device.protected void
writeImpl(short[] samples, int offs, int len)
Template method to provide the implementation for writing audio samples to the audio device.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface javazoom.jl.player.AudioDevice
getPosition
-
-
-
-
Method Detail
-
open
public void open(Decoder decoder) throws JavaLayerException
Opens this audio device.- Specified by:
open
in interfaceAudioDevice
- Parameters:
decoder
- The decoder that will provide audio data to this audio device.- Throws:
JavaLayerException
-
openImpl
protected void openImpl() throws JavaLayerException
Template method to provide the implementation for the opening of the audio device.- Throws:
JavaLayerException
-
setOpen
protected void setOpen(boolean open)
Sets the open state for this audio device.
-
isOpen
public boolean isOpen()
Determines if this audio device is open or not.- Specified by:
isOpen
in interfaceAudioDevice
- Returns:
true
if the audio device is open,false
if it is not.
-
close
public void close()
Closes this audio device. If the device is currently playing audio, playback is stopped immediately without flushing any buffered audio data.- Specified by:
close
in interfaceAudioDevice
-
closeImpl
protected void closeImpl()
Template method to provide the implementation for closing the audio device.
-
write
public void write(short[] samples, int offs, int len) throws JavaLayerException
Writes audio data to this audio device. Audio data is assumed to be in the output format of the decoder. This method may return before the data has actually been sounded by the device if the device buffers audio samples.- Specified by:
write
in interfaceAudioDevice
- Parameters:
samples
- The samples to write to the audio device.offs
- The offset into the array of the first sample to write.len
- The number of samples from the array to write.- Throws:
JavaLayerException
- if the audio data could not be written to the audio device. If the audio device is not open, this method does nthing.
-
writeImpl
protected void writeImpl(short[] samples, int offs, int len) throws JavaLayerException
Template method to provide the implementation for writing audio samples to the audio device.- Throws:
JavaLayerException
-
flush
public void flush()
Waits for any buffered audio samples to be played by the audio device. This method should only be called prior to closing the device.- Specified by:
flush
in interfaceAudioDevice
-
flushImpl
protected void flushImpl()
Template method to provide the implementation for flushing any buffered audio data.
-
getDecoder
protected Decoder getDecoder()
Retrieves the decoder that provides audio data to this audio device.- Returns:
- The associated decoder.
-
-