diff options
Diffstat (limited to 'OpenAL32/Include')
-rw-r--r-- | OpenAL32/Include/alSource.h | 5 | ||||
-rw-r--r-- | OpenAL32/Include/alu.h | 11 |
2 files changed, 10 insertions, 6 deletions
diff --git a/OpenAL32/Include/alSource.h b/OpenAL32/Include/alSource.h index 265a8f47..795ddf24 100644 --- a/OpenAL32/Include/alSource.h +++ b/OpenAL32/Include/alSource.h @@ -40,6 +40,7 @@ typedef struct ALsource { ALfloat Direction[3]; ALfloat Orientation[2][3]; ALboolean HeadRelative; + ALboolean Looping; enum DistanceModel DistanceModel; ALboolean DirectChannels; @@ -91,9 +92,7 @@ typedef struct ALsource { /** Source Buffer Queue head. */ RWLock queue_lock; - ATOMIC(ALbufferlistitem*) queue; - - ATOMIC(ALboolean) looping; + ALbufferlistitem *queue; ATOMIC_FLAG PropsClean; diff --git a/OpenAL32/Include/alu.h b/OpenAL32/Include/alu.h index a2ba4fae..96c7d4c4 100644 --- a/OpenAL32/Include/alu.h +++ b/OpenAL32/Include/alu.h @@ -219,9 +219,6 @@ typedef struct ALvoice { ATOMIC(struct ALsource*) Source; ATOMIC(bool) Playing; - /* Current buffer queue item being played. */ - ATOMIC(struct ALbufferlistitem*) current_buffer; - /** * Source offset in samples, relative to the currently playing buffer, NOT * the whole queue, and the fractional (fixed-point) offset to the next @@ -230,6 +227,14 @@ typedef struct ALvoice { ATOMIC(ALuint) position; ATOMIC(ALsizei) position_fraction; + /* Current buffer queue item being played. */ + ATOMIC(struct ALbufferlistitem*) current_buffer; + + /* Buffer queue item to loop to at end of queue (will be NULL for non- + * looping voices). + */ + ATOMIC(struct ALbufferlistitem*) loop_buffer; + /** * Number of channels and bytes-per-sample for the attached source's * buffer(s). |