aboutsummaryrefslogtreecommitdiffstats
path: root/code
diff options
context:
space:
mode:
Diffstat (limited to 'code')
-rw-r--r--code/client/snd_openal.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/code/client/snd_openal.c b/code/client/snd_openal.c
index 5087b72..45b1398 100644
--- a/code/client/snd_openal.c
+++ b/code/client/snd_openal.c
@@ -98,6 +98,22 @@ static const char *S_AL_ErrorMsg(ALenum error)
}
}
+/*
+=================
+S_AL_ClearError
+=================
+*/
+static void S_AL_ClearError( qboolean quiet )
+{
+ int error = qalGetError();
+
+ if( quiet )
+ return;
+ if(error != AL_NO_ERROR)
+ Com_Printf(S_COLOR_YELLOW "WARNING: unhandled AL error: %s\n",
+ S_AL_ErrorMsg(error));
+}
+
//===========================================================================
@@ -217,7 +233,8 @@ static void S_AL_BufferUnload(sfxHandle_t sfx)
if(!knownSfx[sfx].inMemory)
return;
- // Delete it
+ // Delete it
+ S_AL_ClearError( qfalse );
qalDeleteBuffers(1, &knownSfx[sfx].buffer);
if((error = qalGetError()) != AL_NO_ERROR)
Com_Printf( S_COLOR_RED "ERROR: Can't delete sound buffer for %s\n",
@@ -296,6 +313,7 @@ static void S_AL_BufferLoad(sfxHandle_t sfx)
format = S_AL_Format(info.width, info.channels);
// Create a buffer
+ S_AL_ClearError( qfalse );
qalGenBuffers(1, &knownSfx[sfx].buffer);
if((error = qalGetError()) != AL_NO_ERROR)
{
@@ -613,7 +631,8 @@ qboolean S_AL_SrcInit( void )
limit = MAX_SRC;
else if(limit < 16)
limit = 16;
-
+
+ S_AL_ClearError( qfalse );
// Allocate as many sources as possible
for(i = 0; i < limit; i++)
{
@@ -1536,6 +1555,8 @@ void S_AL_MusicProcess(ALuint b)
ALuint format;
snd_stream_t *curstream;
+ S_AL_ClearError( qfalse );
+
if(intro_stream)
curstream = intro_stream;
else