[Scummvm-cvs-logs] CVS: scummvm/sky/music adlibmusic.cpp,1.3,1.4 adlibmusic.h,1.3,1.4 gmmusic.cpp,1.4,1.5 gmmusic.h,1.3,1.4 mt32music.cpp,1.5,1.6 mt32music.h,1.3,1.4 musicbase.cpp,1.5,1.6 musicbase.h,1.4,1.5
Robert G?ffringmann
lavosspawn at users.sourceforge.net
Mon Jun 30 18:28:17 CEST 2003
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm script_v5.cpp,1.127,1.128 sound.cpp,1.149,1.150 sound.h,1.37,1.38
- Next message: [Scummvm-cvs-logs] CVS: scummvm/sky control.cpp,1.4,1.5 control.h,1.2,1.3 grid.cpp,1.10,1.11 logic.cpp,1.104,1.105 logic.h,1.28,1.29 screen.cpp,1.32,1.33 screen.h,1.8,1.9 sky.cpp,1.65,1.66
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/sky/music
In directory sc8-pr-cvs1:/tmp/cvs-serv16442a/sky/music
Modified Files:
adlibmusic.cpp adlibmusic.h gmmusic.cpp gmmusic.h
mt32music.cpp mt32music.h musicbase.cpp musicbase.h
Log Message:
fixed race condition when loading different sections
Index: adlibmusic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/adlibmusic.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- adlibmusic.cpp 22 Jun 2003 21:42:59 -0000 1.3
+++ adlibmusic.cpp 1 Jul 2003 01:27:50 -0000 1.4
@@ -27,8 +27,8 @@
((SkyAdlibMusic*)param)->premixerCall(buf, len);
}
-SkyAdlibMusic::SkyAdlibMusic(SoundMixer *pMixer, SkyDisk *pSkyDisk)
- : SkyMusicBase(pSkyDisk) {
+SkyAdlibMusic::SkyAdlibMusic(SoundMixer *pMixer, SkyDisk *pSkyDisk, OSystem *system)
+ : SkyMusicBase(pSkyDisk, system) {
_driverFileBase = 60202;
_mixer = pMixer;
Index: adlibmusic.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/adlibmusic.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- adlibmusic.h 22 Jun 2003 21:42:59 -0000 1.3
+++ adlibmusic.h 1 Jul 2003 01:27:50 -0000 1.4
@@ -31,7 +31,7 @@
class SkyAdlibMusic : public SkyMusicBase {
public:
- SkyAdlibMusic(SoundMixer *pMixer, SkyDisk *pSkyDisk);
+ SkyAdlibMusic(SoundMixer *pMixer, SkyDisk *pSkyDisk, OSystem *system);
~SkyAdlibMusic(void);
virtual void setVolume(uint8 volume);
private:
Index: gmmusic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/gmmusic.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- gmmusic.cpp 22 Jun 2003 21:42:59 -0000 1.4
+++ gmmusic.cpp 1 Jul 2003 01:27:50 -0000 1.5
@@ -26,8 +26,8 @@
((SkyGmMusic*)param)->timerCall();
}
-SkyGmMusic::SkyGmMusic(MidiDriver *pMidiDrv, SkyDisk *pSkyDisk)
- : SkyMusicBase(pSkyDisk) {
+SkyGmMusic::SkyGmMusic(MidiDriver *pMidiDrv, SkyDisk *pSkyDisk, OSystem *system)
+ : SkyMusicBase(pSkyDisk, system) {
_driverFileBase = 60200;
_midiDrv = pMidiDrv;
Index: gmmusic.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/gmmusic.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- gmmusic.h 22 Jun 2003 21:42:59 -0000 1.3
+++ gmmusic.h 1 Jul 2003 01:27:50 -0000 1.4
@@ -30,7 +30,7 @@
class SkyGmMusic : public SkyMusicBase {
public:
- SkyGmMusic(MidiDriver *pMidiDrv, SkyDisk *pSkyDisk);
+ SkyGmMusic(MidiDriver *pMidiDrv, SkyDisk *pSkyDisk, OSystem *system);
~SkyGmMusic(void);
virtual void setVolume(uint8 volume);
private:
Index: mt32music.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/mt32music.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- mt32music.cpp 22 Jun 2003 22:36:28 -0000 1.5
+++ mt32music.cpp 1 Jul 2003 01:27:50 -0000 1.6
@@ -26,8 +26,8 @@
((SkyMT32Music*)param)->timerCall();
}
-SkyMT32Music::SkyMT32Music(MidiDriver *pMidiDrv, SkyDisk *pSkyDisk)
- : SkyMusicBase(pSkyDisk) {
+SkyMT32Music::SkyMT32Music(MidiDriver *pMidiDrv, SkyDisk *pSkyDisk, OSystem *system)
+ : SkyMusicBase(pSkyDisk, system) {
_driverFileBase = 60200;
_midiDrv = pMidiDrv;
Index: mt32music.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/mt32music.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- mt32music.h 22 Jun 2003 21:42:59 -0000 1.3
+++ mt32music.h 1 Jul 2003 01:27:50 -0000 1.4
@@ -30,7 +30,7 @@
class SkyMT32Music : public SkyMusicBase {
public:
- SkyMT32Music(MidiDriver *pMidiDrv, SkyDisk *pSkyDisk);
+ SkyMT32Music(MidiDriver *pMidiDrv, SkyDisk *pSkyDisk, OSystem *system);
~SkyMT32Music(void);
private:
static void passTimerFunc(void *param);
Index: musicbase.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/musicbase.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- musicbase.cpp 22 Jun 2003 22:00:56 -0000 1.5
+++ musicbase.cpp 1 Jul 2003 01:27:50 -0000 1.6
@@ -21,13 +21,15 @@
#include "musicbase.h"
-SkyMusicBase::SkyMusicBase(SkyDisk *pSkyDisk) {
+SkyMusicBase::SkyMusicBase(SkyDisk *pSkyDisk, OSystem *system) {
_musicData = NULL;
_allowedCommands = 0;
_skyDisk = pSkyDisk;
_currentMusic = 0;
_musicVolume = 127;
+ _system = system;
+ _mutex = _system->create_mutex();
}
SkyMusicBase::~SkyMusicBase(void)
@@ -37,6 +39,7 @@
void SkyMusicBase::loadSection(uint8 pSection)
{
+ _system->lock_mutex(_mutex);
if (_currentMusic) stopMusic();
if (_musicData) free(_musicData);
_currentSection = pSection;
@@ -51,6 +54,7 @@
_numberOfChannels = _currentMusic = 0;
setupPointers();
startDriver();
+ _system->unlock_mutex(_mutex);
}
void SkyMusicBase::musicCommand(uint16 command)
@@ -145,6 +149,7 @@
void SkyMusicBase::pollMusic(void)
{
+ _system->lock_mutex(_mutex);
uint8 newTempo;
if (_onNextPoll.doReInit) startDriver();
if (_onNextPoll.doStopMusic) stopMusic();
@@ -160,5 +165,6 @@
updateTempo();
}
}
+ _system->unlock_mutex(_mutex);
_aktTime &= 0xFFFF;
}
Index: musicbase.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/musicbase.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- musicbase.h 27 Jun 2003 02:54:05 -0000 1.4
+++ musicbase.h 1 Jul 2003 01:27:50 -0000 1.5
@@ -43,7 +43,7 @@
class SkyMusicBase {
public:
- SkyMusicBase(SkyDisk *pSkyDisk);
+ SkyMusicBase(SkyDisk *pSkyDisk, OSystem *system);
virtual ~SkyMusicBase(void);
void loadSection(uint8 pSection);
void musicCommand(uint16 command);
@@ -54,6 +54,7 @@
protected:
+ OSystem *_system;
SkyDisk *_skyDisk;
uint8 *_musicData;
uint8 _allowedCommands;
@@ -68,6 +69,7 @@
uint32 _aktTime;
Actions _onNextPoll;
SkyChannelBase *_channels[10];
+ void *_mutex;
virtual void setupPointers(void) = 0;
virtual void setupChannels(uint8 *channelData) = 0;
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm script_v5.cpp,1.127,1.128 sound.cpp,1.149,1.150 sound.h,1.37,1.38
- Next message: [Scummvm-cvs-logs] CVS: scummvm/sky control.cpp,1.4,1.5 control.h,1.2,1.3 grid.cpp,1.10,1.11 logic.cpp,1.104,1.105 logic.h,1.28,1.29 screen.cpp,1.32,1.33 screen.h,1.8,1.9 sky.cpp,1.65,1.66
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list