Update of /cvsroot/netrek/client/netrekxp/src
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv9923/src
Modified Files:
input.c sound.c
Log Message:
Remove unused music_toggle, instead use sound_toggle for music playback, fixes
bug where geno music would still play with sound turned off.
New volume raise/lower function for SDL sound, which changes sound playback volume
without changing Windows WAV volume.
Index: input.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/input.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- input.c 13 Dec 2006 00:00:00 -0000 1.19
+++ input.c 11 Feb 2007 03:20:58 -0000 1.20
@@ -2847,7 +2847,10 @@
Key86 (void)
{
#ifdef SOUND
- ChangeVolume (1);
+ if (newSound)
+ ChangeNewsoundVolume (1);
+ else
+ ChangeVolume (1);
#else
emptyKey ();
#endif
@@ -3322,7 +3325,10 @@
Key118 (W_Event * data)
{
#ifdef SOUND
- ChangeVolume (-1);
+ if (newSound)
+ ChangeNewsoundVolume (-1);
+ else
+ ChangeVolume (-1);
#else
emptyKey ();
#endif
Index: sound.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/sound.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- sound.c 7 Feb 2007 23:04:57 -0000 1.22
+++ sound.c 11 Feb 2007 03:20:58 -0000 1.23
@@ -222,8 +222,7 @@
sound_toggle = 1;
loadSounds();
- /* Toggle on music, load music files, and play random intro music */
- music_toggle = 1;
+ /* Load music files, and play random intro music */
loadMusic();
i = RANDOM() % MUSIC_OFFSET;
Play_Music(i);
@@ -361,7 +360,7 @@
/* Only works with SDL, i.e. newSound */
extern void Play_Music (int type)
{
- if (!sound_init || !newSound || !newSoundMusic || !music_toggle)
+ if (!sound_init || !sound_toggle || !newSound || !newSoundMusic)
return;
if ((type >= NUM_MUSIC) || (type < 0))
@@ -382,7 +381,7 @@
{
int i;
- if (!sound_init || !newSound || !newSoundMusic || !newSoundMusicBkgd|| !music_toggle)
+ if (!sound_init || !sound_toggle || !newSound || !newSoundMusic || !newSoundMusicBkgd)
return;
if (Mix_PlayingMusic())
@@ -437,6 +436,28 @@
}
}
+/* Only works with SDL, i.e. newSound */
+extern void ChangeNewsoundVolume (int vol)
+{
+ int mvolume, volume;
+
+ // Get current average sound volume and music volume
+ volume = Mix_Volume(-1, -1);
+ mvolume = Mix_VolumeMusic(-1);
+
+ // Change sound volume for all channels, range is 0 to 128
+ volume = volume + 10*vol;
+ if (volume < 0)
+ volume = 0;
+ Mix_Volume(-1,volume);
+
+ // Change music volume, range is 0 to 128
+ mvolume = mvolume + 10*vol;
+ if (mvolume < 0)
+ mvolume = 0;
+ Mix_VolumeMusic(mvolume);
+}
+
extern void Abort_Sound (int type)
{
if ((current_sound != NO_SOUND) && (type == current_sound))