Limit convolution processing to the output ambisonic order
[openal-soft.git] / al / event.h
blob4717865bbb5d2f708b52afe15140995e20491bc9
1 #ifndef AL_EVENT_H
2 #define AL_EVENT_H
4 #include "AL/al.h"
5 #include "AL/alc.h"
7 #include "almalloc.h"
9 struct EffectBufferBase;
10 struct EffectState;
13 enum {
14 /* End event thread processing. */
15 EventType_KillThread = 0,
17 /* User event types. */
18 EventType_SourceStateChange = 1<<0,
19 EventType_BufferCompleted = 1<<1,
20 EventType_Error = 1<<2,
21 EventType_Performance = 1<<3,
22 EventType_Deprecated = 1<<4,
23 EventType_Disconnected = 1<<5,
25 /* Internal events. */
26 EventType_ReleaseEffectState = 65536,
27 EventType_ReleaseEffectBuffer,
30 struct AsyncEvent {
31 unsigned int EnumType{0u};
32 union {
33 char dummy;
34 struct {
35 ALuint id;
36 ALenum state;
37 } srcstate;
38 struct {
39 ALuint id;
40 ALuint count;
41 } bufcomp;
42 struct {
43 ALenum type;
44 ALuint id;
45 ALuint param;
46 ALchar msg[232];
47 } user;
48 EffectState *mEffectState;
49 EffectBufferBase *mEffectBuffer;
50 } u{};
52 AsyncEvent() noexcept = default;
53 constexpr AsyncEvent(unsigned int type) noexcept : EnumType{type} { }
55 DISABLE_ALLOC()
59 void StartEventThrd(ALCcontext *ctx);
60 void StopEventThrd(ALCcontext *ctx);
62 #endif