1#ifndef _ALCTYPES_H_
2#define _ALCTYPES_H_
3
4/**
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.
12 *
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.
17 *
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
23 */
24
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30/** ALC boolean type. */
31typedef char ALCboolean;
32
33/** ALC 8bit signed byte. */
34typedef char ALCbyte;
35
36/** ALC 8bit unsigned byte. */
37typedef unsigned char ALCubyte;
38
39/** ALC 16bit signed short integer type. */
40typedef short ALCshort;
41
42/** ALC 16bit unsigned short integer type. */
43typedef unsigned short ALCushort;
44
45/** ALC 32bit unsigned integer type. */
46typedef unsigned ALCuint;
47
48/** ALC 32bit signed integer type. */
49typedef int ALCint;
50
51/** ALC 32bit floating point type. */
52typedef float ALCfloat;
53
54/** ALC 64bit double point type. */
55typedef double ALCdouble;
56
57/** ALC 32bit type. */
58typedef unsigned int ALCsizei;
59
60/** ALC void type */
61typedef void ALCvoid;
62
63/** ALC enumerations. */
64typedef int ALCenum;
65
66/* Bad value. */
67#define ALC_INVALID                              (-1)
68
69/* Boolean False. */
70#define ALC_FALSE                                0
71
72/* Boolean True. */
73#define ALC_TRUE                                 1
74
75/** Errors: No Error. */
76#define ALC_NO_ERROR                             ALC_FALSE
77
78#define ALC_MAJOR_VERSION                        0x1000
79#define ALC_MINOR_VERSION                        0x1001
80#define ALC_ATTRIBUTES_SIZE                      0x1002
81#define ALC_ALL_ATTRIBUTES                       0x1003
82
83#define ALC_DEFAULT_DEVICE_SPECIFIER             0x1004
84#define ALC_DEVICE_SPECIFIER                     0x1005
85#define ALC_EXTENSIONS                           0x1006
86
87#define ALC_FREQUENCY							 0x1007
88#define	ALC_REFRESH								 0x1008
89#define ALC_SYNC								 0x1009
90
91/**
92 * The device argument does not name a valid dvice.
93 */
94#define ALC_INVALID_DEVICE                       0xA001
95
96/**
97 * The context argument does not name a valid context.
98 */
99#define ALC_INVALID_CONTEXT                      0xA002
100
101/**
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,
105 *  and/or function.
106 */
107#define ALC_INVALID_ENUM						 0xA003
108
109/**
110 * Illegal value passed as an argument to an AL call.
111 * Applies to parameter values, but not to enumerations.
112 */
113#define ALC_INVALID_VALUE                        0xA004
114
115/**
116 * A function could not be completed,
117 * because there is not enough memory available.
118 */
119#define ALC_OUT_OF_MEMORY                        0xA005
120
121
122/* ********************************************************************************
123	OSX Specific Properties
124   ******************************************************************************** */
125
126/**
127 * Convert Data When Loading.  Default false, currently applies only to monophonic sounds
128 */
129#define ALC_CONVERT_DATA_UPON_LOADING         		0xF001
130
131/**
132 * Render Quality.
133 */
134#define ALC_SPATIAL_RENDERING_QUALITY               0xF002
135	#define ALC_SPATIAL_RENDERING_QUALITY_HIGH      'rqhi'
136	#define ALC_SPATIAL_RENDERING_QUALITY_LOW       'rdlo'
137
138/**
139 * Mixer Output Rate.
140 */
141#define ALC_MIXER_OUTPUT_RATE		         		0xF003
142
143/**
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
148 */
149#define ALC_MIXER_MAXIMUM_BUSSES                    0xF004
150
151/**
152 * Render Channels.
153 * Allows a user to force OpenAL to render to stereo, regardless of the audio hardware being used
154 */
155#define ALC_RENDER_CHANNEL_COUNT                    0xF005
156	#define ALC_RENDER_CHANNEL_COUNT_STEREO         'rcst'
157	#define ALC_RENDER_CHANNEL_COUNT_MULTICHANNEL   'rcmc'
158
159
160#ifdef __cplusplus
161}
162#endif
163
164#endif
165
166