LoadOAL.h 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. //-----------------------------------------------------------------------------
  2. // Copyright (c) 2012 GarageGames, LLC
  3. //
  4. // Permission is hereby granted, free of charge, to any person obtaining a copy
  5. // of this software and associated documentation files (the "Software"), to
  6. // deal in the Software without restriction, including without limitation the
  7. // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
  8. // sell copies of the Software, and to permit persons to whom the Software is
  9. // furnished to do so, subject to the following conditions:
  10. //
  11. // The above copyright notice and this permission notice shall be included in
  12. // all copies or substantial portions of the Software.
  13. //
  14. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16. // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  17. // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  18. // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  19. // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
  20. // IN THE SOFTWARE.
  21. //-----------------------------------------------------------------------------
  22. #ifndef _LOADOAL_H_
  23. #define _LOADOAL_H_
  24. #ifndef _PLATFORM_H_
  25. # include "platform/platform.h"
  26. #endif
  27. #if defined(TORQUE_OS_MAC)
  28. #undef AL_ALEXT_PROTOTYPES
  29. # include <OpenAL/al.h>
  30. # include <OpenAL/alc.h>
  31. #elif defined(TORQUE_OS_LINUX)
  32. # include <AL/al.h>
  33. # include <AL/alc.h>
  34. # include <AL/alext.h>
  35. # include <AL/efx.h>
  36. # include <AL/efx-presets.h>
  37. #else
  38. # include <al/al.h>
  39. # include <al/alc.h>
  40. # include <AL/alext.h>
  41. # include <AL/efx-presets.h>
  42. #endif
  43. #ifndef ALAPIENTRY
  44. #define ALAPIENTRY
  45. #endif
  46. #ifndef ALCAPIENTRY
  47. #define ALCAPIENTRY
  48. #endif
  49. // Open AL Function table definition
  50. #ifndef _OPENALFNTABLE
  51. #define _OPENALFNTABLE
  52. // AL 1.0 did not define the ALchar and ALCchar types, so define them here
  53. // if they don't exist
  54. #ifndef ALchar
  55. #define ALchar char
  56. #endif
  57. #ifndef ALCchar
  58. #define ALCchar char
  59. #endif
  60. typedef struct
  61. {
  62. LPALENABLE alEnable;
  63. LPALDISABLE alDisable;
  64. LPALISENABLED alIsEnabled;
  65. LPALGETBOOLEAN alGetBoolean;
  66. LPALGETINTEGER alGetInteger;
  67. LPALGETFLOAT alGetFloat;
  68. LPALGETDOUBLE alGetDouble;
  69. LPALGETBOOLEANV alGetBooleanv;
  70. LPALGETINTEGERV alGetIntegerv;
  71. LPALGETFLOATV alGetFloatv;
  72. LPALGETDOUBLEV alGetDoublev;
  73. LPALGETSTRING alGetString;
  74. LPALGETERROR alGetError;
  75. LPALISEXTENSIONPRESENT alIsExtensionPresent;
  76. LPALGETPROCADDRESS alGetProcAddress;
  77. LPALGETENUMVALUE alGetEnumValue;
  78. LPALLISTENERI alListeneri;
  79. LPALLISTENERF alListenerf;
  80. LPALLISTENER3F alListener3f;
  81. LPALLISTENERFV alListenerfv;
  82. LPALGETLISTENERI alGetListeneri;
  83. LPALGETLISTENERF alGetListenerf;
  84. LPALGETLISTENER3F alGetListener3f;
  85. LPALGETLISTENERFV alGetListenerfv;
  86. LPALGENSOURCES alGenSources;
  87. LPALDELETESOURCES alDeleteSources;
  88. LPALISSOURCE alIsSource;
  89. LPALSOURCEI alSourcei;
  90. LPALSOURCEF alSourcef;
  91. LPALSOURCE3I alSource3i;
  92. LPALSOURCE3F alSource3f;
  93. LPALSOURCEFV alSourcefv;
  94. LPALGETSOURCEI alGetSourcei;
  95. LPALGETSOURCEF alGetSourcef;
  96. LPALGETSOURCEFV alGetSourcefv;
  97. LPALSOURCEPLAYV alSourcePlayv;
  98. LPALSOURCESTOPV alSourceStopv;
  99. LPALSOURCEPLAY alSourcePlay;
  100. LPALSOURCEPAUSE alSourcePause;
  101. LPALSOURCESTOP alSourceStop;
  102. LPALSOURCEREWIND alSourceRewind;
  103. LPALGENBUFFERS alGenBuffers;
  104. LPALDELETEBUFFERS alDeleteBuffers;
  105. LPALISBUFFER alIsBuffer;
  106. LPALBUFFERDATA alBufferData;
  107. LPALGETBUFFERI alGetBufferi;
  108. LPALGETBUFFERF alGetBufferf;
  109. LPALSOURCEQUEUEBUFFERS alSourceQueueBuffers;
  110. LPALSOURCEUNQUEUEBUFFERS alSourceUnqueueBuffers;
  111. LPALDISTANCEMODEL alDistanceModel;
  112. LPALDOPPLERFACTOR alDopplerFactor;
  113. LPALDOPPLERVELOCITY alDopplerVelocity;
  114. LPALCGETSTRING alcGetString;
  115. LPALCGETINTEGERV alcGetIntegerv;
  116. LPALCOPENDEVICE alcOpenDevice;
  117. LPALCCLOSEDEVICE alcCloseDevice;
  118. LPALCCREATECONTEXT alcCreateContext;
  119. LPALCMAKECONTEXTCURRENT alcMakeContextCurrent;
  120. LPALCPROCESSCONTEXT alcProcessContext;
  121. LPALCGETCURRENTCONTEXT alcGetCurrentContext;
  122. LPALCGETCONTEXTSDEVICE alcGetContextsDevice;
  123. LPALCSUSPENDCONTEXT alcSuspendContext;
  124. LPALCDESTROYCONTEXT alcDestroyContext;
  125. LPALCGETERROR alcGetError;
  126. LPALCISEXTENSIONPRESENT alcIsExtensionPresent;
  127. LPALCGETPROCADDRESS alcGetProcAddress;
  128. LPALCGETENUMVALUE alcGetEnumValue;
  129. #if defined(AL_ALEXT_PROTOTYPES)
  130. LPALGENEFFECTS alGenEffects;
  131. LPALDELETEEFFECTS alDeleteEffects;
  132. LPALISEFFECT alIsEffect;
  133. LPALEFFECTI alEffecti;
  134. LPALEFFECTIV alEffectiv;
  135. LPALEFFECTF alEffectf;
  136. LPALEFFECTFV alEffectfv;
  137. LPALGETEFFECTI alGetEffecti;
  138. LPALGETEFFECTIV alGetEffectiv;
  139. LPALGETEFFECTF alGetEffectf;
  140. LPALGETEFFECTFV alGetEffectfv;
  141. LPALRELEASEALEFFECTS alReleaseEffects;
  142. LPALGENAUXILIARYEFFECTSLOTS alGenAuxiliaryEffectSlots;
  143. LPALDELETEAUXILIARYEFFECTSLOTS alDeleteAuxiliaryEffectSlots;
  144. LPALISAUXILIARYEFFECTSLOT alIsAuxiliaryEffectSlot;
  145. LPALAUXILIARYEFFECTSLOTI alAuxiliaryEffectSloti;
  146. LPALAUXILIARYEFFECTSLOTIV alAuxiliaryEffectSlotiv;
  147. LPALAUXILIARYEFFECTSLOTF alAuxiliaryEffectSlotf;
  148. LPALAUXILIARYEFFECTSLOTFV alAuxiliaryEffectSlotfv;
  149. LPALGETAUXILIARYEFFECTSLOTI alGetAuxiliaryEffectSloti;
  150. LPALGETAUXILIARYEFFECTSLOTIV alGetAuxiliaryEffectSlotiv;
  151. LPALGETAUXILIARYEFFECTSLOTF alGetAuxiliaryEffectSlotf;
  152. LPALGETAUXILIARYEFFECTSLOTFV alGetAuxiliaryEffectSlotfv;
  153. LPALGENFILTERS alGenFilters;
  154. LPALDELETEFILTERS alDeleteFilters;
  155. LPALFILTERI alFilteri;
  156. LPALCGETSTRINGISOFT alcGetStringiSOFT;
  157. #endif
  158. } OPENALFNTABLE, *LPOPENALFNTABLE;
  159. #endif
  160. ALboolean LoadOAL10Library(char *szOALFullPathName, LPOPENALFNTABLE lpOALFnTable);
  161. ALvoid UnloadOAL10Library();
  162. #endif // _LOADOAL_H_