1 #ifndef _AL_LISTENER_H_
2 #define _AL_LISTENER_H_
11 struct ALlistenerProps
{
12 ATOMIC(ALfloat
) Position
[3];
13 ATOMIC(ALfloat
) Velocity
[3];
14 ATOMIC(ALfloat
) Forward
[3];
15 ATOMIC(ALfloat
) Up
[3];
17 ATOMIC(ALfloat
) MetersPerUnit
;
19 ATOMIC(ALfloat
) DopplerFactor
;
20 ATOMIC(ALfloat
) DopplerVelocity
;
21 ATOMIC(ALfloat
) SpeedOfSound
;
23 ATOMIC(struct ALlistenerProps
*) next
;
26 typedef struct ALlistener
{
27 volatile ALfloat Position
[3];
28 volatile ALfloat Velocity
[3];
29 volatile ALfloat Forward
[3];
30 volatile ALfloat Up
[3];
31 volatile ALfloat Gain
;
32 volatile ALfloat MetersPerUnit
;
34 /* Pointer to the most recent property values that are awaiting an update.
36 ATOMIC(struct ALlistenerProps
*) Update
;
38 /* A linked list of unused property containers, free to use for future
41 ATOMIC(struct ALlistenerProps
*) FreeList
;
48 ALfloat MetersPerUnit
;
50 ALfloat DopplerFactor
;
55 void UpdateListenerProps(ALCcontext
*context
);