* Restrict OpenAL capture support test hack to OS X, where it is required; this

fixes a crash on exit with Windows when using OpenAL
This commit is contained in:
Tim Angus 2008-08-03 19:31:42 +00:00
parent 71f8a85e42
commit d13269c5bb
2 changed files with 18 additions and 7 deletions

View File

@ -3181,7 +3181,7 @@ void CL_Shutdown( void ) {
Com_Printf( "----- CL_Shutdown -----\n" ); Com_Printf( "----- CL_Shutdown -----\n" );
if ( recursive ) { if ( recursive ) {
printf ("recursive shutdown\n"); Com_Printf( "WARNING: Recursive shutdown\n" );
return; return;
} }
recursive = qtrue; recursive = qtrue;

View File

@ -2072,22 +2072,33 @@ qboolean S_AL_Init( soundInterface_t *si )
// !!! FIXME: add support for capture device enumeration. // !!! FIXME: add support for capture device enumeration.
// !!! FIXME: add some better error reporting. // !!! FIXME: add some better error reporting.
s_alCapture = Cvar_Get( "s_alCapture", "1", CVAR_ARCHIVE | CVAR_LATCH ); s_alCapture = Cvar_Get( "s_alCapture", "1", CVAR_ARCHIVE | CVAR_LATCH );
if (!s_alCapture->integer) { if (!s_alCapture->integer)
{
Com_Printf("OpenAL capture support disabled by user ('+set s_alCapture 1' to enable)\n"); Com_Printf("OpenAL capture support disabled by user ('+set s_alCapture 1' to enable)\n");
}
#if USE_MUMBLE #if USE_MUMBLE
} else if (cl_useMumble->integer) { else if (cl_useMumble->integer)
{
Com_Printf("OpenAL capture support disabled for Mumble support\n"); Com_Printf("OpenAL capture support disabled for Mumble support\n");
}
#endif #endif
} else { else
{
#ifdef MACOS_X
// !!! FIXME: Apple has a 1.1-compliant OpenAL, which includes // !!! FIXME: Apple has a 1.1-compliant OpenAL, which includes
// !!! FIXME: capture support, but they don't list it in the // !!! FIXME: capture support, but they don't list it in the
// !!! FIXME: extension string. We need to check the version string, // !!! FIXME: extension string. We need to check the version string,
// !!! FIXME: then the extension string, but that's too much trouble, // !!! FIXME: then the extension string, but that's too much trouble,
// !!! FIXME: so we'll just check the function pointer for now. // !!! FIXME: so we'll just check the function pointer for now.
//if (qalcIsExtensionPresent(NULL, "ALC_EXT_capture")) { if (qalcCaptureOpenDevice == NULL)
if (qalcCaptureOpenDevice == NULL) { #else
if (!qalcIsExtensionPresent(NULL, "ALC_EXT_capture"))
#endif
{
Com_Printf("No ALC_EXT_capture support, can't record audio.\n"); Com_Printf("No ALC_EXT_capture support, can't record audio.\n");
} else { }
else
{
// !!! FIXME: 8000Hz is what Speex narrowband mode needs, but we // !!! FIXME: 8000Hz is what Speex narrowband mode needs, but we
// !!! FIXME: should probably open the capture device after // !!! FIXME: should probably open the capture device after
// !!! FIXME: initializing Speex so we can change to wideband // !!! FIXME: initializing Speex so we can change to wideband