CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
ALLoader.hpp
Go to the documentation of this file.
1//
2// CeresEngine - A game development framework
3//
4// Created by Rogiel Sulzbach.
5// Copyright (c) 2018-2022 Rogiel Sulzbach. All rights reserved.
6//
7
8#pragma once
9
12
14
15#define AL_NO_PROTOTYPES
16
17#if CE_PLATFORM_APPLE
18#include <OpenAL/al.h>
19#include <OpenAL/alc.h>
20#else
21#include <al.h>
22#include <alc.h>
23#endif
24
25namespace CeresEngine {
26
27 /*
28 * Context Management
29 */
30 extern LPALCCREATECONTEXT alcCreateContext;
31 extern LPALCMAKECONTEXTCURRENT alcMakeContextCurrent;
32 extern LPALCPROCESSCONTEXT alcProcessContext;
33 extern LPALCSUSPENDCONTEXT alcSuspendContext;
34 extern LPALCDESTROYCONTEXT alcDestroyContext;
35 extern LPALCGETCURRENTCONTEXT alcGetCurrentContext;
36 extern LPALCGETCONTEXTSDEVICE alcGetContextsDevice;
37
38 /*
39 * Device Management
40 */
41 extern LPALCOPENDEVICE alcOpenDevice;
42 extern LPALCCLOSEDEVICE alcCloseDevice;
43
44 /*
45 * Error support.
46 * Obtain the most recent Context error
47 */
48 extern LPALCGETERROR alcGetError;
49
50 /*
51 * Extension support.
52 * Query for the presence of an extension, and obtain any appropriate
53 * function pointers and enum values.
54 */
55 extern LPALCISEXTENSIONPRESENT alcIsExtensionPresent;
56 extern LPALCGETPROCADDRESS alcGetProcAddress;
57 extern LPALCGETENUMVALUE alcGetEnumValue;
58
59 /*
60 * Query functions
61 */
62 extern LPALCGETSTRING alcGetString;
63 extern LPALCGETINTEGERV alcGetIntegerv;
64
65 /*
66 * Capture functions
67 */
68 extern LPALCCAPTUREOPENDEVICE alcCaptureOpenDevice;
69 extern LPALCCAPTURECLOSEDEVICE alcCaptureCloseDevice;
70 extern LPALCCAPTURESTART alcCaptureStart;
71 extern LPALCCAPTURESTOP alcCaptureStop;
72 extern LPALCCAPTURESAMPLES alcCaptureSamples;
73
74 // ---------------------------------------------------------------------------------------------
75
76 /*
77 * Renderer State management
78 */
79 extern LPALENABLE alEnable;
80 extern LPALDISABLE alDisable;
81 extern LPALISENABLED alIsEnabled;
82
83 /*
84 * State retrieval
85 */
86 extern LPALGETSTRING alGetString;
87 extern LPALGETBOOLEANV alGetBooleanv;
88 extern LPALGETINTEGERV alGetIntegerv;
89 extern LPALGETFLOATV alGetFloatv;
90 extern LPALGETDOUBLEV alGetDoublev;
91 extern LPALGETBOOLEAN alGetBoolean;
92 extern LPALGETINTEGER alGetInteger;
93 extern LPALGETFLOAT alGetFloat;
94 extern LPALGETDOUBLE alGetDouble;
95
96 /*
97 * Error support.
98 * Obtain the most recent error generated in the AL state machine.
99 */
100 extern LPALGETERROR alGetError;
101
102 /*
103 * Extension support.
104 * Query for the presence of an extension, and obtain any appropriate
105 * function pointers and enum values.
106 */
107 extern LPALISEXTENSIONPRESENT alIsExtensionPresent;
108 extern LPALGETPROCADDRESS alGetProcAddress;
109 extern LPALGETENUMVALUE alGetEnumValue;
110
111 /*
112 * LISTENER
113 * Listener represents the location and orientation of the
114 * 'user' in 3D-space.
115 *
116 * Properties include: -
117 *
118 * Gain AL_GAIN ALfloat
119 * Position AL_POSITION ALfloat[3]
120 * Velocity AL_VELOCITY ALfloat[3]
121 * Orientation AL_ORIENTATION ALfloat[6] (Forward then Up vectors)
122 */
123
124 /*
125 * Set Listener parameters
126 */
127 extern LPALLISTENERF alListenerf;
128 extern LPALLISTENER3F alListener3f;
129 extern LPALLISTENERFV alListenerfv;
130 extern LPALLISTENERI alListeneri;
131 extern LPALLISTENER3I alListener3i;
132 extern LPALLISTENERIV alListeneriv;
133
134 /*
135 * Get Listener parameters
136 */
137 extern LPALGETLISTENERF alGetListenerf;
138 extern LPALGETLISTENER3F alGetListener3f;
139 extern LPALGETLISTENERFV alGetListenerfv;
140 extern LPALGETLISTENERI alGetListeneri;
141 extern LPALGETLISTENER3I alGetListener3i;
142 extern LPALGETLISTENERIV alGetListeneriv;
143
144 /*
145 * SOURCE
146 * Sources represent individual sound objects in 3D-space.
147 * Sources take the PCM data provided in the specified Buffer,
148 * apply Source-specific modifications, and then
149 * submit them to be mixed according to spatial arrangement etc.
150 *
151 * Properties include: -
152 *
153 * Gain AL_GAIN ALfloat
154 * Min Gain AL_MIN_GAIN ALfloat
155 * Max Gain AL_MAX_GAIN ALfloat
156 * Position AL_POSITION ALfloat[3]
157 * Velocity AL_VELOCITY ALfloat[3]
158 * Direction AL_DIRECTION ALfloat[3]
159 * Head Relative Mode AL_SOURCE_RELATIVE ALint (AL_TRUE
160 * or AL_FALSE) Reference Distance AL_REFERENCE_DISTANCE
161 * ALfloat Max Distance AL_MAX_DISTANCE ALfloat
162 * RollOff Factor AL_ROLLOFF_FACTOR ALfloat
163 * Inner Angle AL_CONE_INNER_ANGLE ALint or
164 * ALfloat Outer Angle AL_CONE_OUTER_ANGLE ALint
165 * or ALfloat Cone Outer Gain AL_CONE_OUTER_GAIN ALint or
166 * ALfloat Pitch AL_PITCH ALfloat
167 * Looping AL_LOOPING ALint (AL_TRUE
168 * or AL_FALSE) MS Offset AL_MSEC_OFFSET ALint or
169 * ALfloat Byte Offset AL_BYTE_OFFSET ALint
170 * or ALfloat Sample Offset AL_SAMPLE_OFFSET ALint or
171 * ALfloat Attached Buffer AL_BUFFER ALint
172 * State (Query only) AL_SOURCE_STATE ALint
173 * Buffers Queued (Query only) AL_BUFFERS_QUEUED ALint
174 * Buffers Processed (Query only) AL_BUFFERS_PROCESSED ALint
175 */
176
177 extern LPALGENSOURCES alGenSources;
178 extern LPALDELETESOURCES alDeleteSources;
179 extern LPALISSOURCE alIsSource;
180 extern LPALSOURCEF alSourcef;
181 extern LPALSOURCE3F alSource3f;
182 extern LPALSOURCEFV alSourcefv;
183 extern LPALSOURCEI alSourcei;
184 extern LPALSOURCE3I alSource3i;
185 extern LPALSOURCEIV alSourceiv;
186 extern LPALGETSOURCEF alGetSourcef;
187 extern LPALGETSOURCE3F alGetSource3f;
188 extern LPALGETSOURCEFV alGetSourcefv;
189 extern LPALGETSOURCEI alGetSourcei;
190 extern LPALGETSOURCE3I alGetSource3i;
191 extern LPALGETSOURCEIV alGetSourceiv;
192 extern LPALSOURCEPLAYV alSourcePlayv;
193 extern LPALSOURCESTOPV alSourceStopv;
194 extern LPALSOURCEREWINDV alSourceRewindv;
195 extern LPALSOURCEPAUSEV alSourcePausev;
196 extern LPALSOURCEPLAY alSourcePlay;
197 extern LPALSOURCESTOP alSourceStop;
198 extern LPALSOURCEREWIND alSourceRewind;
199 extern LPALSOURCEPAUSE alSourcePause;
200 extern LPALSOURCEQUEUEBUFFERS alSourceQueueBuffers;
201 extern LPALSOURCEUNQUEUEBUFFERS alSourceUnqueueBuffers;
202
203 /*
204 * BUFFER
205 * Buffer objects are storage space for sample data.
206 * Buffers are referred to by Sources. One Buffer can be used
207 * by multiple Sources.
208 *
209 * Properties include: -
210 *
211 * Frequency (Query only) AL_FREQUENCY ALint
212 * Size (Query only) AL_SIZE ALint
213 * Bits (Query only) AL_BITS ALint
214 * Channels (Query only) AL_CHANNELS ALint
215 */
216
217 extern LPALGENBUFFERS alGenBuffers;
218 extern LPALDELETEBUFFERS alDeleteBuffers;
219 extern LPALISBUFFER alIsBuffer;
220 extern LPALBUFFERDATA alBufferData;
221 extern LPALBUFFERF alBufferf;
222 extern LPALBUFFER3F alBuffer3f;
223 extern LPALBUFFERFV alBufferfv;
224 extern LPALBUFFERI alBufferi;
225 extern LPALBUFFER3I alBuffer3i;
226 extern LPALBUFFERIV alBufferiv;
227 extern LPALGETBUFFERF alGetBufferf;
228 extern LPALGETBUFFER3F alGetBuffer3f;
229 extern LPALGETBUFFERFV alGetBufferfv;
230 extern LPALGETBUFFERI alGetBufferi;
231 extern LPALGETBUFFER3I alGetBuffer3i;
232 extern LPALGETBUFFERIV alGetBufferiv;
233
234 /*
235 * Global Parameters
236 */
237 extern LPALDOPPLERFACTOR alDopplerFactor;
238 extern LPALDOPPLERVELOCITY alDopplerVelocity;
239 extern LPALSPEEDOFSOUND alSpeedOfSound;
240 extern LPALDISTANCEMODEL alDistanceModel;
241
244 void ALLoad(const DynamicLibrary& library) noexcept;
245
246} // namespace CeresEngine
Definition DynamicLibrary.hpp:16
Definition Application.hpp:19
LPALCGETINTEGERV alcGetIntegerv
LPALCSUSPENDCONTEXT alcSuspendContext
LPALSOURCESTOPV alSourceStopv
LPALGETBOOLEAN alGetBoolean
LPALGETSOURCEIV alGetSourceiv
LPALGETSOURCE3F alGetSource3f
LPALSOURCE3I alSource3i
LPALLISTENERF alListenerf
LPALCCREATECONTEXT alcCreateContext
LPALGETBUFFER3F alGetBuffer3f
LPALGETBOOLEANV alGetBooleanv
LPALCPROCESSCONTEXT alcProcessContext
LPALSOURCEFV alSourcefv
LPALGETSOURCEI alGetSourcei
LPALDELETESOURCES alDeleteSources
LPALGETBUFFER3I alGetBuffer3i
LPALGETBUFFERF alGetBufferf
LPALCMAKECONTEXTCURRENT alcMakeContextCurrent
LPALDELETEBUFFERS alDeleteBuffers
LPALSOURCESTOP alSourceStop
LPALSOURCEPAUSE alSourcePause
LPALSOURCE3F alSource3f
LPALGETFLOATV alGetFloatv
LPALCGETERROR alcGetError
LPALGETLISTENERFV alGetListenerfv
LPALISEXTENSIONPRESENT alIsExtensionPresent
LPALDISTANCEMODEL alDistanceModel
LPALGETLISTENER3F alGetListener3f
LPALSOURCEPLAY alSourcePlay
LPALCOPENDEVICE alcOpenDevice
LPALCGETCONTEXTSDEVICE alcGetContextsDevice
LPALGETINTEGERV alGetIntegerv
LPALSOURCEIV alSourceiv
LPALISENABLED alIsEnabled
LPALISBUFFER alIsBuffer
LPALBUFFERDATA alBufferData
LPALCCAPTURESTOP alcCaptureStop
LPALGENBUFFERS alGenBuffers
LPALGETDOUBLEV alGetDoublev
LPALGETINTEGER alGetInteger
LPALCGETENUMVALUE alcGetEnumValue
LPALBUFFER3I alBuffer3i
LPALGENSOURCES alGenSources
LPALGETBUFFERIV alGetBufferiv
LPALDOPPLERVELOCITY alDopplerVelocity
LPALLISTENER3I alListener3i
LPALCGETCURRENTCONTEXT alcGetCurrentContext
LPALGETBUFFERI alGetBufferi
LPALGETFLOAT alGetFloat
LPALBUFFERF alBufferf
LPALSOURCEREWINDV alSourceRewindv
LPALLISTENERI alListeneri
LPALSOURCEI alSourcei
LPALSPEEDOFSOUND alSpeedOfSound
LPALGETLISTENERI alGetListeneri
LPALDISABLE alDisable
LPALGETDOUBLE alGetDouble
LPALGETPROCADDRESS alGetProcAddress
LPALSOURCEUNQUEUEBUFFERS alSourceUnqueueBuffers
LPALBUFFERFV alBufferfv
LPALCCAPTURESAMPLES alcCaptureSamples
LPALCISEXTENSIONPRESENT alcIsExtensionPresent
LPALGETSOURCE3I alGetSource3i
LPALCCAPTURESTART alcCaptureStart
LPALCCAPTURECLOSEDEVICE alcCaptureCloseDevice
void ALLoad(const DynamicLibrary &library) noexcept
Loads the OpenAL functions from the given library.
LPALISSOURCE alIsSource
LPALGETERROR alGetError
LPALBUFFERIV alBufferiv
LPALGETENUMVALUE alGetEnumValue
LPALGETSOURCEF alGetSourcef
LPALLISTENERIV alListeneriv
LPALSOURCEPAUSEV alSourcePausev
LPALCCAPTUREOPENDEVICE alcCaptureOpenDevice
LPALSOURCEQUEUEBUFFERS alSourceQueueBuffers
LPALCGETSTRING alcGetString
LPALGETLISTENER3I alGetListener3i
LPALBUFFERI alBufferi
LPALSOURCEREWIND alSourceRewind
LPALENABLE alEnable
LPALDOPPLERFACTOR alDopplerFactor
LPALLISTENER3F alListener3f
LPALGETLISTENERIV alGetListeneriv
LPALGETSOURCEFV alGetSourcefv
LPALGETSTRING alGetString
LPALCDESTROYCONTEXT alcDestroyContext
LPALBUFFER3F alBuffer3f
LPALCCLOSEDEVICE alcCloseDevice
LPALLISTENERFV alListenerfv
LPALGETLISTENERF alGetListenerf
LPALSOURCEF alSourcef
LPALGETBUFFERFV alGetBufferfv
LPALCGETPROCADDRESS alcGetProcAddress
LPALSOURCEPLAYV alSourcePlayv