[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