OpenAL-1.3.1.1: A binding to the OpenAL cross-platform 3D audio APISource codeContentsIndex
Sound.OpenAL.ALC.Errors
Portabilityportable
Stabilityprovisional
Maintainersven.panne@aedion.de
Description
This module corresponds to section 6.3.6 (Query for Error Conditions) of the OpenAL Specification and Reference (version 1.1).
Synopsis
data ALCError = ALCError ALCErrorCategory String
data ALCErrorCategory
= ALCInvalidEnum
| ALCInvalidValue
| ALCInvalidOperation
| ALCInvalidDevice
| ALCInvalidContext
| ALCOutOfMemory
alcErrors :: Device -> GettableStateVar [ALCError]
Documentation
data ALCError Source
ALC errors consist of a general error category and a description of what went wrong.
Constructors
ALCError ALCErrorCategory String
show/hide Instances
data ALCErrorCategory Source
General ALC error categories.
Constructors
ALCInvalidEnum
ALCInvalidValue
ALCInvalidOperation
ALCInvalidDevice
ALCInvalidContext
ALCOutOfMemory
show/hide Instances
alcErrors :: Device -> GettableStateVar [ALCError]Source

OpenAL detects only a subset of those conditions that could be considered errors. This is because in many cases error checking would adversely impact the performance of an error-free program. The state variable alcErrors is used to obtain error information. When an error is detected by ALC, a flag is set and the error code is recorded. Further errors, if they occur, do not affect this recorded code. When alcErrors is read, the error for the given device is returned and the flag is cleared, so that a further error will again record its code. If reading alcErrors returns [] then there has been no detectable error since the last time alcErrors (or since the ALC was initialized).

When an error flag is set, results of ALC operations are undefined only if ALCOutOfMemory has occurred. In other cases, the command generating the error is ignored so that it has no effect on ALC state or output buffer contents. If the error generating command returns a value, it returns zero. If the generating command modifies values through a pointer argument, no change is made to these values. These error semantics apply only to ALC errors, not to system errors such as memory access errors.

Produced by Haddock version 0.8