Apply reverb modulation to the late feedback lines
[openal-soft.git] / OpenAL32 / Include / alListener.h
blob9a7f9d49d0ee51e8abca849b0640c2df054a162b
1 #ifndef _AL_LISTENER_H_
2 #define _AL_LISTENER_H_
4 #include "alMain.h"
5 #include "alu.h"
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
11 struct ALlistenerProps {
12 ALfloat Position[3];
13 ALfloat Velocity[3];
14 ALfloat Forward[3];
15 ALfloat Up[3];
16 ALfloat Gain;
17 ALfloat MetersPerUnit;
19 ALfloat DopplerFactor;
20 ALfloat DopplerVelocity;
21 ALfloat SpeedOfSound;
22 ALboolean SourceDistanceModel;
23 enum DistanceModel DistanceModel;
25 ATOMIC(struct ALlistenerProps*) next;
28 typedef struct ALlistener {
29 ALfloat Position[3];
30 ALfloat Velocity[3];
31 ALfloat Forward[3];
32 ALfloat Up[3];
33 ALfloat Gain;
34 ALfloat MetersPerUnit;
36 /* Pointer to the most recent property values that are awaiting an update.
38 ATOMIC(struct ALlistenerProps*) Update;
40 /* A linked list of unused property containers, free to use for future
41 * updates.
43 ATOMIC(struct ALlistenerProps*) FreeList;
45 struct {
46 aluMatrixf Matrix;
47 aluVector Velocity;
49 ALfloat Gain;
50 ALfloat MetersPerUnit;
52 ALfloat DopplerFactor;
53 ALfloat SpeedOfSound;
55 ALboolean SourceDistanceModel;
56 enum DistanceModel DistanceModel;
57 } Params;
58 } ALlistener;
60 void UpdateListenerProps(ALCcontext *context);
62 #ifdef __cplusplus
64 #endif
66 #endif