From 1899a26c04b0cbb42b4e284eb4febd98e7615e15 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 1 Nov 2012 19:08:12 -0700 Subject: [PATCH] Allow playing iPod music in the background of SDL applications. You can always change your audio session category afterwards if you want custom behavior. --- src/audio/coreaudio/SDL_coreaudio.c | 10 +++++++++- src/audio/coreaudio/SDL_coreaudio.h | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/audio/coreaudio/SDL_coreaudio.c b/src/audio/coreaudio/SDL_coreaudio.c index d6c12555a..a0860528f 100644 --- a/src/audio/coreaudio/SDL_coreaudio.c +++ b/src/audio/coreaudio/SDL_coreaudio.c @@ -538,8 +538,16 @@ COREAUDIO_Init(SDL_AudioDriverImpl * impl) impl->DetectDevices = COREAUDIO_DetectDevices; #else impl->OnlyHasDefaultOutputDevice = 1; + + /* Set category to ambient sound so that other music continues playing. + You can change this at runtime in your own code if you need different + behavior. If this is common, we can add an SDL hint for this. + */ + AudioSessionInitialize(NULL, NULL, NULL, nil); + UInt32 category = kAudioSessionCategory_AmbientSound; + AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(UInt32), &category); #endif - + impl->ProvidesOwnCallbackThread = 1; return 1; /* this audio target is available. */ diff --git a/src/audio/coreaudio/SDL_coreaudio.h b/src/audio/coreaudio/SDL_coreaudio.h index 65941f584..e6b47c8bc 100644 --- a/src/audio/coreaudio/SDL_coreaudio.h +++ b/src/audio/coreaudio/SDL_coreaudio.h @@ -35,6 +35,8 @@ #if MAC_OS_X_VERSION_MAX_ALLOWED <= 1050 #include #endif +#else +#include #endif #include