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) {