X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fsystem.c;h=cdf66b33dc05efb823ded0623cf4e44626314329;hb=ab9b68feafe2cf6012533e5ad0581e6b9d423959;hp=bfc0c0e8c97c3d10290637590c8263bb90f0d289;hpb=1150bdce04915bf329bd816307fb2507eba80e15;p=rocksndiamonds.git diff --git a/src/system.c b/src/system.c index bfc0c0e8..cdf66b33 100644 --- a/src/system.c +++ b/src/system.c @@ -14,6 +14,7 @@ #include "main.h" #include "misc.h" +#include "sound.h" /* ========================================================================= */ @@ -233,19 +234,33 @@ inline void ChangeVideoModeIfNeeded(void) /* audio functions */ /* ========================================================================= */ -inline boolean InitAudio(void) +inline struct AudioSystemInfo InitAudio(void) { - sysinfo.audio_available = TRUE; - sysinfo.audio_loops_available = FALSE; + struct AudioSystemInfo audio; - if (!sysinfo.audio_available) - return FALSE; + audio.sound_available = FALSE; + audio.loops_available = FALSE; + audio.soundserver_pipe[0] = audio.soundserver_pipe[1] = 0; + audio.soundserver_pid = 0; + audio.device_fd = 0; -#ifdef TARGET_SDL - return SDLInitAudio(); -#else - return TRUE; +#if defined(TARGET_SDL) + if (SDLInitAudio()) + { + audio.sound_available = TRUE; + audio.loops_available = TRUE; + } +#elif defined(PLATFORM_MSDOS) + if (MSDOSInitAudio()) + { + audio.sound_available = TRUE; + audio.loops_available = TRUE; + } +#elif defined(PLATFORM_UNIX) + UnixInitAudio(&audio); #endif + + return audio; }