tSoundInit() is now always called; SoundClose() now only closes the active plugin if SoundOpen() has been previously called. - vaccinewars - be a doctor and try to vaccinate the world (HTM) git clone git://src.adamsgaard.dk/vaccinewars (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit 6d6fff2c9e53aa3a184d9d323e89f6806cee345b (DIR) parent 1d149880ac4a1f88998f022124e982eb282b409b (HTM) Author: Ben Webb <ben@salilab.org> Date: Tue, 14 May 2002 13:00:42 +0000 SoundInit() is now always called; SoundClose() now only closes the active plugin if SoundOpen() has been previously called. Diffstat: M src/sound.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) --- (DIR) diff --git a/src/sound.c b/src/sound.c t@@ -41,7 +41,8 @@ static SoundDriver *driver = NULL; typedef SoundDriver *(*InitFunc)(void); -void *soundmodule = NULL; +static void *soundmodule = NULL; +static gboolean module_open = FALSE; static void AddPlugin(InitFunc ifunc) { t@@ -127,19 +128,22 @@ void SoundInit(void) AddPlugin(sound_winmm_init); #endif #endif + module_open = FALSE; } void SoundOpen(gchar *drivername) { - if (driver && driver->open) { + if (driver && driver->open && !module_open) { driver->open(); + module_open = TRUE; } } void SoundClose(void) { - if (driver && driver->close) { + if (driver && driver->close && module_open) { driver->close(); + module_open = FALSE; } #ifdef PLUGINS if (soundmodule) {