[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