[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