Package com.jogamp.openal.util
Class ALAudioSink
- java.lang.Object
-
- com.jogamp.openal.util.ALAudioSink
-
- All Implemented Interfaces:
AudioSink
public class ALAudioSink extends Object implements AudioSink
OpenALAudioSinkimplementation.Besides given
AudioSinkfunctionality, implementation is fully functional regardingAudioFormatand all OpenAL parameter.
- All OpenAL parameter can be queried
- Instance can be constructed with an OpenAL device and context, see
#ALAudioSink(ALCdevice, ALCcontext) - Initialization can be performed with OpenAL paramters, see
#init(int, int, int, int, int, float, int, int, int)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.jogamp.common.av.AudioSink
AudioSink.AudioDataFrame, AudioSink.AudioFrame
-
-
Field Summary
-
Fields inherited from interface com.jogamp.common.av.AudioSink
DEBUG, DefaultFormat, DefaultFrameDuration, DefaultInitialQueueSize, DefaultQueueGrowAmount, DefaultQueueLimitAudioOnly, DefaultQueueLimitWithVideo
-
-
Constructor Summary
Constructors Constructor Description ALAudioSink()Create a new instance with a new defaultALCdeviceALAudioSink(ALCdevice alDevice)Create a new instance with an optional givenALCdeviceALAudioSink(String deviceName)Create a new instance with a new namedALCdevice
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddestroy()AudioSink.AudioFrameenqueueData(int pts, ByteBuffer bytes, int byteCount)voidflush()static ALgetAL()Return OpenAL globalAL.static ALCgetALC()Return OpenAL globalALC.intgetALChannelLayout()Return this instance's OpenAL channel layout, set after#init(AudioFormat, float, int, int, int).ALCcontextgetALContext()Return this instance's OpenALALCcontext.static ALExtgetALExt()Return OpenAL globalALExt.intgetALFormat()Return this instance's OpenAL format, set after#init(AudioFormat, float, int, int, int).intgetALSampleType()Return this instance's OpenAL sample type, set after#init(AudioFormat, float, int, int, int).intgetALSource()Return this instance's OpenAL source ID.AudioFormatgetChosenFormat()floatgetDefaultLatency()ALCdevicegetDevice()Return this instance's OpenALALCdevice.StringgetDeviceSpec()Return this instance's OpenALALCdevicespecifier.intgetEnqueuedFrameCount()intgetFrameCount()intgetFreeFrameCount()floatgetLatency()intgetMaxSupportedChannels()StringgetPerfString()floatgetPlaySpeed()AudioFormatgetPreferredFormat()intgetPreferredSampleRate()intgetPTS()intgetQueuedByteCount()intgetQueuedFrameCount()intgetQueuedTime()intgetSourceCount()floatgetVolume()booleanhasALCThreadLocalContext()Return whether OpenAL extensionALC_EXT_thread_local_contextis available.booleanhasEXTDouble()Return whether OpenAL extensionAL_EXT_DOUBLEis available.booleanhasEXTFloat32()Return whether OpenAL extensionAL_EXT_FLOAT32is available.booleanhasEXTMcFormats()Return whether OpenAL extensionAL_EXT_MCFORMATSis available.booleanhasSOFTBufferSamples()Return whether OpenAL extensionAL_SOFT_buffer_samplesis available.booleaninit(int alChannelLayout, int alSampleType, int alFormat, int sampleRate, int sampleSize, int frameDuration, int initialQueueSize, int queueGrowAmount, int queueLimit)Initializes the sink using the given OpenAL audio parameter and streaming details.booleaninit(AudioFormat requestedFormat, int frameDuration, int initialQueueSize, int queueGrowAmount, int queueLimit)booleanisAvailable()static booleanisInitialized()booleanisPlaying()booleanisSupported(AudioFormat format)voidlockExclusive()voidpause()voidplay()booleansetPlaySpeed(float rate)booleansetVolume(float v)StringtoString()voidunlockExclusive()
-
-
-
Constructor Detail
-
ALAudioSink
public ALAudioSink() throws RuntimeExceptionCreate a new instance with a new defaultALCdevice- Throws:
RuntimeException- if the defaultALCdevicecouldn't be fully created including its context.
-
ALAudioSink
public ALAudioSink(String deviceName) throws RuntimeException
Create a new instance with a new namedALCdevice- Parameters:
deviceName- name of- Throws:
RuntimeException- if the defaultALCdevicecouldn't be fully created including its context.
-
ALAudioSink
public ALAudioSink(ALCdevice alDevice) throws RuntimeException
Create a new instance with an optional givenALCdevice- Parameters:
alDevice- optional OpenAL device, a default device is opened if null.- Throws:
RuntimeException- if the defaultALCdevicecouldn't be fully created including its context.
-
-
Method Detail
-
isInitialized
public static boolean isInitialized()
-
getDeviceSpec
public final String getDeviceSpec()
Return this instance's OpenALALCdevicespecifier.
-
getALContext
public final ALCcontext getALContext()
Return this instance's OpenALALCcontext.
-
getALSource
public final int getALSource()
Return this instance's OpenAL source ID.
-
hasSOFTBufferSamples
public final boolean hasSOFTBufferSamples()
Return whether OpenAL extensionAL_SOFT_buffer_samplesis available.
-
hasEXTMcFormats
public final boolean hasEXTMcFormats()
Return whether OpenAL extensionAL_EXT_MCFORMATSis available.
-
hasEXTFloat32
public final boolean hasEXTFloat32()
Return whether OpenAL extensionAL_EXT_FLOAT32is available.
-
hasEXTDouble
public final boolean hasEXTDouble()
Return whether OpenAL extensionAL_EXT_DOUBLEis available.
-
hasALCThreadLocalContext
public final boolean hasALCThreadLocalContext()
Return whether OpenAL extensionALC_EXT_thread_local_contextis available.
-
getALChannelLayout
public final int getALChannelLayout()
Return this instance's OpenAL channel layout, set after#init(AudioFormat, float, int, int, int).
-
getALSampleType
public final int getALSampleType()
Return this instance's OpenAL sample type, set after#init(AudioFormat, float, int, int, int).
-
getALFormat
public final int getALFormat()
Return this instance's OpenAL format, set after#init(AudioFormat, float, int, int, int).
-
lockExclusive
public final void lockExclusive()
- Specified by:
lockExclusivein interfaceAudioSink
-
unlockExclusive
public final void unlockExclusive()
- Specified by:
unlockExclusivein interfaceAudioSink
-
getPerfString
public final String getPerfString()
-
getPreferredSampleRate
public int getPreferredSampleRate()
- Specified by:
getPreferredSampleRatein interfaceAudioSink
-
getSourceCount
public int getSourceCount()
- Specified by:
getSourceCountin interfaceAudioSink
-
getDefaultLatency
public float getDefaultLatency()
- Specified by:
getDefaultLatencyin interfaceAudioSink
-
getLatency
public float getLatency()
- Specified by:
getLatencyin interfaceAudioSink
-
getPreferredFormat
public final AudioFormat getPreferredFormat()
- Specified by:
getPreferredFormatin interfaceAudioSink
-
getMaxSupportedChannels
public final int getMaxSupportedChannels()
- Specified by:
getMaxSupportedChannelsin interfaceAudioSink
-
isSupported
public final boolean isSupported(AudioFormat format)
- Specified by:
isSupportedin interfaceAudioSink
-
init
public final boolean init(AudioFormat requestedFormat, int frameDuration, int initialQueueSize, int queueGrowAmount, int queueLimit)
-
init
public final boolean init(int alChannelLayout, int alSampleType, int alFormat, int sampleRate, int sampleSize, int frameDuration, int initialQueueSize, int queueGrowAmount, int queueLimit)Initializes the sink using the given OpenAL audio parameter and streaming details.- Parameters:
alChannelLayout- OpenAL channel layoutalSampleType- OpenAL sample typealFormat- OpenAL formatsampleRate- sample rate, e.g. 44100sampleSize- sample size in bits, e.g. 16frameDuration- average or fixed frame duration in milliseconds helping a cachingAudioSink.AudioFramebased implementation to determine the frame count in the queue. SeeAudioSink.DefaultFrameDuration.initialQueueSize- initial time in milliseconds to queue in this sink, seeAudioSink.DefaultInitialQueueSize.queueGrowAmount- time in milliseconds to grow queue if full, seeAudioSink.DefaultQueueGrowAmount.queueLimit- maximum time in milliseconds the queue can hold (and grow), seeAudioSink.DefaultQueueLimitWithVideoandAudioSink.DefaultQueueLimitAudioOnly.- Returns:
- true if successful, otherwise false
- See Also:
ALHelpers.getAudioFormat(int, int, int, int, int),#init(AudioFormat, float, int, int, int)
-
getChosenFormat
public final AudioFormat getChosenFormat()
- Specified by:
getChosenFormatin interfaceAudioSink
-
isAvailable
public final boolean isAvailable()
- Specified by:
isAvailablein interfaceAudioSink
-
enqueueData
public final AudioSink.AudioFrame enqueueData(int pts, ByteBuffer bytes, int byteCount)
- Specified by:
enqueueDatain interfaceAudioSink
-
getPlaySpeed
public final float getPlaySpeed()
- Specified by:
getPlaySpeedin interfaceAudioSink
-
setPlaySpeed
public final boolean setPlaySpeed(float rate)
- Specified by:
setPlaySpeedin interfaceAudioSink
-
getEnqueuedFrameCount
public final int getEnqueuedFrameCount()
- Specified by:
getEnqueuedFrameCountin interfaceAudioSink
-
getFrameCount
public final int getFrameCount()
- Specified by:
getFrameCountin interfaceAudioSink
-
getQueuedFrameCount
public final int getQueuedFrameCount()
- Specified by:
getQueuedFrameCountin interfaceAudioSink
-
getFreeFrameCount
public final int getFreeFrameCount()
- Specified by:
getFreeFrameCountin interfaceAudioSink
-
getQueuedByteCount
public final int getQueuedByteCount()
- Specified by:
getQueuedByteCountin interfaceAudioSink
-
getQueuedTime
public final int getQueuedTime()
- Specified by:
getQueuedTimein interfaceAudioSink
-
-