[Scummvm-cvs-logs] CVS: scummvm/sword2/driver d_sound.cpp,1.102,1.103
Torbj?rn Andersson
eriktorbjorn at users.sourceforge.net
Wed Jan 14 10:34:00 CET 2004
Update of /cvsroot/scummvm/scummvm/sword2/driver
In directory sc8-pr-cvs1:/tmp/cvs-serv2749
Modified Files:
d_sound.cpp
Log Message:
I accidentally introduced a bug when I changed the fading that would cause
fading-up music to distort and eventually deteriorate into white noise.
This was because I allowed _fade to be set on channels that weren't playing
and because I only checked _fade for equality when deciding when to stop
the fading. It should work much better now, I think.
Index: d_sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword2/driver/d_sound.cpp,v
retrieving revision 1.102
retrieving revision 1.103
diff -u -d -r1.102 -r1.103
--- d_sound.cpp 14 Jan 2004 08:06:56 -0000 1.102
+++ d_sound.cpp 14 Jan 2004 18:33:30 -0000 1.103
@@ -131,17 +131,21 @@
};
void MusicHandle::fadeDown(void) {
- if (_fading < 0)
- _fading = -_fading;
- else if (_fading == 0)
- _fading = FADE_SAMPLES;
+ if (_streaming) {
+ if (_fading < 0)
+ _fading = -_fading;
+ else if (_fading == 0)
+ _fading = FADE_SAMPLES;
+ }
}
void MusicHandle::fadeUp(void) {
- if (_fading > 0)
- _fading = -_fading;
- else if (_fading == 0)
- _fading = -1;
+ if (_streaming) {
+ if (_fading > 0)
+ _fading = -_fading;
+ else if (_fading == 0)
+ _fading = -1;
+ }
}
int32 MusicHandle::play(const char *filename, uint32 musicId, bool looping) {
@@ -223,7 +227,7 @@
} else if (_fading < 0) {
_fading--;
out = -(out * _fading) / FADE_SAMPLES;
- if (_fading == -FADE_SAMPLES)
+ if (_fading <= -FADE_SAMPLES)
_fading = 0;
}
}
@@ -353,10 +357,8 @@
// Fade out any music that happens to be playing
- for (int i = 0; i < MAXMUS; i++) {
- if (_music[i]._streaming)
- _music[i].fadeDown();
- }
+ for (int i = 0; i < MAXMUS; i++)
+ _music[i].fadeDown();
if (!_music[2]._streaming)
return;
More information about the Scummvm-git-logs
mailing list