Class ALC10

java.lang.Object
org.lwjgl.openal.ALC10

public final class ALC10 extends Object

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 invalid input: '<'brian@matzon.dk>
  • Field Details

    • ALC_INVALID

      public static final int ALC_INVALID
      Bad value
      See Also:
    • ALC_FALSE

      public static final int ALC_FALSE
      Boolean False
      See Also:
    • ALC_TRUE

      public static final int ALC_TRUE
      Boolean True
      See Also:
    • ALC_NO_ERROR

      public static final int ALC_NO_ERROR
      Errors: No Error
      See Also:
    • ALC_MAJOR_VERSION

      public static final int ALC_MAJOR_VERSION
      Major version query.
      See Also:
    • ALC_MINOR_VERSION

      public static final int ALC_MINOR_VERSION
      Minor version query.
      See Also:
    • ALC_ATTRIBUTES_SIZE

      public static final int ALC_ATTRIBUTES_SIZE
      The size required for the zero-terminated attributes list, for the current context.
      See Also:
    • ALC_ALL_ATTRIBUTES

      public static final int ALC_ALL_ATTRIBUTES
      Expects 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_SPECIFIER
      The specifier string for the default device
      See Also:
    • ALC_DEVICE_SPECIFIER

      public static final int ALC_DEVICE_SPECIFIER
      The specifier string for the device
      See Also:
    • ALC_EXTENSIONS

      public static final int ALC_EXTENSIONS
      The extensions string for diagnostics and printing
      See Also:
    • ALC_FREQUENCY

      public static final int ALC_FREQUENCY
      Frequency for mixing output buffer, in units of Hz.
      See Also:
    • ALC_REFRESH

      public static final int ALC_REFRESH
      Refresh intervalls, in units of Hz.
      See Also:
    • ALC_SYNC

      public static final int ALC_SYNC
      Flag, indicating a synchronous context.
      See Also:
    • ALC_INVALID_DEVICE

      public static final int ALC_INVALID_DEVICE
      The device argument does not name a valid device
      See Also:
    • ALC_INVALID_CONTEXT

      public static final int ALC_INVALID_CONTEXT
      The context argument does not name a valid context
      See Also:
    • ALC_INVALID_ENUM

      public static final int ALC_INVALID_ENUM
      A 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_VALUE
      Illegal 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_MEMORY
      A function could not be completed, because there is not enough memory available.
      See Also:
  • Constructor Details

    • ALC10

      public ALC10()
  • Method Details

    • alcGetString

      public static String alcGetString(ALCdevice device, int pname)
      The application can obtain certain strings from ALC. ALC_DEFAULT_DEVICE_SPECIFIER - The specifer string for the default device ALC_DEVICE_SPECIFIER - The specifer string for the device ALC_EXTENSIONS - The extensions string for diagnostics and printing. In addition, printable error message strings are provided for all valid error tokens, including ALC_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

      public static void alcGetInteger(ALCdevice device, int pname, IntBuffer integerdata)
      The application can query ALC for information using an integer query function. For some tokens, null is a legal deviceHandle. In other cases, specifying a null device will generate an ALC_INVALID_DEVICE error. The application has to specify the size of the destination buffer provided. A null 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 of ALC_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 get
      integerdata - ByteBuffer to write integers to
    • alcOpenDevice

      public static ALCdevice alcOpenDevice(String devicename)
      The alcOpenDevice function allows the application (i.e. the client program) to connect to a device (i.e. the server). If the function returns null, then no sound driver/device has been found. The argument is a null terminated string that requests a certain device or device configuration. If null is specified, the implementation will provide an implementation specific default.
      Parameters:
      devicename - name of device to open
      Returns:
      opened device, or null
    • alcCloseDevice

      public static boolean alcCloseDevice(ALCdevice device)
      The alcCloseDevice function allows the application (i.e. the client program) to disconnect from a device (i.e. the server). If deviceHandle is null or invalid, an ALC_INVALID_DEVICE error will be generated. Once closed, a deviceHandle is invalid.
      Parameters:
      device - address of native device to close
    • alcCreateContext

      public static ALCcontext alcCreateContext(ALCdevice device, IntBuffer attrList)
      A context is created using alcCreateContext. The device parameter has to be a valid device. The attribute list can be null, 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 to
      attrList - Buffer to read attributes from
      Returns:
      New context, or null if creation failed
    • alcMakeContextCurrent

      public static int alcMakeContextCurrent(ALCcontext context)
      To make a Context current with respect to AL Operation (state changes by issueing commands), alcMakeContextCurrent is used. The context parameter can be null 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

      public 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). 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 use alcProcessContext. Repeated calls to alcProcessContext 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

      public static ALCcontext 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

      public static ALCdevice alcGetContextsDevice(ALCcontext context)
      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

      public static void alcSuspendContext(ALCcontext context)
      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 use alcSuspendContext. Repeated calls to alcSuspendContext are legal, and do not affect a context that is already marked as suspended. The default state of a context created by alcCreateContext is that it is marked as suspended.
      Parameters:
      context - address of context to suspend
    • alcDestroyContext

      public static void alcDestroyContext(ALCcontext context)
      The correct way to destroy a context is to first release it using alcMakeCurrent and null. Applications should not attempt to destroy a current context.
      Parameters:
      context - address of context to Destroy
    • alcGetError

      public static int alcGetError(ALCdevice device)
      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). The alcGetError 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

      public 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. A null name argument returns ALC_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

      public 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. But only the tokens defined by the AL core are guaranteed. Availability of extension tokens dependends on the ALC extension. Specifying a null name parameter will cause an ALC_INVALID_VALUE error.
      Parameters:
      enumName - name of enum to find
      Returns:
      value of enumeration