aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/Include
diff options
context:
space:
mode:
Diffstat (limited to 'OpenAL32/Include')
-rw-r--r--OpenAL32/Include/alSource.h5
-rw-r--r--OpenAL32/Include/alu.h11
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).