5 * OpenAL cross platform audio library
6 * Copyright (C) 1999-2000 by authors.
7 * Portions Copyright (C) 2004 by Apple Computer Inc.
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Library General Public License for more details.
18 * You should have received a copy of the GNU Library General Public
19 * License along with this library; if not, write to the
20 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 * Boston, MA 02111-1307, USA.
22 * Or go to http://www.gnu.org/copyleft/lgpl.html
30 /** ALC boolean type. */
31 typedef char ALCboolean;
33 /** ALC 8bit signed byte. */
36 /** ALC 8bit unsigned byte. */
37 typedef unsigned char ALCubyte;
39 /** ALC 16bit signed short integer type. */
40 typedef short ALCshort;
42 /** ALC 16bit unsigned short integer type. */
43 typedef unsigned short ALCushort;
45 /** ALC 32bit unsigned integer type. */
46 typedef unsigned ALCuint;
48 /** ALC 32bit signed integer type. */
51 /** ALC 32bit floating point type. */
52 typedef float ALCfloat;
54 /** ALC 64bit double point type. */
55 typedef double ALCdouble;
57 /** ALC 32bit type. */
58 typedef unsigned int ALCsizei;
63 /** ALC enumerations. */
67 #define ALC_INVALID (-1)
75 /** Errors: No Error. */
76 #define ALC_NO_ERROR ALC_FALSE
78 #define ALC_MAJOR_VERSION 0x1000
79 #define ALC_MINOR_VERSION 0x1001
80 #define ALC_ATTRIBUTES_SIZE 0x1002
81 #define ALC_ALL_ATTRIBUTES 0x1003
83 #define ALC_DEFAULT_DEVICE_SPECIFIER 0x1004
84 #define ALC_DEVICE_SPECIFIER 0x1005
85 #define ALC_EXTENSIONS 0x1006
87 #define ALC_FREQUENCY 0x1007
88 #define ALC_REFRESH 0x1008
89 #define ALC_SYNC 0x1009
92 * The device argument does not name a valid dvice.
94 #define ALC_INVALID_DEVICE 0xA001
97 * The context argument does not name a valid context.
99 #define ALC_INVALID_CONTEXT 0xA002
102 * A function was called at inappropriate time,
103 * or in an inappropriate way, causing an illegal state.
104 * This can be an incompatible ALenum, object ID,
107 #define ALC_INVALID_ENUM 0xA003
110 * Illegal value passed as an argument to an AL call.
111 * Applies to parameter values, but not to enumerations.
113 #define ALC_INVALID_VALUE 0xA004
116 * A function could not be completed,
117 * because there is not enough memory available.
119 #define ALC_OUT_OF_MEMORY 0xA005
122 //*********************************************************************************
123 // OSX Specific Properties
124 //*********************************************************************************
127 * Convert Data When Loading. Default false, currently applies only to monophonic sounds
129 #define ALC_CONVERT_DATA_UPON_LOADING 0xF001
134 #define ALC_SPATIAL_RENDERING_QUALITY 0xF002
135 #define ALC_SPATIAL_RENDERING_QUALITY_HIGH 'rqhi'
136 #define ALC_SPATIAL_RENDERING_QUALITY_LOW 'rdlo'
141 #define ALC_MIXER_OUTPUT_RATE 0xF003
144 * Maximum Mixer Busses.
145 * Set this before opening a new OAL device to indicate how many busses on the mixer
146 * are desired. Get returns either the current devices bus count value, or the value
147 * that will be used to open a device
149 #define ALC_MIXER_MAXIMUM_BUSSES 0xF004
153 * Allows a user to force OpenAL to render to stereo, regardless of the audio hardware being used
155 #define ALC_RENDER_CHANNEL_COUNT 0xF005
156 #define ALC_RENDER_CHANNEL_COUNT_STEREO 'rcst'
157 #define ALC_RENDER_CHANNEL_COUNT_MULTICHANNEL 'rcmc'