[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse.cpp,1.111,1.112 dimuse.h,1.63,1.64 dimuse_track.cpp,1.40,1.41
Max Horn
fingolfin at users.sourceforge.net
Sun Dec 26 17:33:07 CET 2004
Update of /cvsroot/scummvm/scummvm/scumm/imuse_digi
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28273/scumm/imuse_digi
Modified Files:
dimuse.cpp dimuse.h dimuse_track.cpp
Log Message:
Add 'speech' sound type to mixer; make use of that in iMuse Digital
Index: dimuse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.cpp,v
retrieving revision 1.111
retrieving revision 1.112
diff -u -d -r1.111 -r1.112
--- dimuse.cpp 27 Dec 2004 00:26:57 -0000 1.111
+++ dimuse.cpp 27 Dec 2004 01:32:39 -0000 1.112
@@ -46,9 +46,6 @@
_mutex = g_system->createMutex();
_pause = false;
_sound = new ImuseDigiSndMgr(_vm);
- _volVoice = 0;
- _volSfx = 0;
- _volMusic = 0;
_callbackFps = fps;
resetState();
for (int l = 0; l < MAX_DIGITAL_TRACKS + MAX_DIGITAL_FADETRACKS; l++) {
@@ -81,9 +78,9 @@
Common::StackLock lock(_mutex, "IMuseDigital::saveOrLoad()");
const SaveLoadEntry mainEntries[] = {
- MKLINE(IMuseDigital, _volVoice, sleInt32, VER(31)),
- MKLINE(IMuseDigital, _volSfx, sleInt32, VER(31)),
- MKLINE(IMuseDigital, _volMusic, sleInt32, VER(31)),
+ MK_OBSOLETE(IMuseDigital, _volVoice, sleInt32, VER(31), VER(42)),
+ MK_OBSOLETE(IMuseDigital, _volSfx, sleInt32, VER(31), VER(42)),
+ MK_OBSOLETE(IMuseDigital, _volMusic, sleInt32, VER(31), VER(42)),
MKLINE(IMuseDigital, _curMusicState, sleInt32, VER(31)),
MKLINE(IMuseDigital, _curMusicSeq, sleInt32, VER(31)),
MKLINE(IMuseDigital, _curMusicCue, sleInt32, VER(31)),
@@ -116,8 +113,8 @@
MKLINE(Track, iteration, sleInt32, VER(31)),
MKLINE(Track, mod, sleInt32, VER(31)),
MKLINE(Track, mixerFlags, sleInt32, VER(31)),
- MKLINE(Track, mixerVol, sleInt32, VER(31)),
- MKLINE(Track, mixerPan, sleInt32, VER(31)),
+ MK_OBSOLETE(Track, mixerVol, sleInt32, VER(31), VER(42)),
+ MK_OBSOLETE(Track, mixerPan, sleInt32, VER(31), VER(42)),
MKEND()
};
@@ -149,7 +146,19 @@
int freq = _sound->getFreq(track->soundHandle);
track->stream2 = NULL;
track->stream = makeAppendableAudioStream(freq, track->mixerFlags, streamBufferSize);
- _vm->_mixer->playInputStream(SoundMixer::kSFXAudioDataType, &track->handle, track->stream, -1, track->mixerVol, track->mixerPan, false);
+
+ const int pan = (track->pan != 64) ? 2 * track->pan - 127 : 0;
+ const int vol = track->vol / 1000;
+ SoundMixer::SoundType type = SoundMixer::kPlainAudioDataType;
+
+ if (track->volGroupId == 1)
+ type = SoundMixer::kSpeechAudioDataType;
+ if (track->volGroupId == 2)
+ type = SoundMixer::kSFXAudioDataType;
+ if (track->volGroupId == 3)
+ type = SoundMixer::kMusicAudioDataType;
+
+ _vm->_mixer->playInputStream(type, &track->handle, track->stream, -1, vol, pan, false);
}
}
}
@@ -192,18 +201,16 @@
debug(5, "Fade: sound(%d), Vol(%d)", track->soundId, track->vol / 1000);
}
- int pan = (track->pan != 64) ? 2 * track->pan - 127 : 0;
- int vol = track->vol / 1000;
+ const int pan = (track->pan != 64) ? 2 * track->pan - 127 : 0;
+ const int vol = track->vol / 1000;
+ SoundMixer::SoundType type = SoundMixer::kPlainAudioDataType;
if (track->volGroupId == 1)
- vol = (vol * _volVoice) / 128;
+ type = SoundMixer::kSpeechAudioDataType;
if (track->volGroupId == 2)
- vol = (vol * _volSfx) / 128;
+ type = SoundMixer::kSFXAudioDataType;
if (track->volGroupId == 3)
- vol = (vol * _volMusic) / 128;
-
- track->mixerVol = vol;
- track->mixerPan = pan;
+ type = SoundMixer::kMusicAudioDataType;
if (track->stream) {
byte *data = NULL;
@@ -289,7 +296,7 @@
if (_vm->_mixer->isReady()) {
if (!track->started) {
track->started = true;
- _vm->_mixer->playInputStream(SoundMixer::kSFXAudioDataType, &track->handle, track->stream2, -1, vol, pan, false);
+ _vm->_mixer->playInputStream(type, &track->handle, track->stream2, -1, vol, pan, false);
} else {
_vm->_mixer->setChannelVolume(track->handle, vol);
_vm->_mixer->setChannelBalance(track->handle, pan);
Index: dimuse.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.h,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -d -r1.63 -r1.64
--- dimuse.h 28 Nov 2004 21:24:02 -0000 1.63
+++ dimuse.h 27 Dec 2004 01:32:39 -0000 1.64
@@ -72,8 +72,6 @@
int32 iteration;
int32 mod;
int32 mixerFlags;
- int32 mixerVol;
- int32 mixerPan;
ImuseDigiSndMgr::soundStruct *soundHandle;
PlayingSoundHandle handle;
@@ -89,10 +87,6 @@
ScummEngine *_vm;
ImuseDigiSndMgr *_sound;
- int32 _volVoice;
- int32 _volSfx;
- int32 _volMusic;
-
bool _pause;
int32 _attributes[188];
@@ -143,13 +137,6 @@
void saveOrLoad(Serializer *ser);
void resetState();
- void setGroupVoiceVolume(int volume) { _volVoice = volume; }
- void setGroupSfxVolume(int volume) { _volSfx = volume; }
- void setGroupMusicVolume(int volume) { _volMusic = volume; }
- int getGroupVoiceVolume() { return _volVoice; }
- int getGroupSfxVolume() { return _volSfx; }
- int getGroupMusicVolume() { return _volMusic; }
-
void setPriority(int soundId, int priority);
void setVolume(int soundId, int volume);
void setPan(int soundId, int pan);
Index: dimuse_track.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_track.cpp,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -d -r1.40 -r1.41
--- dimuse_track.cpp 27 Dec 2004 00:26:57 -0000 1.40
+++ dimuse_track.cpp 27 Dec 2004 01:32:40 -0000 1.41
@@ -101,8 +101,6 @@
track->regionOffset = 0;
track->mod = 0;
track->mixerFlags = 0;
- track->mixerPan = 0;
- track->mixerVol = volume;
track->toBeRemoved = false;
track->readyToRemove = false;
track->soundType = soundType;
@@ -156,24 +154,22 @@
track->stream = NULL;
track->started = false;
} else {
- int pan = (track->pan != 64) ? 2 * track->pan - 127 : 0;
- int vol = track->vol / 1000;
+ const int pan = (track->pan != 64) ? 2 * track->pan - 127 : 0;
+ const int vol = track->vol / 1000;
+ SoundMixer::SoundType type = SoundMixer::kPlainAudioDataType;
if (track->volGroupId == 1)
- vol = (vol * _volVoice) / 128;
+ type = SoundMixer::kSpeechAudioDataType;
if (track->volGroupId == 2)
- vol = (vol * _volSfx) / 128;
+ type = SoundMixer::kSFXAudioDataType;
if (track->volGroupId == 3)
- vol = (vol * _volMusic) / 128;
-
- track->mixerPan = pan;
- track->mixerVol = vol;
+ type = SoundMixer::kMusicAudioDataType;
// setup 1 second stream wrapped buffer
int32 streamBufferSize = track->iteration;
track->stream2 = NULL;
track->stream = makeAppendableAudioStream(freq, track->mixerFlags, streamBufferSize);
- _vm->_mixer->playInputStream(SoundMixer::kSFXAudioDataType, &track->handle, track->stream, -1, track->mixerVol, track->mixerPan, false);
+ _vm->_mixer->playInputStream(type, &track->handle, track->stream, -1, vol, pan, false);
track->started = true;
}
@@ -283,8 +279,6 @@
fadeTrack->curHookId = track->curHookId;
fadeTrack->iteration = track->iteration;
fadeTrack->mixerFlags = track->mixerFlags;
- fadeTrack->mixerVol = track->mixerVol;
- fadeTrack->mixerPan = track->mixerPan;
fadeTrack->mod = track->mod;
fadeTrack->toBeRemoved = track->toBeRemoved;
fadeTrack->readyToRemove = track->readyToRemove;
More information about the Scummvm-git-logs
mailing list