[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse.cpp,1.100,1.101 dimuse.h,1.57,1.58 dimuse_track.cpp,1.24,1.25

Pawel Kolodziejski aquadran at users.sourceforge.net
Sat Jun 19 09:01:13 CEST 2004


Update of /cvsroot/scummvm/scummvm/scumm/imuse_digi
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21345/scummvm/scumm/imuse_digi

Modified Files:
	dimuse.cpp dimuse.h dimuse_track.cpp 
Log Message:
chnaged fps in imuse digi to dynamic param

Index: dimuse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.cpp,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -d -r1.100 -r1.101
--- dimuse.cpp	1 Jun 2004 19:32:36 -0000	1.100
+++ dimuse.cpp	19 Jun 2004 16:00:11 -0000	1.101
@@ -41,7 +41,7 @@
 	imuseDigital->callback();
 }
 
-IMuseDigital::IMuseDigital(ScummEngine *scumm)
+IMuseDigital::IMuseDigital(ScummEngine *scumm, int fps)
 	: _vm(scumm) {
 	_mutex = g_system->createMutex();
 	_pause = false;
@@ -49,12 +49,13 @@
 	_volVoice = 0;
 	_volSfx = 0;
 	_volMusic = 0;
+	_callbackFps = fps;
 	resetState();
 	for (int l = 0; l < MAX_DIGITAL_TRACKS + MAX_DIGITAL_FADETRACKS; l++) {
 		_track[l] = new Track;
 		_track[l]->used = false;
 	}
-	_vm->_timer->installTimerProc(timer_handler, 1000000 / 25, this);
+	_vm->_timer->installTimerProc(timer_handler, 1000000 / _callbackFps, this);
 }
 
 IMuseDigital::~IMuseDigital() {
@@ -202,8 +203,8 @@
 			track->mixerVol = vol;
 			track->mixerPan = pan;
 
-			if (_vm->_mixer->isReady()) {
-				if (track->stream2) {
+			if (track->stream2) {
+				if (_vm->_mixer->isReady()) {
 					if (!track->started) {
 						track->started = true;
 						_vm->_mixer->playInputStream(&track->handle, track->stream2, false, vol, pan, -1, false);
@@ -228,7 +229,7 @@
 				int bits = _sound->getBits(track->soundHandle);
 				int channels = _sound->getChannels(track->soundHandle);
 
-				int32 mixer_size = track->iteration / 25;
+				int32 mixer_size = track->iteration / _callbackFps;
 
 				if (track->stream->endOfData()) {
 					mixer_size *= 2;

Index: dimuse.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.h,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -d -r1.57 -r1.58
--- dimuse.h	26 May 2004 17:03:31 -0000	1.57
+++ dimuse.h	19 Jun 2004 16:00:11 -0000	1.58
@@ -43,6 +43,8 @@
 class IMuseDigital : public MusicEngine {
 private:
 
+	int _callbackFps;
+
 	struct Track {
 		int8 pan;			// pan
 		int32 vol;			// volume
@@ -126,7 +128,7 @@
 	void playDigMusic(const char *songName, const imuseDigTable *table, int atribPos, bool sequence);
 
 public:
-	IMuseDigital(ScummEngine *scumm);
+	IMuseDigital(ScummEngine *scumm, int fps);
 	virtual ~IMuseDigital();
 
 	void startVoice(int soundId, AudioStream *input);

Index: dimuse_track.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_track.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- dimuse_track.cpp	1 Jun 2004 19:32:36 -0000	1.24
+++ dimuse_track.cpp	19 Jun 2004 16:00:11 -0000	1.25
@@ -196,6 +196,7 @@
 
 void IMuseDigital::setVolume(int soundId, int volume) {
 	debug(5, "IMuseDigital::setVolume(%d, %d)", soundId, volume);
+
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 		Track *track = _track[l];
 		if ((track->soundId == soundId) && track->used && !track->toBeRemoved) {
@@ -206,6 +207,7 @@
 
 void IMuseDigital::setPan(int soundId, int pan) {
 	debug(5, "IMuseDigital::setPan(%d, %d)", soundId, pan);
+
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 		Track *track = _track[l];
 		if ((track->soundId == soundId) && track->used && !track->toBeRemoved) {
@@ -231,14 +233,14 @@
 
 void IMuseDigital::setFade(int soundId, int destVolume, int delay60HzTicks) {
 	Common::StackLock lock(_mutex, "IMuseDigital::setFade()");
-
 	debug(5, "IMuseDigital::setFade(%d, %d, %d)", soundId, destVolume, delay60HzTicks);
+
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 		Track *track = _track[l];
 		if ((track->soundId == soundId) && track->used && !track->toBeRemoved) {
 			track->volFadeDelay = delay60HzTicks;
 			track->volFadeDest = destVolume * 1000;
-			track->volFadeStep = (track->volFadeDest - track->vol) * 60 * 40 / (1000 * delay60HzTicks);
+			track->volFadeStep = (track->volFadeDest - track->vol) * 60 * (1000 / _callbackFps) / (1000 * delay60HzTicks);
 			track->volFadeUsed = true;
 		}
 	}
@@ -302,7 +304,7 @@
 
 	fadeTrack->volFadeDelay = fadeDelay;
 	fadeTrack->volFadeDest = 0;
-	fadeTrack->volFadeStep = (fadeTrack->volFadeDest - fadeTrack->vol) * 60 * 40 / (1000 * fadeDelay);
+	fadeTrack->volFadeStep = (fadeTrack->volFadeDest - fadeTrack->vol) * 60 * (1000 / _callbackFps) / (1000 * fadeDelay);
 	fadeTrack->volFadeUsed = true;
 
 	// setup 1 second stream wrapped buffer





More information about the Scummvm-git-logs mailing list