Limit convolution processing to the output ambisonic order
[openal-soft.git] / alc / inprogext.h
blob02aea7602dcad2e5f054cf5bc485f165871f498e
1 #ifndef INPROGEXT_H
2 #define INPROGEXT_H
4 #include "AL/al.h"
5 #include "AL/alc.h"
6 #include "AL/alext.h"
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
12 #ifndef ALC_SOFT_loopback_bformat
13 #define ALC_SOFT_loopback_bformat 1
14 #define ALC_AMBISONIC_LAYOUT_SOFT 0x1997
15 #define ALC_AMBISONIC_SCALING_SOFT 0x1998
16 #define ALC_AMBISONIC_ORDER_SOFT 0x1999
17 #define ALC_MAX_AMBISONIC_ORDER_SOFT 0x199B
19 #define ALC_BFORMAT3D_SOFT 0x1508
21 /* Ambisonic layouts */
22 #define ALC_FUMA_SOFT 0x0000
23 #define ALC_ACN_SOFT 0x0001
25 /* Ambisonic scalings (normalization) */
26 /*#define ALC_FUMA_SOFT*/
27 #define ALC_SN3D_SOFT 0x0001
28 #define ALC_N3D_SOFT 0x0002
29 #endif
31 #ifndef AL_SOFT_map_buffer
32 #define AL_SOFT_map_buffer 1
33 typedef unsigned int ALbitfieldSOFT;
34 #define AL_MAP_READ_BIT_SOFT 0x00000001
35 #define AL_MAP_WRITE_BIT_SOFT 0x00000002
36 #define AL_MAP_PERSISTENT_BIT_SOFT 0x00000004
37 #define AL_PRESERVE_DATA_BIT_SOFT 0x00000008
38 typedef void (AL_APIENTRY*LPALBUFFERSTORAGESOFT)(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei freq, ALbitfieldSOFT flags);
39 typedef void* (AL_APIENTRY*LPALMAPBUFFERSOFT)(ALuint buffer, ALsizei offset, ALsizei length, ALbitfieldSOFT access);
40 typedef void (AL_APIENTRY*LPALUNMAPBUFFERSOFT)(ALuint buffer);
41 typedef void (AL_APIENTRY*LPALFLUSHMAPPEDBUFFERSOFT)(ALuint buffer, ALsizei offset, ALsizei length);
42 #ifdef AL_ALEXT_PROTOTYPES
43 AL_API void AL_APIENTRY alBufferStorageSOFT(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei freq, ALbitfieldSOFT flags);
44 AL_API void* AL_APIENTRY alMapBufferSOFT(ALuint buffer, ALsizei offset, ALsizei length, ALbitfieldSOFT access);
45 AL_API void AL_APIENTRY alUnmapBufferSOFT(ALuint buffer);
46 AL_API void AL_APIENTRY alFlushMappedBufferSOFT(ALuint buffer, ALsizei offset, ALsizei length);
47 #endif
48 #endif
50 #ifndef AL_SOFT_events
51 #define AL_SOFT_events 1
52 #define AL_EVENT_CALLBACK_FUNCTION_SOFT 0x1220
53 #define AL_EVENT_CALLBACK_USER_PARAM_SOFT 0x1221
54 #define AL_EVENT_TYPE_BUFFER_COMPLETED_SOFT 0x1222
55 #define AL_EVENT_TYPE_SOURCE_STATE_CHANGED_SOFT 0x1223
56 #define AL_EVENT_TYPE_ERROR_SOFT 0x1224
57 #define AL_EVENT_TYPE_PERFORMANCE_SOFT 0x1225
58 #define AL_EVENT_TYPE_DEPRECATED_SOFT 0x1226
59 #define AL_EVENT_TYPE_DISCONNECTED_SOFT 0x1227
60 typedef void (AL_APIENTRY*ALEVENTPROCSOFT)(ALenum eventType, ALuint object, ALuint param,
61 ALsizei length, const ALchar *message,
62 void *userParam);
63 typedef void (AL_APIENTRY*LPALEVENTCONTROLSOFT)(ALsizei count, const ALenum *types, ALboolean enable);
64 typedef void (AL_APIENTRY*LPALEVENTCALLBACKSOFT)(ALEVENTPROCSOFT callback, void *userParam);
65 typedef void* (AL_APIENTRY*LPALGETPOINTERSOFT)(ALenum pname);
66 typedef void (AL_APIENTRY*LPALGETPOINTERVSOFT)(ALenum pname, void **values);
67 #ifdef AL_ALEXT_PROTOTYPES
68 AL_API void AL_APIENTRY alEventControlSOFT(ALsizei count, const ALenum *types, ALboolean enable);
69 AL_API void AL_APIENTRY alEventCallbackSOFT(ALEVENTPROCSOFT callback, void *userParam);
70 AL_API void* AL_APIENTRY alGetPointerSOFT(ALenum pname);
71 AL_API void AL_APIENTRY alGetPointervSOFT(ALenum pname, void **values);
72 #endif
73 #endif
75 #ifndef AL_SOFT_effect_target
76 #define AL_SOFT_effect_target
77 #define AL_EFFECTSLOT_TARGET_SOFT 0x199C
78 #endif
80 #ifndef AL_SOFT_callback_buffer
81 #define AL_SOFT_callback_buffer
82 #define AL_BUFFER_CALLBACK_FUNCTION_SOFT 0x19A0
83 #define AL_BUFFER_CALLBACK_USER_PARAM_SOFT 0x19A1
84 typedef ALsizei (AL_APIENTRY*LPALBUFFERCALLBACKTYPESOFT)(ALvoid *userptr, ALvoid *sampledata, ALsizei numsamples);
85 typedef void (AL_APIENTRY*LPALBUFFERCALLBACKSOFT)(ALuint buffer, ALenum format, ALsizei freq, LPALBUFFERCALLBACKTYPESOFT callback, ALvoid *userptr, ALbitfieldSOFT flags);
86 typedef void (AL_APIENTRY*LPALGETBUFFERPTRSOFT)(ALuint buffer, ALenum param, ALvoid **value);
87 typedef void (AL_APIENTRY*LPALGETBUFFER3PTRSOFT)(ALuint buffer, ALenum param, ALvoid **value1, ALvoid **value2, ALvoid **value3);
88 typedef void (AL_APIENTRY*LPALGETBUFFERPTRVSOFT)(ALuint buffer, ALenum param, ALvoid **values);
89 #ifdef AL_ALEXT_PROTOTYPES
90 AL_API void AL_APIENTRY alBufferCallbackSOFT(ALuint buffer, ALenum format, ALsizei freq, LPALBUFFERCALLBACKTYPESOFT callback, ALvoid *userptr, ALbitfieldSOFT flags);
91 AL_API void AL_APIENTRY alGetBufferPtrSOFT(ALuint buffer, ALenum param, ALvoid **ptr);
92 AL_API void AL_APIENTRY alGetBuffer3PtrSOFT(ALuint buffer, ALenum param, ALvoid **ptr0, ALvoid **ptr1, ALvoid **ptr2);
93 AL_API void AL_APIENTRY alGetBufferPtrvSOFT(ALuint buffer, ALenum param, ALvoid **ptr);
94 #endif
95 #endif
97 #ifndef AL_SOFT_bformat_hoa
98 #define AL_SOFT_bformat_hoa
99 #define AL_UNPACK_AMBISONIC_ORDER_SOFT 0x199D
100 #endif
102 #ifndef AL_SOFT_convolution_reverb
103 #define AL_SOFT_convolution_reverb
104 #define AL_EFFECT_CONVOLUTION_REVERB_SOFT 0xA000
105 #endif
107 #ifdef __cplusplus
108 } /* extern "C" */
109 #endif
111 #endif /* INPROGEXT_H */