[Scummvm-cvs-logs] CVS: scummvm/sky/music adlibchannel.cpp,1.2,1.3 adlibchannel.h,1.2,1.3 gmchannel.cpp,1.3,1.4 gmchannel.h,1.1,1.2 musicbase.cpp,1.6,1.7 musicbase.h,1.6,1.7

Robert G?ffringmann lavosspawn at users.sourceforge.net
Mon Jul 7 09:41:08 CEST 2003


Update of /cvsroot/scummvm/scummvm/sky/music
In directory sc8-pr-cvs1:/tmp/cvs-serv26799/sky/music

Modified Files:
	adlibchannel.cpp adlibchannel.h gmchannel.cpp gmchannel.h 
	musicbase.cpp musicbase.h 
Log Message:
applied patch #766751 (BASS: Waiting for floppy intro music to finish) and fixed music bug (jukebox at St. James didn't stop playing)

Index: adlibchannel.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/adlibchannel.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- adlibchannel.cpp	1 Jun 2003 21:21:09 -0000	1.2
+++ adlibchannel.cpp	7 Jul 2003 16:40:27 -0000	1.3
@@ -61,6 +61,11 @@
 	_musicVolume = 0x100;
 }
 
+bool SkyAdlibChannel::isActive(void) {
+
+	return _channelData.channelActive != 0;
+}
+
 void SkyAdlibChannel::updateVolume(uint16 pVolume) {
 
 	_musicVolume = pVolume;

Index: adlibchannel.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/adlibchannel.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- adlibchannel.h	1 Jun 2003 21:21:10 -0000	1.2
+++ adlibchannel.h	7 Jul 2003 16:40:27 -0000	1.3
@@ -64,6 +64,7 @@
 	virtual void stopNote(void);
 	virtual uint8 process(uint16 aktTime);
 	virtual void updateVolume(uint16 pVolume);
+	virtual bool isActive(void);
 private:
 	uint8 *_musicData;
 	uint16 _musicVolume;

Index: gmchannel.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/gmchannel.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- gmchannel.cpp	2 Jul 2003 06:43:24 -0000	1.3
+++ gmchannel.cpp	7 Jul 2003 16:40:27 -0000	1.4
@@ -63,6 +63,11 @@
 	_musicVolume = 0x100;
 }
 
+bool SkyGmChannel::isActive(void) {
+
+	return _channelData.channelActive != 0;
+}
+
 void SkyGmChannel::updateVolume(uint16 pVolume) {
 
 	_musicVolume = pVolume;

Index: gmchannel.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/gmchannel.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- gmchannel.h	28 May 2003 23:31:43 -0000	1.1
+++ gmchannel.h	7 Jul 2003 16:40:27 -0000	1.2
@@ -42,6 +42,7 @@
 	virtual void stopNote(void);
 	virtual uint8 process(uint16 aktTime);
 	virtual void updateVolume(uint16 pVolume);
+	virtual bool isActive(void);
 private:
 	byte *_mt32_to_gm;
 	static uint8 _veloTab[128];

Index: musicbase.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/musicbase.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- musicbase.cpp	1 Jul 2003 01:27:50 -0000	1.6
+++ musicbase.cpp	7 Jul 2003 16:40:27 -0000	1.7
@@ -57,6 +57,14 @@
 	_system->unlock_mutex(_mutex);
 }
 
+bool SkyMusicBase::musicIsPlaying(void)
+{
+	for (uint8 cnt = 0; cnt < _numberOfChannels; cnt++)
+		if (_channels[cnt]->isActive())
+			return true;
+	return false;
+}
+
 void SkyMusicBase::musicCommand(uint16 command)
 {
 	if (_musicData == NULL) {
@@ -128,10 +136,10 @@
 		error("Music %d requested but doesn't exist in file.\n", _onNextPoll.musicToProcess);
 		return;
 	}
-	if (_currentMusic != 0) stopMusic();
+	if (_currentMusic != 0)
+		stopMusic();
 
 	_currentMusic = _onNextPoll.musicToProcess;
-	_onNextPoll.musicToProcess = 0;
 
 	if (_currentMusic != 0) {
 		musicPos = (_musicData[_musicDataLoc+2]<<8) | _musicData[_musicDataLoc+1];
@@ -153,8 +161,8 @@
 	uint8 newTempo;
 	if (_onNextPoll.doReInit) startDriver();
 	if (_onNextPoll.doStopMusic) stopMusic();
-	if (_onNextPoll.musicToProcess == _currentMusic) _onNextPoll.musicToProcess = 0;
-	if (_onNextPoll.musicToProcess)	loadNewMusic();
+	if (_onNextPoll.musicToProcess != _currentMusic)
+		loadNewMusic();
 
 	_aktTime += _tempo;
 

Index: musicbase.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/musicbase.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- musicbase.h	5 Jul 2003 15:19:11 -0000	1.6
+++ musicbase.h	7 Jul 2003 16:40:27 -0000	1.7
@@ -38,6 +38,7 @@
 	virtual void stopNote(void) = 0;
 	virtual uint8 process(uint16 aktTime) = 0;
 	virtual void updateVolume(uint16 pVolume) = 0;
+	virtual bool isActive(void) = 0;
 private:
 };
 
@@ -48,6 +49,7 @@
 	void loadSection(uint8 pSection);
 	void musicCommand(uint16 command);
 	void startMusic(uint16 param) { _onNextPoll.musicToProcess = param & 0xF; }; // 4
+	bool musicIsPlaying(void);
 	virtual void setVolume(uint8 volume) = 0;
 	uint8 giveVolume(void) { return (uint8)_musicVolume; };
 	uint8 giveCurrentMusic(void) { return _currentMusic; };





More information about the Scummvm-git-logs mailing list