aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/Include
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2016-08-26 19:46:46 -0700
committerChris Robinson <[email protected]>2016-08-26 21:19:38 -0700
commit4b153dade82b0558c96d54828bd2f9f86dc808fd (patch)
treef8bdb9f899633d8850c614232808392a7430ea58 /OpenAL32/Include
parentef03de39814486a1d91949cfff8b6a33bd137f91 (diff)
Allow sources to play while alcSuspendContext is in effect
This appears to be how Creative's Windows drivers handle it, and is necessary for at least the Windows version of UT2k4 (otherwise it tries to play a source while suspended, checks and sees it's stopped, then kills it before it's given a chance to start playing). Consequently, the internal properties it gets mixed with are determined by what the source properties are at the time of the play call, and the listener properties at the time of the suspend call. This does not change alDeferUpdatesSOFT, which will still hold the play state change until alProcessUpdatesSOFT.
Diffstat (limited to 'OpenAL32/Include')
-rw-r--r--OpenAL32/Include/alMain.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h
index e0e1b835..74f967ae 100644
--- a/OpenAL32/Include/alMain.h
+++ b/OpenAL32/Include/alMain.h
@@ -772,7 +772,7 @@ void AppendCaptureDeviceList(const ALCchar *name);
void ALCdevice_Lock(ALCdevice *device);
void ALCdevice_Unlock(ALCdevice *device);
-void ALCcontext_DeferUpdates(ALCcontext *context);
+void ALCcontext_DeferUpdates(ALCcontext *context, ALenum type);
void ALCcontext_ProcessUpdates(ALCcontext *context);
inline void LockContext(ALCcontext *context)
@@ -781,6 +781,12 @@ inline void LockContext(ALCcontext *context)
inline void UnlockContext(ALCcontext *context)
{ ALCdevice_Unlock(context->Device); }
+enum {
+ DeferOff = AL_FALSE,
+ DeferAll,
+ DeferAllowPlay
+};
+
typedef struct {
#ifdef HAVE_FENV_H