Update of /cvsroot/netrek/client/netrekxp/src
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv6824/src
Modified Files:
sound.c winsndlib.c
Log Message:
Fixed changing volume in-game with SDL.
Index: winsndlib.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/winsndlib.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- winsndlib.c 21 Apr 2006 12:00:07 -0000 1.3
+++ winsndlib.c 29 May 2006 00:18:09 -0000 1.4
@@ -52,8 +52,8 @@
/* Sound cache size */
#define MAXBYTES (256*1024*10)
-int caps_vol = 0; /* can control volume */
-int caps_lr = 0; /* has separate volume control for each channel */
+static int caps_vol = 0; /* can control volume */
+static int caps_lr = 0; /* has separate volume control for each channel */
/* Macro to create DWORD from HIWORD and LOWORD */
#define MAKEDWORD(a, b) ((DWORD) (((WORD) (a)) | ((DWORD) ((WORD) (b))) << 16))
@@ -315,7 +315,6 @@
static PCMWAVEFORMAT lastfmt;
struct sound *snd;
DWORD err;
- WAVEOUTCAPS caps;
#ifdef DEBUG
LineToConsole ("Request to play sound %s\n", name);
@@ -361,24 +360,7 @@
waveOutPrepareHeader (hw, &snd->hdr, sizeof (WAVEHDR));
waveOutWrite (hw, &snd->hdr, sizeof (WAVEHDR));
- /* Now let's see whether our device supports volume control */
- waveOutGetDevCaps (WAVE_MAPPER, &caps, sizeof (WAVEOUTCAPS));
- if (caps.dwSupport & WAVECAPS_VOLUME)
- caps_vol = 1;
- if (caps.dwSupport & WAVECAPS_LRVOLUME)
- caps_lr = 1;
-
- /* Now let's see whether volume is balanced or not */
- if (caps_lr)
- {
- DWORD curvol;
-
- waveOutGetVolume (hw, &curvol);
-
- if (LOWORD(curvol) != HIWORD(curvol))
- waveOutSetVolume (hw, MAKEDWORD(LOWORD(curvol), LOWORD(curvol)));
- }
-
+ CheckVolumeSettings();
return 0;
}
return -1;
@@ -449,4 +431,28 @@
waveOutSetVolume (hw, MAKEDWORD(HIWORD(curvol), LOWORD(curvol) - 0x1111));
break;
}
+}
+
+void
+CheckVolumeSettings ()
+{
+ WAVEOUTCAPS caps;
+
+ /* Let's see whether our device supports volume control */
+ waveOutGetDevCaps (WAVE_MAPPER, &caps, sizeof (WAVEOUTCAPS));
+ if (caps.dwSupport & WAVECAPS_VOLUME)
+ caps_vol = 1;
+ if (caps.dwSupport & WAVECAPS_LRVOLUME)
+ caps_lr = 1;
+
+ /* Now let's see whether volume is balanced or not */
+ if (caps_lr)
+ {
+ DWORD curvol;
+ waveOutGetVolume (hw, &curvol);
+
+ if (LOWORD(curvol) != HIWORD(curvol))
+ waveOutSetVolume (hw, MAKEDWORD(LOWORD(curvol), LOWORD(curvol)));
+ }
+ return;
}
\ No newline at end of file
Index: sound.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/sound.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- sound.c 24 May 2006 01:14:39 -0000 1.12
+++ sound.c 29 May 2006 00:18:09 -0000 1.13
@@ -186,6 +186,8 @@
LineToConsole("Mix_PlayChannel: %s\n", Mix_GetError());
}
sound_toggle = 1;
+ /* See if volume is adjustable */
+ CheckVolumeSettings ();
/* Default of 8 channels not enough */
Mix_AllocateChannels(16);
}