[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse.cpp,1.83,1.84 dimuse.h,1.51,1.52 dimuse_track.cpp,1.14,1.15
Pawel Kolodziejski
aquadran at users.sourceforge.net
Sun May 2 05:22:01 CEST 2004
Update of /cvsroot/scummvm/scummvm/scumm/imuse_digi
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27388
Modified Files:
dimuse.cpp dimuse.h dimuse_track.cpp
Log Message:
added rest of save/load code
Index: dimuse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.cpp,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -d -r1.83 -r1.84
--- dimuse.cpp 2 May 2004 11:53:10 -0000 1.83
+++ dimuse.cpp 2 May 2004 12:20:55 -0000 1.84
@@ -102,8 +102,10 @@
MKLINE(Track, volFadeDelay, sleInt32, VER(31)),
MKLINE(Track, volFadeUsed, sleByte, VER(31)),
MKLINE(Track, soundId, sleInt32, VER(31)),
+ MKARRAY(Track, soundName, sleByte, 15, VER(31)),
MKLINE(Track, used, sleByte, VER(31)),
MKLINE(Track, toBeRemoved, sleByte, VER(31)),
+ MKLINE(Track, souStream, sleByte, VER(31)),
MKLINE(Track, started, sleByte, VER(31)),
MKLINE(Track, priority, sleInt32, VER(31)),
MKLINE(Track, regionOffset, sleInt32, VER(31)),
@@ -112,6 +114,7 @@
MKLINE(Track, curRegion, sleInt32, VER(31)),
MKLINE(Track, curHookId, sleInt32, VER(31)),
MKLINE(Track, volGroupId, sleInt32, VER(31)),
+ MKLINE(Track, soundType, sleInt32, VER(31)),
MKLINE(Track, iteration, sleInt32, VER(31)),
MKLINE(Track, mod, sleInt32, VER(31)),
MKLINE(Track, mixerFlags, sleInt32, VER(31)),
@@ -124,8 +127,25 @@
ser->_ref_me = this;
ser->saveLoadEntries(this, mainEntries);
- for (i = 0; i < MAX_DIGITAL_TRACKS + MAX_DIGITAL_FADETRACKS; i++)
+ for (i = 0; i < MAX_DIGITAL_TRACKS + MAX_DIGITAL_FADETRACKS; i++) {
ser->saveLoadEntries(_track[i], trackEntries);
+ if (!ser->isSaving()) {
+ if (_track[i]->souStream) {
+ _track[i]->stream2 = NULL;
+ _track[i]->stream = NULL;
+ _track[i]->used = false;
+ } else {
+ _track[i]->soundHandle = _sound->openSound(_track[i]->soundId,
+ _track[i]->soundName, _track[i]->soundType,
+ _track[i]->volGroupId);
+ int32 streamBufferSize = _track[i]->iteration;
+ int freq = _sound->getFreq(_track[i]->soundHandle);
+ _track[i]->stream2 = NULL;
+ _track[i]->stream = makeAppendableAudioStream(freq, _track[i]->mixerFlags, streamBufferSize);
+ _vm->_mixer->playInputStream(&_track[i]->handle, _track[i]->stream, false, _track[i]->vol / 1000, _track[i]->pan, -1);
+ }
+ }
+ }
}
void IMuseDigital::callback() {
Index: dimuse.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.h,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- dimuse.h 2 May 2004 11:49:08 -0000 1.51
+++ dimuse.h 2 May 2004 12:20:55 -0000 1.52
@@ -52,9 +52,11 @@
bool volFadeUsed; //
int soundId;
+ char soundName[15];
bool used;
bool toBeRemoved;
bool started;
+ bool souStream;
int priority;
int32 regionOffset;
int32 trackOffset;
@@ -62,6 +64,7 @@
int curRegion;
int curHookId;
int volGroupId;
+ int soundType;
int iteration;
int mod;
int32 mixerFlags;
Index: dimuse_track.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_track.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- dimuse_track.cpp 28 Apr 2004 05:39:53 -0000 1.14
+++ dimuse_track.cpp 2 May 2004 12:20:55 -0000 1.15
@@ -107,13 +107,18 @@
_track[l]->mixerPan = 0;
_track[l]->mixerVol = volume;
_track[l]->toBeRemoved = false;
+ _track[l]->soundType = soundType;
int bits = 0, freq = 0, channels = 0;
if (input) {
_track[l]->iteration = 0;
+ _track[l]->souStream = true;
+ _track[l]->soundName[0] = 0;
// Do nothing here, we already have an audio stream
} else {
+ _track[l]->souStream = false;
+ strcpy(_track[l]->soundName, soundName);
_track[l]->soundHandle = _sound->openSound(soundId, soundName, soundType, volGroupId);
if (_track[l]->soundHandle == NULL)
@@ -150,7 +155,7 @@
}
if (input) {
- _track[l]->stream2 = input;
+ _track[l]->stream2 = NULL;
_track[l]->stream = NULL;
_track[l]->started = false;
} else {
More information about the Scummvm-git-logs
mailing list