@@ -48,6 +48,7 @@ Extern
Function SDL_QuitSubSystem(flags:Int)
Function SDL_WasInit:Int(flags:Int)
Function SDL_Quit()
+ Function bmx_SDL_AudioInit:Int(name:String)
Function bmx_SDL_GetError:String()
Function SDL_ClearError()
@@ -149,3 +149,12 @@ BBString * bmx_SDL_GetClipboardText() {
}
return text;
+
+/* ----------------------------------------------------- */
+int bmx_SDL_AudioInit(BBString * name) {
+ char * n = bbStringToUTF8String(name);
+ int res = SDL_AudioInit(n);
+ bbMemFree(n);
+ return res;
+}
@@ -415,5 +415,12 @@ Function SDLClearError()
SDL_ClearError()
End Function
+Rem
+bbdoc: (re)Initialises the audio subsystem.
+End Rem
+Function SDLAudioInit:Int(name:String)
+ Return bmx_SDL_AudioInit(name)
+End Function
' shutdown all the subsystems
atexit_(SDL_Quit)
@@ -38,7 +38,9 @@ struct sdlaudio : audiodevice {
int reset() {
- SDL_InitSubSystem(SDL_INIT_AUDIO);
+ if (!SDL_WasInit(SDL_INIT_AUDIO)) {
+ SDL_InitSubSystem(SDL_INIT_AUDIO);
+ }
SDL_AudioSpec want;