Update of /cvsroot/netrek/client/netrekxp/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21311/src

Modified Files:
	beeplite.c cowmain.c data.c defaults.c findslot.c input.c 
	local.c newwin.c playback.c sound.c 
Log Message:
Instead of a #define SDL, changed it to always load in as I couldn't imagine ever wanting to distribute the client without this option enabled.  Instead, I'm using a netrekrc option, newSound, to let user choose whether to use the new SDL sound system or the old way.

Index: findslot.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/findslot.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- findslot.c	24 Apr 2006 14:13:25 -0000	1.3
+++ findslot.c	24 Apr 2006 15:30:38 -0000	1.4
@@ -112,8 +112,9 @@
         if (isServerDead ())
         {
         	
-#if defined(SOUND) && !defined(HAVE_SDL)
-            Exit_Sound();
+#if defined(SOUND)
+            if (!newSound)
+                Exit_Sound();
 #endif
 
             LineToConsole ("Shit!  Ghostbusted!\n");
@@ -158,8 +159,9 @@
         if (isServerDead ())
         {
 
-#if defined(SOUND) && !defined(HAVE_SDL)
-            Exit_Sound();
+#if defined(SOUND)
+            if (!newSound)
+                Exit_Sound();
 #endif
 
             LineToConsole ("Damn, We've been ghostbusted!\n");
@@ -217,8 +219,9 @@
                 else if (event.Window == qwin)
                 {
 
-#if defined(SOUND) && !defined(HAVE_SDL)
-                    Exit_Sound();
+#if defined(SOUND)
+                    if (!newSound)
+                        Exit_Sound();
 #endif
 
                     LineToConsole ("OK, bye!\n");

Index: sound.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/sound.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- sound.c	24 Apr 2006 14:13:25 -0000	1.3
+++ sound.c	24 Apr 2006 15:30:38 -0000	1.4
@@ -10,10 +10,8 @@
 #include "config.h"
 
 #ifdef SOUND
-#if defined(HAVE_SDL)
 #include "SDL.h"
 #include "SDL_mixer.h"
-#endif
 
 #include "copyright.h"
 
@@ -30,11 +28,7 @@
 #include "audio.h"
 #include "proto.h"
 
-#if defined(HAVE_SDL)
-/* This is probably unix specific path */
-Mix_Chunk *sounds[NUM_WAVES];
-
-#else 
+Mix_Chunk *newsounds[NUM_WAVES];
 /* Each sound has a priority which controls what can override what
    Currently these are set as follows:
 
@@ -81,15 +75,9 @@
 
 static int current_sound = NO_SOUND;
 static int sound_other = 1;     /* Play other ship's sounds? */
-#endif // Not SDL sound
 
 static char sound_prefix[PATH_MAX];
 
-#if defined(HAVE_SDL)
-
-/*
- * Build the patch to the sound files 
- */
 char *DATAFILE(const char* wav) {    
     strcpy(sound_prefix, sounddir);
     strcat(sound_prefix, "/");
@@ -103,39 +91,37 @@
 int loadSounds(void) {
   int i;
 
-  sounds[CLOAKED_WAV] = Mix_LoadWAV(DATAFILE("nt_cloaked.wav"));
-  sounds[ENGINE_WAV] = Mix_LoadWAV(DATAFILE("nt_engine.wav"));
-  sounds[ENTER_SHIP_WAV] = Mix_LoadWAV(DATAFILE("nt_enter_ship.wav"));
-  sounds[EXPLOSION_WAV] = Mix_LoadWAV(DATAFILE("nt_explosion.wav"));
-  sounds[EXPLOSION_OTHER_WAV] = Mix_LoadWAV(DATAFILE("nt_explosion_other.wav"));
-  sounds[FIRE_PLASMA_WAV] = Mix_LoadWAV(DATAFILE("nt_fire_plasma.wav"));
-  sounds[FIRE_TORP_WAV] = Mix_LoadWAV(DATAFILE("nt_fire_torp.wav"));
-  sounds[FIRE_TORP_OTHER_WAV] = Mix_LoadWAV(DATAFILE("nt_fire_torp_other.wav"));
-  sounds[INTRO_WAV] = Mix_LoadWAV(DATAFILE("nt_intro.wav"));
-  sounds[MESSAGE_WAV] = Mix_LoadWAV(DATAFILE("nt_message.wav"));
-  sounds[PHASER_WAV] = Mix_LoadWAV(DATAFILE("nt_phaser.wav"));
-  sounds[PHASER_OTHER_WAV] = Mix_LoadWAV(DATAFILE("nt_phaser_other.wav"));
-  sounds[PLASMA_HIT_WAV] = Mix_LoadWAV(DATAFILE("nt_plasma_hit.wav"));
-  sounds[RED_ALERT_WAV] = Mix_LoadWAV(DATAFILE("nt_red_alert.wav"));
-  sounds[SELF_DESTRUCT_WAV] = Mix_LoadWAV(DATAFILE("nt_self_destruct.wav"));
-  sounds[SHIELD_DOWN_WAV] = Mix_LoadWAV(DATAFILE("nt_shield_down.wav"));
-  sounds[SHIELD_UP_WAV] = Mix_LoadWAV(DATAFILE("nt_shield_up.wav"));
-  sounds[TORP_HIT_WAV] = Mix_LoadWAV(DATAFILE("nt_torp_hit.wav"));
-  sounds[UNCLOAK_WAV] = Mix_LoadWAV(DATAFILE("nt_uncloak.wav"));
-  sounds[WARNING_WAV] = Mix_LoadWAV(DATAFILE("nt_warning.wav"));
+  newsounds[CLOAKED_WAV] = Mix_LoadWAV(DATAFILE("nt_cloaked.wav"));
+  newsounds[ENGINE_WAV] = Mix_LoadWAV(DATAFILE("nt_engine.wav"));
+  newsounds[ENTER_SHIP_WAV] = Mix_LoadWAV(DATAFILE("nt_enter_ship.wav"));
+  newsounds[EXPLOSION_WAV] = Mix_LoadWAV(DATAFILE("nt_explosion.wav"));
+  newsounds[EXPLOSION_OTHER_WAV] = Mix_LoadWAV(DATAFILE("nt_explosion_other.wav"));
+  newsounds[FIRE_PLASMA_WAV] = Mix_LoadWAV(DATAFILE("nt_fire_plasma.wav"));
+  newsounds[FIRE_TORP_WAV] = Mix_LoadWAV(DATAFILE("nt_fire_torp.wav"));
+  newsounds[FIRE_TORP_OTHER_WAV] = Mix_LoadWAV(DATAFILE("nt_fire_torp_other.wav"));
+  newsounds[INTRO_WAV] = Mix_LoadWAV(DATAFILE("nt_intro.wav"));
+  newsounds[MESSAGE_WAV] = Mix_LoadWAV(DATAFILE("nt_message.wav"));
+  newsounds[PHASER_WAV] = Mix_LoadWAV(DATAFILE("nt_phaser.wav"));
+  newsounds[PHASER_OTHER_WAV] = Mix_LoadWAV(DATAFILE("nt_phaser_other.wav"));
+  newsounds[PLASMA_HIT_WAV] = Mix_LoadWAV(DATAFILE("nt_plasma_hit.wav"));
+  newsounds[RED_ALERT_WAV] = Mix_LoadWAV(DATAFILE("nt_red_alert.wav"));
+  newsounds[SELF_DESTRUCT_WAV] = Mix_LoadWAV(DATAFILE("nt_self_destruct.wav"));
+  newsounds[SHIELD_DOWN_WAV] = Mix_LoadWAV(DATAFILE("nt_shield_down.wav"));
+  newsounds[SHIELD_UP_WAV] = Mix_LoadWAV(DATAFILE("nt_shield_up.wav"));
+  newsounds[TORP_HIT_WAV] = Mix_LoadWAV(DATAFILE("nt_torp_hit.wav"));
+  newsounds[UNCLOAK_WAV] = Mix_LoadWAV(DATAFILE("nt_uncloak.wav"));
+  newsounds[WARNING_WAV] = Mix_LoadWAV(DATAFILE("nt_warning.wav"));
 
   for (i=0; i < NUM_WAVES; i++) {
-    if (!sounds[i]) {
-      LineToConsole("Mix_LoadWAV sound[%d] could not be loaded. Check soundDir in your .netrekrc: %s\n", i, Mix_GetError());
+    if (!newsounds[i]) {
+      LineToConsole("Mix_LoadWAV newsound[%d] could not be loaded. Check soundDir in your .netrekrc: %s\n", i, Mix_GetError());
       return(-1);
     }
   }
 
   return(1);
 }
-#endif
 
-#if !defined(HAVE_SDL)
 extern void Exit_Sound (void)
 {
     if (sound_init)
@@ -143,7 +129,7 @@
     sound_init = 0;
     sound_toggle = 0;
 }
-#endif
+
 
 extern void Init_Sound (void)
 {
@@ -164,99 +150,101 @@
                 sounddir = "./sounds";
         }
         
-#if defined(HAVE_SDL)
+       if (newSound)
+       {
 #ifdef DEBUG
-	LineToConsole ("Init_Sound using SDL\n");
+	    LineToConsole ("Init_Sound using SDL\n");
 #endif
 
-    	/* Initialize the SDL library */
-    	if (SDL_Init(SDL_INIT_AUDIO) < 0)
+    	    /* Initialize the SDL library */
+    	    if (SDL_Init(SDL_INIT_AUDIO) < 0)
       		LineToConsole("Couldn't initialize SDL: %s\n",SDL_GetError());
 
-    	atexit(SDL_Quit);
+    	    atexit(SDL_Quit);
 
-    	/* Open the audio device at 22050 Hz 8 bit Microsoft PCM with stereo */
-    	if (Mix_OpenAudio(22050, AUDIO_U8, 2, 1024) < 0) 
+    	    /* Open the audio device at 22050 Hz 8 bit Microsoft PCM with stereo */
+    	    if (Mix_OpenAudio(22050, AUDIO_U8, 2, 1024) < 0) 
       		LineToConsole("Mix_OpenAudio: %s\n", Mix_GetError());
 
-    	/* If we successfully loaded the wav files, so shut-off sound_init and play
-    	 * the introduction
-    	 */
-    	if (loadSounds())
-    	{
-     	  if (Mix_PlayChannel(-1, sounds[INTRO_WAV], 0) < 0)
-		LineToConsole("Mix_PlayChannel: %s\n", Mix_GetError());
-      	}
-      	/* Default of 8 channels not enough */
-      	Mix_AllocateChannels(16);
-#else
-        if (InitSound () == -1)
-        {
-            sound_toggle = 0;
-            sound_init = 0;
+    	    /* If we successfully loaded the wav files, so shut-off sound_init and play
+    	     * the introduction
+    	     */
+    	    if (loadSounds())
+    	    {
+     	        if (Mix_PlayChannel(-1, newsounds[INTRO_WAV], 0) < 0)
+		    LineToConsole("Mix_PlayChannel: %s\n", Mix_GetError());
+      	    }
+      	    /* Default of 8 channels not enough */
+       	    Mix_AllocateChannels(16);
         }
         else
         {
-            sound_init = 1;
-            sound_toggle = 1;
-        }
+            if (InitSound () == -1)
+            {
+                sound_toggle = 0;
+                sound_init = 0;
+            }
+            else
+            {
+                sound_init = 1;
+                sound_toggle = 1;
+            }
 
-        strcpy (sound_prefix, sounddir);
-        strcat (sound_prefix, "/");
+            strcpy (sound_prefix, sounddir);
+            strcat (sound_prefix, "/");
 
-        if (sound_toggle)
-        {
-            strcpy (buf, sounddir);
-            strcat (buf, "/nt_intro");
-            StartSound (buf);
+            if (sound_toggle)
+            {
+                strcpy (buf, sounddir);
+                strcat (buf, "/nt_intro");
+                StartSound (buf);
+            }
         }
-#endif
     }
 }
 
 extern void Play_Sound (int type)
 {
-#if defined(HAVE_SDL)
-
-    if (!sound_init)
-	return;
-
-    if ((type >= NUM_WAVES) || (type < 0))
-        LineToConsole("Invalid sound type %d\n", type);
-
-    if (Mix_PlayChannel(-1, sounds[type], 0) < 0)
-        LineToConsole("Mix_PlayChannel: %s\n", Mix_GetError());
+    if (newSound)
+    {
+        if (!sound_init)
+	    return;
 
+        if ((type >= NUM_WAVES) || (type < 0))
+            LineToConsole("Invalid sound type %d\n", type);
 
-#else
-    char buf[PATH_MAX];
+        if (Mix_PlayChannel(-1, newsounds[type], 0) < 0)
+            LineToConsole("Mix_PlayChannel: %s\n", Mix_GetError());
+    }
+    else
+    {
+        char buf[PATH_MAX];
 
-    /*  Don't play other ship's sounds if turned off */
-    if (type > OTHER_SOUND_OFFSET && !sound_other)
-        return;
+        /*  Don't play other ship's sounds if turned off */
+        if (type > OTHER_SOUND_OFFSET && !sound_other)
+            return;
 
-    if (sound_toggle && sounds[type].flag &&
+        if (sound_toggle && sounds[type].flag &&
         ((sounds[type].priority >= sounds[current_sound].priority) ||
          !SoundPlaying ()))
-    {
-        STRNCPY (buf, sound_prefix, PATH_MAX);
-        strcat (buf, sounds[type].name);
-        StartSound (buf);
-        current_sound = type;
-    }
+        {
+            STRNCPY (buf, sound_prefix, PATH_MAX);
+            strcat (buf, sounds[type].name);
+            StartSound (buf);
+            current_sound = type;
+        }
 
-    if (!(sound_toggle))
-        current_sound = NO_SOUND;
-#endif
+        if (!(sound_toggle))
+            current_sound = NO_SOUND;
+     }
 }
 
-#if !defined(HAVE_SDL)
 extern void Abort_Sound (int type)
 {
     if ((current_sound != NO_SOUND) && (type == current_sound))
         StopSound ();
 }
-#endif
+
 
 /* Sound options window stuff */
 
@@ -269,21 +257,22 @@
 
 extern void soundwindow (void)
 {
-#if defined(HAVE_SDL)
-    char *buf="All or nothing with SDL sound. Sorry";
-    W_WriteText(soundWin, 0, 0, textColor, buf, strlen(buf), 0);
-#else
-    int i;
-
-    for (i = 0; i <= SOUND_DONE; i++)
-        soundrefresh (i);
-#endif
+    if (newSound)
+    {
+        char *buf="All or nothing with SDL sound. Sorry";
+        W_WriteText(soundWin, 0, 0, textColor, buf, strlen(buf), 0);
+    }
+    else
+    {
+        int i;
 
+        for (i = 0; i <= SOUND_DONE; i++)
+            soundrefresh (i);
+    }
     /* Map window */
     W_MapWindow (soundWin);
 }
 
-#if !defined(HAVE_SDL)
 static void soundrefresh (int i)
 {
     char buf[BUFSIZ], *flag;
@@ -371,11 +360,11 @@
 
     W_WriteText (soundWin, 0, i, textColor, buf, strlen (buf), 0);
 }
-#endif /* HAVE_SDL */
 
 void soundaction (W_Event * data)
 {
-#if !defined(HAVE_SDL)
+  if (!newSound)
+  {
     int i, j;
 
     i = data->y;
@@ -429,7 +418,7 @@
     {
         sounddone ();
     }
-#endif /* HAVE_SDL */
+  }
 }
 
 extern void sounddone (void)

Index: newwin.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/newwin.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- newwin.c	24 Apr 2006 14:13:25 -0000	1.10
+++ newwin.c	24 Apr 2006 15:30:38 -0000	1.11
@@ -578,18 +578,6 @@
     W_SetWindowButtonHandler (spWin, spaction);
 #endif
 
-#ifdef SOUND
-#if defined(HAVE_SDL)
-    soundWin = W_MakeMenu("sound", WINSIDE + 20, -BORDER + 10, 40, 1, NULL, 2);
-#else
-    soundWin = W_MakeMenu("sound", WINSIDE + 20, -BORDER + 10, 30,
-			MESSAGE_SOUND + 4, NULL, 2);
-    W_SetWindowKeyDownHandler(soundWin, soundaction);
-    W_SetWindowButtonHandler(soundWin, soundaction);
-    W_DefineArrowCursor(soundWin);
-#endif
-#endif
-
 #ifdef TOOLS
     toolsWin = W_MakeScrollingWindow ("tools", WINSIDE + BORDER, BORDER,
                                         80, TOOLSWINLEN, NULL, BORDER);
@@ -666,6 +654,23 @@
     getResources (progname);
 }
 
+/******************************************************************************/
+/***  newsoundwin() - Need to map it after reset_defaults, so pulled out of newwin
+/******************************************************************************/
+newsoundwin (char *hostmon,
+        char *progname)
+{
+    if (newSound)
+        soundWin = W_MakeMenu("sound", WINSIDE + 20, -BORDER + 10, 40, 1, NULL, 2);
+    else
+    {
+        soundWin = W_MakeMenu("sound", WINSIDE + 20, -BORDER + 10, 30,
+			MESSAGE_SOUND + 4, NULL, 2);
+        W_SetWindowKeyDownHandler(soundWin, soundaction);
+        W_SetWindowButtonHandler(soundWin, soundaction);
+        W_DefineArrowCursor(soundWin);
+    }
+}
 
 /******************************************************************************/
 /***  mapAll()

Index: input.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/input.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- input.c	24 Apr 2006 14:13:25 -0000	1.5
+++ input.c	24 Apr 2006 15:30:38 -0000	1.6
@@ -1510,11 +1510,10 @@
 			/* Here we will have to enter message_on () followed by
 			   smessage to player */
 #ifdef SOUND
-#if defined(HAVE_SDL)
-  			Play_Sound(MESSAGE_WAV);
-#else
-  			Play_Sound(MESSAGE_SOUND);
-#endif
+                        if (newSound)
+  			    Play_Sound(MESSAGE_WAV);
+                        else
+  			    Play_Sound(MESSAGE_SOUND);
 #endif
 			message_on ();
 			data->key = players[target->o_num].p_mapchars[1];
@@ -1528,11 +1527,10 @@
 			/* Here we will have to enter message_on () followed by
 			   smessage to player */
 #ifdef SOUND
-#if defined(HAVE_SDL)
-  			Play_Sound(MESSAGE_WAV);
-#else
-  			Play_Sound(MESSAGE_SOUND);
-#endif
+                        if (newSound)
+  			    Play_Sound(MESSAGE_WAV);
+                        else
+  			    Play_Sound(MESSAGE_SOUND);
 #endif
 			message_on ();
 			data->key = 'T';
@@ -1546,11 +1544,10 @@
 			/* Here we will have to enter message_on () followed by
 			   smessage to player */
 #ifdef SOUND
-#if defined(HAVE_SDL)
-  			Play_Sound(MESSAGE_WAV);
-#else
-  			Play_Sound(MESSAGE_SOUND);
-#endif
+                        if (newSound)
+  			    Play_Sound(MESSAGE_WAV);
+                        else
+  			    Play_Sound(MESSAGE_SOUND);
 #endif
 			message_on ();
 			data->key = 'A';
@@ -2725,11 +2722,10 @@
 {
 
 #ifdef SOUND
-#if defined(HAVE_SDL)
-    Play_Sound(SELF_DESTRUCT_WAV);
-#else
-    Play_Sound(SELF_DESTRUCT_SOUND);
-#endif
+    if (newSound)
+        Play_Sound(SELF_DESTRUCT_WAV);
+    else
+        Play_Sound(SELF_DESTRUCT_SOUND);
 #endif
 
     sendQuitReq ();
@@ -3149,11 +3145,10 @@
 {
 
 #ifdef SOUND
-#if defined(HAVE_SDL)
-    Play_Sound(MESSAGE_WAV);
-#else
-    Play_Sound(MESSAGE_SOUND);
-#endif
+    if (newSound)
+        Play_Sound(MESSAGE_WAV);
+    else
+        Play_Sound(MESSAGE_SOUND);
 #endif
 
     message_on ();
@@ -3217,11 +3212,10 @@
 {
 
 #ifdef SOUND
-#if defined(HAVE_SDL)
-    Play_Sound(SELF_DESTRUCT_WAV);
-#else
-    Play_Sound(SELF_DESTRUCT_SOUND);
-#endif
+    if (newSound)
+        Play_Sound(SELF_DESTRUCT_WAV);
+    else
+        Play_Sound(SELF_DESTRUCT_SOUND);
 #endif
 
     fastQuit = 1;

Index: local.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/local.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- local.c	24 Apr 2006 14:13:25 -0000	1.7
+++ local.c	24 Apr 2006 15:30:38 -0000	1.8
@@ -480,11 +480,12 @@
 
 #ifdef SOUND
                 if (myPlayer(j) && (j->p_cloakphase == 0))
-#if defined(HAVE_SDL)
-                    Play_Sound(CLOAKED_WAV);
-#else
-                    Play_Sound(CLOAK_SOUND);
-#endif
+                {
+                    if (newSound)
+                        Play_Sound(CLOAKED_WAV);
+                    else
+                        Play_Sound(CLOAK_SOUND);
+                }
 #endif
 
                 j->p_cloakphase++;
@@ -498,13 +499,17 @@
 #ifdef SOUND
                 if (myPlayer(j))
                     if (j->p_cloakphase == CLOAK_PHASES - 1)
-#if defined(HAVE_SDL)
-                        Play_Sound(UNCLOAK_WAV);
-#else
-                        Play_Sound(UNCLOAK_SOUND);
+                    {
+                        if (newSound)
+                            Play_Sound(UNCLOAK_WAV);
+                        else
+                            Play_Sound(UNCLOAK_SOUND);
+                    }
                     else
-                        Abort_Sound(CLOAK_SOUND);
-#endif     	
+                    {
+                        if (!newSound)
+                             Abort_Sound(CLOAK_SOUND);
+                    } 	
 #endif
             	
                 j->p_cloakphase--;
@@ -712,17 +717,19 @@
             if (j->p_no == me->p_no)
             {
                 if ((sound_flags & PFSHIELD) && !(j->p_flags & PFSHIELD))
-#if defined(HAVE_SDL)
-                    Play_Sound(SHIELD_DOWN_WAV);
-#else
-                    Play_Sound(SHIELD_DOWN_SOUND);
-#endif
+                {
+                    if (newSound)
+                        Play_Sound(SHIELD_DOWN_WAV);
+                    else
+                        Play_Sound(SHIELD_DOWN_SOUND);
+                }
                 if (!(sound_flags & PFSHIELD) && (j->p_flags & PFSHIELD))
-#if defined(HAVE_SDL)
-                    Play_Sound(SHIELD_UP_WAV);
-#else
-                    Play_Sound(SHIELD_UP_SOUND);
-#endif
+                {
+                    if (newSound)
+                        Play_Sound(SHIELD_UP_WAV);
+                    else
+                        Play_Sound(SHIELD_UP_SOUND);
+                }
             }
 #endif
 
@@ -872,11 +879,12 @@
             
 #ifdef SOUND
             if (i == 1)
-#if defined(HAVE_SDL)
-                Play_Sound(j == me ? EXPLOSION_WAV : EXPLOSION_OTHER_WAV);
-#else
-                Play_Sound(j == me ? EXPLOSION_SOUND : OTHER_EXPLOSION_SOUND);
-#endif
+            {
+                if (newSound)
+                    Play_Sound(j == me ? EXPLOSION_WAV : EXPLOSION_OTHER_WAV);
+                else
+                    Play_Sound(j == me ? EXPLOSION_SOUND : OTHER_EXPLOSION_SOUND);
+            }
 #endif
 
             if (i < BMP_SHIPEXPL_FRAMES ||
@@ -923,11 +931,10 @@
 #ifdef SOUND
             if (!sound_phaser)
             {
-#if defined(HAVE_SDL)
-                Play_Sound(j == me ? PHASER_WAV : PHASER_OTHER_WAV);
-#else
-                Play_Sound(j == me ? PHASER_SOUND : OTHER_PHASER_SOUND);
-#endif
+                if (newSound)
+                    Play_Sound(j == me ? PHASER_WAV : PHASER_OTHER_WAV);
+                else
+                    Play_Sound(j == me ? PHASER_SOUND : OTHER_PHASER_SOUND);
                 sound_phaser++;
             }
 #endif
@@ -1367,11 +1374,12 @@
 
 #ifdef SOUND
                 if (k->t_fuse == BMP_TORPDET_FRAMES - 1)
-#if defined(HAVE_SDL)
-                    Play_Sound(TORP_HIT_WAV);
-#else
-                    Play_Sound(TORP_HIT_SOUND);
-#endif
+                {
+                    if (newSound)
+                        Play_Sound(TORP_HIT_WAV);
+                    else
+                        Play_Sound(TORP_HIT_SOUND);
+                }
 #endif
 
 #ifdef COLORIZEWEAPON
@@ -1549,11 +1557,12 @@
             
 #ifdef SOUND
             if (pt->pt_fuse == BMP_TORPDET_FRAMES - 1)
-#if defined(HAVE_SDL)
-                Play_Sound(PLASMA_HIT_WAV);
-#else
-                Play_Sound(PLASMA_HIT_SOUND);
-#endif
+            {
+                if (newSound)
+                    Play_Sound(PLASMA_HIT_WAV);
+                else
+                    Play_Sound(PLASMA_HIT_SOUND);
+            }
 #endif
 
 #ifdef COLORIZEWEAPON
@@ -1855,8 +1864,9 @@
             }
             W_ChangeBorder (baseWin, gColor);
 
-#if defined(SOUND) && !defined(HAVE_SDL)
-            Abort_Sound(WARNING_SOUND);
+#if defined(SOUND)
+            if (!newSound)
+                Abort_Sound(WARNING_SOUND);
 #endif
 
             break;
@@ -1870,8 +1880,9 @@
             }
             W_ChangeBorder (baseWin, yColor);
 
-#if defined(SOUND) && !defined(HAVE_SDL)
-            Abort_Sound(WARNING_SOUND);
+#if defined(SOUND)
+            if (!newSound)
+                Abort_Sound(WARNING_SOUND);
 #endif
 
             break;
@@ -1886,11 +1897,10 @@
             W_ChangeBorder (baseWin, rColor);
             
 #ifdef SOUND
-#if defined(HAVE_SDL)
-            Play_Sound(WARNING_WAV);
-#else
-            Play_Sound(WARNING_SOUND);
-#endif
+            if (newSound)
+                Play_Sound(WARNING_WAV);
+            else
+                Play_Sound(WARNING_SOUND);
 #endif
 
             break;
@@ -1898,21 +1908,24 @@
     }
 
 #ifdef SOUND
-#if defined(HAVE_SDL)
-    if (sound_torps < me->p_ntorp)
-        Play_Sound(FIRE_TORP_WAV);
-    if (sound_other_torps < num_other_torps)
-        Play_Sound(FIRE_TORP_OTHER_WAV);
-    if (sound_plasma < me->p_nplasmatorp)
-        Play_Sound(FIRE_PLASMA_WAV);
-#else
-    if (sound_torps < me->p_ntorp)
-        Play_Sound(FIRE_TORP_SOUND);
-    if (sound_other_torps < num_other_torps)
-        Play_Sound(OTHER_FIRE_TORP_SOUND);
-    if (sound_plasma < me->p_nplasmatorp)
-        Play_Sound(FIRE_PLASMA_SOUND);
-#endif
+    if (newSound)
+    {
+        if (sound_torps < me->p_ntorp)
+            Play_Sound(FIRE_TORP_WAV);
+        if (sound_other_torps < num_other_torps)
+            Play_Sound(FIRE_TORP_OTHER_WAV);
+        if (sound_plasma < me->p_nplasmatorp)
+            Play_Sound(FIRE_PLASMA_WAV);
+    }
+    else
+    {
+        if (sound_torps < me->p_ntorp)
+            Play_Sound(FIRE_TORP_SOUND);
+        if (sound_other_torps < num_other_torps)
+            Play_Sound(OTHER_FIRE_TORP_SOUND);
+        if (sound_plasma < me->p_nplasmatorp)
+            Play_Sound(FIRE_PLASMA_SOUND);
+    }
 
     sound_flags = me->p_flags;
     sound_torps = me->p_ntorp;

Index: playback.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/playback.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- playback.c	24 Apr 2006 14:13:25 -0000	1.9
+++ playback.c	24 Apr 2006 15:30:38 -0000	1.10
@@ -269,6 +269,7 @@
 #endif
 
 #ifdef SOUND
+    newsoundwin (display_host, name);
     Init_Sound ();
 #endif
 
@@ -282,8 +283,9 @@
     if (i >= RETURNBASE)
         return (i - RETURNBASE);        /* Terminate with retcode */
 
-#if defined(SOUND) && !defined(HAVE_SDL)
-    Abort_Sound(ENGINE_SOUND);
+#if defined(SOUND)
+    if (!newSound)
+        Abort_Sound(ENGINE_SOUND);
 #endif
 
 //#ifdef nodef
@@ -326,13 +328,16 @@
         redrawPStats ();
 
 #ifdef SOUND
-#if defined(HAVE_SDL)
-    Mix_HaltChannel(-1); /* Kill all currently playing sounds when entering game */
-    Play_Sound(ENTER_SHIP_WAV);
-#else
-    Play_Sound(ENTER_SHIP_SOUND);
-    Play_Sound(ENGINE_SOUND);
-#endif
+    if (newSound)
+    { 
+        Mix_HaltChannel(-1); /* Kill all currently playing sounds when entering game */
+        Play_Sound(ENTER_SHIP_WAV);
+    }
+    else
+    {
+        Play_Sound(ENTER_SHIP_SOUND);
+        Play_Sound(ENGINE_SOUND);
+    }
 #endif
 
     while (1)

Index: defaults.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/defaults.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- defaults.c	22 Apr 2006 14:11:47 -0000	1.8
+++ defaults.c	24 Apr 2006 15:30:38 -0000	1.9
@@ -278,6 +278,12 @@
             NULL
         }
     },
+    {"newSound", &newSound, RC_BOOL,
+        {
+            "Use new layered, stereo sound",
+            NULL
+        }
+    },
     {"omitTeamLetter", &omitTeamLetter, RC_BOOL,
         {
             "Omit team letter on galaxy",
@@ -1348,7 +1354,7 @@
         timerType = T_SHIP;
 
     allowWheelActions = booleanDefault ("allowWheelActions", allowWheelActions);
-
+    newSound = booleanDefault ("newSound", newSound);
     tpDotDist = intDefault ("tpDotDist", tpDotDist);
     omitTeamLetter = booleanDefault ("omitTeamLetter", omitTeamLetter);
 	beepOnPrivateMessage = booleanDefault ("beepOnPrivateMessage", beepOnPrivateMessage);

Index: data.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/data.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- data.c	22 Apr 2006 14:11:47 -0000	1.10
+++ data.c	24 Apr 2006 15:30:38 -0000	1.11
@@ -720,4 +720,6 @@
 
 WNDPROC lpfnDefRichEditWndProc;     /* default window proc */
 
-int richText = 0;   /* temporary variable to select rich text message windows */
\ No newline at end of file
+int richText = 0;   /* temporary variable to select rich text message windows */
+
+int newSound = 1;   /* use new SDL sound */
\ No newline at end of file

Index: beeplite.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/beeplite.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- beeplite.c	24 Apr 2006 14:13:25 -0000	1.4
+++ beeplite.c	24 Apr 2006 15:30:38 -0000	1.5
@@ -1,36 +1,5 @@
 /* beeplite.c
  *
- * $Log$
- * Revision 1.4  2006/04/24 14:13:25  modemhero
- * Initial SDL patch for multilayered sounds.
- *
- * Revision 1.3  2006/04/19 15:18:27  modemhero
- * Tidied up the save_options function, fixing some spacing errors, and puttting the
- * keymap/buttonmap on the top of the list due to its importance.  Also added the
- * sounddir option.  The eventual goal is to make save_options generate a file that contains
- * everything from your netrekrc file, so the options menus act as an in-game netrekrc editor.
- * Once everything is in place, save_options could write over your current netrekrc (the default
- * will be to write to a separate file, but there will be a menu option to save over your netrekrc).
- * Currently it writes to a separate file (netrek.sav) because it still doesn't save everything that is needed.
- * Default windows placements need to be saved, uselite options need to be saved, review window mapping
- * needs to be saved, option server/servernick/servertype needs to be saved, and lastly, the save
- * keymap routine is broken.
- *
- * Fixed mainResizeable loading from rc/saving.  Also made default setting = on.
- *
- * Revision 1.2  2006/04/19 13:02:33  modemhero
- * Rewrote TTS centering/refresh code so that text is properly centered and clears properly when the message expires.
- * The old code used an average text width that was not so good, resulting in poor centering for long messages.  The new code measures the length of the message directly.
- * Also, the W_ClearArea function was not catching the 3 left-most pixels for whatever reason, so the call to this function slightly extends the area to clear.
- * Updated COW manual to reflect change of tts_pos variable to tts_ypos.
- * This patch could be applied to other windows clients as well.
- *
- * Revision 1.1  2006/04/18 13:47:24  modemhero
- * First attempt at reimport of beeplite into NetrekXP.  Unresolved issue: improper text clearing on TTS beeplite messages.  Still to add: saving of beeplite settings in save_options.
- *
- * Revision 1.1.1.1  1998/11/01 17:24:08  siegl
- * COW 3.0 initial revision
- *
  */
 
 #include "config.h"
@@ -221,14 +190,15 @@
 		{
 
 #if defined(SOUND)
-#if defined(HAVE_SDL)
-                    Play_Sound(MESSAGE_WAV);
-#else
-                    if (sound_toggle)
-                        Play_Sound(MESSAGE_SOUND);
+                    if (newSound)
+                        Play_Sound(MESSAGE_WAV);
                     else
-		        W_Beep();
-#endif
+                    {
+                        if (sound_toggle)
+                            Play_Sound(MESSAGE_SOUND);
+                        else
+		            W_Beep();
+                    }
 #endif
 		}
 	        break;
@@ -237,7 +207,8 @@
    are not loaded into SDL library currently - can change at
    a later time. */
 #ifdef SOUND
-#if !defined(HAVE_SDL)
+            if (!newSound)
+            {
 	    case '1':
 	        if (F_beeplite_flags & LITE_SOUNDS)
 		  Play_Sound(MESSAGE1_SOUND);
@@ -274,7 +245,7 @@
 	        if (F_beeplite_flags & LITE_SOUNDS)
 		  Play_Sound(MESSAGE9_SOUND);
 	        break;
-#endif
+            }
 #endif
 
 	      /* Text between:  /|    |   will be displayed with TTS */

Index: cowmain.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/cowmain.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- cowmain.c	24 Apr 2006 14:13:25 -0000	1.8
+++ cowmain.c	24 Apr 2006 15:30:38 -0000	1.9
@@ -769,8 +769,10 @@
     resetdefaults ();
     savebitmaps ();
     
-#if defined(SOUND) && defined(HAVE_SDL)
-    Init_Sound();
+#if defined(SOUND)
+    newsoundwin (display_host, name);
+    if (newSound)
+        Init_Sound();
 #endif
 
     /* open memory...? */
@@ -898,8 +900,9 @@
 
   /* Moved SDL sound initialization to right after readdefaults() so
    * the intro can start playing ASAP */
-#if defined(SOUND) && !defined(HAVE_SDL)
-    Init_Sound();
+#if defined(SOUND)
+    if (!newSound)
+        Init_Sound();
 #endif
 
 
@@ -909,8 +912,9 @@
     if (i >= RETURNBASE)
         return (i - RETURNBASE);        /* Terminate with retcode */
 
-#if defined(SOUND) && !defined(HAVE_SDL)
-    Abort_Sound(ENGINE_SOUND);
+#if defined(SOUND)
+    if (!newSound)
+        Abort_Sound(ENGINE_SOUND);
 #endif
 
     /* give the player the motd and find out which team he wants */
@@ -957,8 +961,9 @@
 
         sendByeReq ();
 
-#if defined(SOUND) && !defined(HAVE_SDL)
-        Exit_Sound();
+#if defined(SOUND)
+        if (!newSound)
+            Exit_Sound();
 #endif
 
         sleep (1);
@@ -1041,13 +1046,16 @@
 
 
 #ifdef SOUND
-#if defined(HAVE_SDL)
-    Mix_HaltChannel(-1); /* Kill all currently playing sounds when entering game */
-    Play_Sound(ENTER_SHIP_WAV);
-#else
-    Play_Sound(ENTER_SHIP_SOUND);
-    Play_Sound(ENGINE_SOUND);
-#endif /* HAVE_SDL */
+    if (newSound)
+    {
+        Mix_HaltChannel(-1); /* Kill all currently playing sounds when entering game */
+        Play_Sound(ENTER_SHIP_WAV);
+    }
+    else
+    {
+        Play_Sound(ENTER_SHIP_SOUND);
+        Play_Sound(ENGINE_SOUND);
+    }
 #endif
 
     /* Get input until the player quits or dies */