[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