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