[Scummvm-cvs-logs] CVS: scummvm/bs2/driver d_sound.cpp,1.55,1.56 d_sound.h,1.12,1.13
Torbj?rn Andersson
eriktorbjorn at users.sourceforge.net
Sun Sep 21 07:27:04 CEST 2003
Update of /cvsroot/scummvm/scummvm/bs2/driver
In directory sc8-pr-cvs1:/tmp/cvs-serv7955/driver
Modified Files:
d_sound.cpp d_sound.h
Log Message:
Some cleanup - lots more needed!
Index: d_sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/bs2/driver/d_sound.cpp,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -d -r1.55 -r1.56
--- d_sound.cpp 17 Sep 2003 21:06:14 -0000 1.55
+++ d_sound.cpp 21 Sep 2003 14:26:25 -0000 1.56
@@ -153,12 +153,13 @@
#include "stdafx.h"
#include "driver96.h"
-#include "rdwin.h" // for hwnd.
#include "d_sound.h"
#include "../sword2.h"
#include "common/timer.h"
#include "sound/mixer.h"
+// FIXME: Remove code duplication
+
[...1090 lines suppressed...]
if (!mute) {
- if (!musStreaming[i] && musLooping[i])
- StreamCompMusicFromLock(musFilename[i], musId[i], musLooping[i]);
+ if (!music[i]._streaming && music[i]._looping)
+ StreamCompMusicFromLock(music[i]._fileName, music[i]._id, music[i]._looping);
}
- if (musStreaming[i] && !musFading[i]) {
- if (mute) {
- g_engine->_mixer->setChannelVolume(soundHandleMusic[i], musicVolTable[0]);
- } else {
- g_engine->_mixer->setChannelVolume(soundHandleMusic[i], musicVolTable[volMusic[i]]);
- }
+ if (music[i]._streaming && !music[i]._fading) {
+ byte volume = mute ? 0 : musicVolTable[musicVol];
+
+ g_engine->_mixer->setChannelVolume(music[i]._handle, volume);
}
}
}
Index: d_sound.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/bs2/driver/d_sound.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- d_sound.h 10 Sep 2003 12:43:53 -0000 1.12
+++ d_sound.h 21 Sep 2003 14:26:25 -0000 1.13
@@ -43,6 +43,30 @@
extern void sword2_sound_handler(void *refCon);
+typedef struct {
+ int32 _id;
+ bool _paused;
+ int8 _volume;
+ uint16 _rate;
+ uint32 _flags;
+ uint16 *_buf;
+ int32 _bufSize;
+ PlayingSoundHandle _handle;
+} fxHandle;
+
+typedef struct {
+ uint32 _id;
+ char _fileName[256];
+ bool _streaming;
+ bool _paused;
+ bool _looping;
+ int16 _fading;
+ int32 _filePos;
+ int32 _fileEnd;
+ int16 _lastSample;
+ PlayingSoundHandle _handle;
+} musicHandle;
+
class Sword2Sound {
public:
Sword2Sound(SoundMixer *mixer);
@@ -66,8 +90,7 @@
int32 UnpauseFx(void);
int32 PauseMusic(void);
int32 UnpauseMusic(void);
- int32 StreamMusic(uint8 *filename, int32 looping);
- int32 StreamCompMusic(const char *filename, uint32 musicId, int32 looping);
+ int32 StreamCompMusic(const char *filename, uint32 musicId, bool looping);
int32 MusicTimeRemaining();
int32 ReverseStereo(void);
uint8 GetFxVolume(void);
@@ -76,32 +99,32 @@
uint8 IsMusicMute(void);
uint8 IsFxMute(void);
uint8 IsSpeechMute(void);
- void StopMusic(void);
- void SetFxVolume(uint8 vol);
- void SetSpeechVolume(uint8 vol);
- void SetMusicVolume(uint8 vol);
- void MuteMusic(uint8 mute);
- void MuteFx(uint8 mute);
- void MuteSpeech(uint8 mute);
+ void StopMusic(void);
+ void SetFxVolume(uint8 vol);
+ void SetSpeechVolume(uint8 vol);
+ void SetMusicVolume(uint8 vol);
+ void MuteMusic(uint8 mute);
+ void MuteFx(uint8 mute);
+ void MuteSpeech(uint8 mute);
int32 IsFxOpen(int32 id);
int32 SetFxVolumePan(int32 id, uint8 vol, int8 pan);
int32 SetFxIdVolume(int32 id, uint8 vol);
void UpdateCompSampleStreaming(void);
SoundMixer *_mixer;
private:
- int32 StreamCompMusicFromLock(const char *filename, uint32 musicId, int32 looping);
+ int32 StreamCompMusicFromLock(const char *filename, uint32 musicId, bool looping);
int32 GetFxIndex(int32 id);
int32 DipMusic();
OSystem::MutexRef _mutex;
- int32 fxId[MAXFX];
- uint8 fxiPaused[MAXFX];
- uint8 fxVolume[MAXFX];
- uint16 fxRate[MAXFX];
- uint32 flagsFx[MAXFX];
- uint16 *bufferFx[MAXFX];
- int32 bufferSizeFx[MAXFX];
+ fxHandle fx[MAXFX];
+ musicHandle music[MAXMUS];
+
+ // We used to have two music volumes - one for each channel -
+ // but they were always set to the same value.
+
+ uint8 musicVol;
uint8 soundOn;
uint8 speechStatus;
@@ -113,22 +136,9 @@
uint8 fxMuted;
uint8 compressedMusic;
- int16 musStreaming[MAXMUS];
- int16 musicPaused[MAXMUS];
- int16 musFading[MAXMUS];
- int16 musLooping[MAXMUS];
-
- PlayingSoundHandle soundHandleFx[MAXFX];
- PlayingSoundHandle soundHandleMusic[MAXMUS];
PlayingSoundHandle soundHandleSpeech;
File fpMus;
int bufferSizeMusic;
- char musFilename[MAXMUS][256];
- int32 musFilePos[MAXMUS];
- int32 musEnd[MAXMUS];
- int16 musLastSample[MAXMUS];
- uint32 musId[MAXMUS];
- uint32 volMusic[2];
uint8 musicMuted;
};
More information about the Scummvm-git-logs
mailing list