Package org.lwjgl.openal
Class ALC10
java.lang.Object
org.lwjgl.openal.ALC10
ALC introduces the notion of a Device. A Device can be, depending on the implementation, a hardware device, or a daemon/OS service/actual server. This mechanism also permits different drivers (and hardware) to coexist within the same system, as well as allowing several applications to share system resources for audio, including a single hardware output device. The details are left to the implementation, which has to map the available backends to unique device specifiers (represented as strings).
- Version:
- $Revision: 2286 $ $Id: ALC.java 2286 2006-03-23 19:32:21 +0000 (to, 23 mar 2006) matzon $
- Author:
- Brian Matzon <brian@matzon.dk>
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
Expects a destination of ALC_CURRENT_ATTRIBUTES_SIZE, and provides the attribute list for the current context of the specified device.static final int
The size required for the zero-terminated attributes list, for the current context.static final int
The specifier string for the default devicestatic final int
The specifier string for the devicestatic final int
The extensions string for diagnostics and printingstatic final int
Boolean Falsestatic final int
Frequency for mixing output buffer, in units of Hz.static final int
Bad valuestatic final int
The context argument does not name a valid contextstatic final int
The device argument does not name a valid devicestatic final int
A function was called at inappropriate time, or in an inappropriate way, causing an illegal state.static final int
Illegal value passed as an argument to an AL call.static final int
Major version query.static final int
Minor version query.static final int
Errors: No Errorstatic final int
A function could not be completed, because there is not enough memory available.static final int
Refresh intervalls, in units of Hz.static final int
Flag, indicating a synchronous context.static final int
Boolean True -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
alcCloseDevice
(ALCdevice device) ThealcCloseDevice
function allows the application (i.e.static ALCcontext
alcCreateContext
(ALCdevice device, IntBuffer attrList) A context is created usingalcCreateContext
.static void
alcDestroyContext
(ALCcontext context) The correct way to destroy a context is to first release it usingalcMakeCurrent
andnull
.static ALCdevice
alcGetContextsDevice
(ALCcontext context) The application can query for, and obtain an handle to, the device of a given context.static ALCcontext
The application can query for, and obtain an handle to, the current context for the application.static int
alcGetEnumValue
(ALCdevice device, String enumName) Enumeration/token values are device independend, but tokens defined for extensions might not be present for a given device.static int
alcGetError
(ALCdevice device) ALC uses the same conventions and mechanisms as AL for error handling.static void
alcGetInteger
(ALCdevice device, int pname, IntBuffer integerdata) The application can query ALC for information using an integer query function.static String
alcGetString
(ALCdevice device, int pname) The application can obtain certain strings from ALC.static boolean
alcIsExtensionPresent
(ALCdevice device, String extName) Verify that a given extension is available for the current context and the device it is associated with.static int
alcMakeContextCurrent
(ALCcontext context) To make a Context current with respect to AL Operation (state changes by issueing commands),alcMakeContextCurrent
is used.static ALCdevice
alcOpenDevice
(String devicename) ThealcOpenDevice
function allows the application (i.e.static void
alcProcessContext
(ALCcontext context) The current context is the only context accessible to state changes by AL commands (aside from state changes affecting shared objects).static void
alcSuspendContext
(ALCcontext context) The application can suspend any context from processing (including the current one).
-
Field Details
-
ALC_INVALID
public static final int ALC_INVALIDBad value- See Also:
-
ALC_FALSE
public static final int ALC_FALSEBoolean False- See Also:
-
ALC_TRUE
public static final int ALC_TRUEBoolean True- See Also:
-
ALC_NO_ERROR
public static final int ALC_NO_ERRORErrors: No Error- See Also:
-
ALC_MAJOR_VERSION
public static final int ALC_MAJOR_VERSIONMajor version query.- See Also:
-
ALC_MINOR_VERSION
public static final int ALC_MINOR_VERSIONMinor version query.- See Also:
-
ALC_ATTRIBUTES_SIZE
public static final int ALC_ATTRIBUTES_SIZEThe size required for the zero-terminated attributes list, for the current context.- See Also:
-
ALC_ALL_ATTRIBUTES
public static final int ALC_ALL_ATTRIBUTESExpects a destination of ALC_CURRENT_ATTRIBUTES_SIZE, and provides the attribute list for the current context of the specified device.- See Also:
-
ALC_DEFAULT_DEVICE_SPECIFIER
public static final int ALC_DEFAULT_DEVICE_SPECIFIERThe specifier string for the default device- See Also:
-
ALC_DEVICE_SPECIFIER
public static final int ALC_DEVICE_SPECIFIERThe specifier string for the device- See Also:
-
ALC_EXTENSIONS
public static final int ALC_EXTENSIONSThe extensions string for diagnostics and printing- See Also:
-
ALC_FREQUENCY
public static final int ALC_FREQUENCYFrequency for mixing output buffer, in units of Hz.- See Also:
-
ALC_REFRESH
public static final int ALC_REFRESHRefresh intervalls, in units of Hz.- See Also:
-
ALC_SYNC
public static final int ALC_SYNCFlag, indicating a synchronous context.- See Also:
-
ALC_INVALID_DEVICE
public static final int ALC_INVALID_DEVICEThe device argument does not name a valid device- See Also:
-
ALC_INVALID_CONTEXT
public static final int ALC_INVALID_CONTEXTThe context argument does not name a valid context- See Also:
-
ALC_INVALID_ENUM
public static final int ALC_INVALID_ENUMA function was called at inappropriate time, or in an inappropriate way, causing an illegal state. This can be an incompatible ALenum, object ID, and/or function.- See Also:
-
ALC_INVALID_VALUE
public static final int ALC_INVALID_VALUEIllegal value passed as an argument to an AL call. Applies to parameter values, but not to enumerations.- See Also:
-
ALC_OUT_OF_MEMORY
public static final int ALC_OUT_OF_MEMORYA function could not be completed, because there is not enough memory available.- See Also:
-
-
Constructor Details
-
ALC10
public ALC10()
-
-
Method Details
-
alcGetString
The application can obtain certain strings from ALC.ALC_DEFAULT_DEVICE_SPECIFIER
- The specifer string for the default deviceALC_DEVICE_SPECIFIER
- The specifer string for the deviceALC_EXTENSIONS
- The extensions string for diagnostics and printing. In addition, printable error message strings are provided for all valid error tokens, includingALC_NO_ERROR
,ALC_INVALID_DEVICE
,ALC_INVALID_CONTEXT
,ALC_INVALID_ENUM
,ALC_INVALID_VALUE
.- Parameters:
pname
- Property to get- Returns:
- String property from device
-
alcGetInteger
The application can query ALC for information using an integer query function. For some tokens,null
is a legal deviceHandle. In other cases, specifying anull
device will generate anALC_INVALID_DEVICE
error. The application has to specify the size of the destination buffer provided. Anull
destination or a zero size parameter will cause ALC to ignore the query.ALC_MAJOR_VERSION
- Major version query.ALC_MINOR_VERSION
- Minor version query.ALC_ATTRIBUTES_SIZE
- The size required for the zero-terminated attributes list, for the current context.null
is an invalid device.null
(no current context for the specified device) is legal.ALC_ALL_ATTRIBUTES
- Expects a destination ofALC_CURRENT_ATTRIBUTES_SIZE
, and provides the attribute list for the current context of the specified device.null
is an invalid device.null
(no current context for the specified device) will return the default attributes defined by the specified device.- Parameters:
pname
- Property to getintegerdata
- ByteBuffer to write integers to
-
alcOpenDevice
ThealcOpenDevice
function allows the application (i.e. the client program) to connect to a device (i.e. the server). If the function returnsnull
, then no sound driver/device has been found. The argument is a null terminated string that requests a certain device or device configuration. Ifnull
is specified, the implementation will provide an implementation specific default.- Parameters:
devicename
- name of device to open- Returns:
- opened device, or null
-
alcCloseDevice
ThealcCloseDevice
function allows the application (i.e. the client program) to disconnect from a device (i.e. the server). If deviceHandle isnull
or invalid, anALC_INVALID_DEVICE
error will be generated. Once closed, a deviceHandle is invalid.- Parameters:
device
- address of native device to close
-
alcCreateContext
A context is created usingalcCreateContext
. The device parameter has to be a valid device. The attribute list can benull
, or a zero terminated list of integer pairs composed of valid ALC attribute tokens and requested values. Context creation will fail if the application requests attributes that, by themselves, can not be provided. Context creation will fail if the combination of specified attributes can not be provided. Context creation will fail if a specified attribute, or the combination of attributes, does not match the default values for unspecified attributes.- Parameters:
device
- address of device to associate context toattrList
- Buffer to read attributes from- Returns:
- New context, or null if creation failed
-
alcMakeContextCurrent
To make a Context current with respect to AL Operation (state changes by issueing commands),alcMakeContextCurrent
is used. The context parameter can benull
or a valid context pointer. The operation will apply to the device that the context was created for. For each OS process (usually this means for each application), only one context can be current at any given time. All AL commands apply to the current context. Commands that affect objects shared among contexts (e.g. buffers) have side effects on other contexts.- Parameters:
context
- address of context to make current- Returns:
- true if successfull, false if not
-
alcProcessContext
The current context is the only context accessible to state changes by AL commands (aside from state changes affecting shared objects). However, multiple contexts can be processed at the same time. To indicate that a context should be processed (i.e. that internal execution state like offset increments are supposed to be performed), the application has to usealcProcessContext
. Repeated calls toalcProcessContext
are legal, and do not affect a context that is already marked as processing. The default state of a context created by alcCreateContext is that it is not marked as processing. -
alcGetCurrentContext
The application can query for, and obtain an handle to, the current context for the application. If there is no current context,null
is returned.- Returns:
- Current ALCcontext
-
alcGetContextsDevice
The application can query for, and obtain an handle to, the device of a given context.- Parameters:
context
- address of context to get device for
-
alcSuspendContext
The application can suspend any context from processing (including the current one). To indicate that a context should be suspended from processing (i.e. that internal execution state like offset increments is not supposed to be changed), the application has to usealcSuspendContext
. Repeated calls toalcSuspendContext
are legal, and do not affect a context that is already marked as suspended. The default state of a context created byalcCreateContext
is that it is marked as suspended.- Parameters:
context
- address of context to suspend
-
alcDestroyContext
The correct way to destroy a context is to first release it usingalcMakeCurrent
andnull
. Applications should not attempt to destroy a current context.- Parameters:
context
- address of context to Destroy
-
alcGetError
ALC uses the same conventions and mechanisms as AL for error handling. In particular, ALC does not use conventions derived from X11 (GLX) or Windows (WGL). ThealcGetError
function can be used to query ALC errors. Error conditions are specific to the device. ALC_NO_ERROR - The device handle or specifier does name an accessible driver/server.ALC_INVALID_DEVICE
- The Context argument does not name a valid context.ALC_INVALID_CONTEXT
- The Context argument does not name a valid context.ALC_INVALID_ENUM
- A token used is not valid, or not applicable.ALC_INVALID_VALUE
- An value (e.g. attribute) is not valid, or not applicable.- Returns:
- Errorcode from ALC statemachine
-
alcIsExtensionPresent
Verify that a given extension is available for the current context and the device it is associated with. Anull
name argument returnsALC_FALSE
, as do invalid and unsupported string tokens.- Parameters:
extName
- name of extension to find- Returns:
- true if extension is available, false if not
-
alcGetEnumValue
Enumeration/token values are device independend, but tokens defined for extensions might not be present for a given device. But only the tokens defined by the AL core are guaranteed. Availability of extension tokens dependends on the ALC extension. Specifying anull
name parameter will cause anALC_INVALID_VALUE
error.- Parameters:
enumName
- name of enum to find- Returns:
- value of enumeration
-