]> icculus.org git repositories - icculus/iodoom3.git/blob - neo/openal/osx/OpenAL.framework/Versions/A/Headers/alctypes.h
90364609dda0a2dfc34751124dc7383fd7e2e5d8
[icculus/iodoom3.git] / neo / openal / osx / OpenAL.framework / Versions / A / Headers / alctypes.h
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
27 extern "C" {
28 #endif
29
30 /** ALC boolean type. */
31 typedef char ALCboolean;
32
33 /** ALC 8bit signed byte. */
34 typedef char ALCbyte;
35
36 /** ALC 8bit unsigned byte. */
37 typedef unsigned char ALCubyte;
38
39 /** ALC 16bit signed short integer type. */
40 typedef short ALCshort;
41
42 /** ALC 16bit unsigned short integer type. */
43 typedef unsigned short ALCushort;
44
45 /** ALC 32bit unsigned integer type. */
46 typedef unsigned ALCuint;
47
48 /** ALC 32bit signed integer type. */
49 typedef int ALCint;
50
51 /** ALC 32bit floating point type. */
52 typedef float ALCfloat;
53
54 /** ALC 64bit double point type. */
55 typedef double ALCdouble;
56
57 /** ALC 32bit type. */
58 typedef unsigned int ALCsizei;
59
60 /** ALC void type */
61 typedef void ALCvoid;
62
63 /** ALC enumerations. */
64 typedef 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