[Scummvm-cvs-logs] CVS: scummvm/sword1 music.cpp,1.30,1.31 music.h,1.12,1.13
Max Horn
fingolfin at users.sourceforge.net
Sat Nov 27 09:20:38 CET 2004
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm player_mod.cpp,2.17,2.18 player_mod.h,2.14,2.15 player_v2.cpp,2.51,2.52 player_v2.h,2.28,2.29
- Next message: [Scummvm-cvs-logs] CVS: scummvm/sky/music adlibmusic.cpp,1.21,1.22 adlibmusic.h,1.10,1.11
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/sword1
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30903/sword1
Modified Files:
music.cpp music.h
Log Message:
Use modern form of setupPremix
Index: music.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword1/music.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- music.cpp 21 Oct 2004 12:43:48 -0000 1.30
+++ music.cpp 27 Nov 2004 16:18:25 -0000 1.31
@@ -233,7 +233,8 @@
Music::Music(OSystem *system, SoundMixer *pMixer) {
_system = system;
_mixer = pMixer;
- _mixer->setupPremix(passMixerFunc, this);
+ _sampleRate = pMixer->getOutputRate();
+ _mixer->setupPremix(this);
_mutex = _system->createMutex();
_converter[0] = NULL;
_converter[1] = NULL;
@@ -248,12 +249,9 @@
_system->deleteMutex(_mutex);
}
-void Music::passMixerFunc(void *param, int16 *buf, uint len) {
- ((Music*)param)->mixer(buf, len);
-}
-
void Music::mixer(int16 *buf, uint32 len) {
Common::StackLock lock(_mutex);
+ memset(buf, 0, 2 * len * sizeof(int16));
for (int i = 0; i < ARRAYSIZE(_handles); i++)
if (_handles[i].streaming() && _converter[i])
_converter[i]->flow(_handles[i], buf, len, _volumeL, _volumeR);
Index: music.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword1/music.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- music.h 12 Oct 2004 15:50:00 -0000 1.12
+++ music.h 27 Nov 2004 16:18:25 -0000 1.13
@@ -83,7 +83,7 @@
int getRate() const;
};
-class Music {
+class Music : public AudioStream {
public:
Music(OSystem *system, SoundMixer *pMixer);
~Music();
@@ -91,15 +91,28 @@
void fadeDown();
void setVolume(uint8 volL, uint8 volR);
void giveVolume(uint8 *volL, uint8 *volR);
+
+ // AudioStream API
+ int readBuffer(int16 *buffer, const int numSamples) {
+ mixer(buffer, numSamples / 2);
+ return numSamples;
+ }
+ bool isStereo() const { return true; }
+ bool endOfData() const { return false; }
+ int getRate() const { return _sampleRate; }
+
private:
st_volume_t _volumeL, _volumeR;
MusicHandle _handles[2];
RateConverter *_converter[2];
OSystem *_system;
SoundMixer *_mixer;
+ uint32 _sampleRate;
OSystem::MutexRef _mutex;
+
static void passMixerFunc(void *param, int16 *buf, uint len);
void mixer(int16 *buf, uint32 len);
+
static const char _tuneList[TOTAL_TUNES][8]; // in staticres.cpp
};
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm player_mod.cpp,2.17,2.18 player_mod.h,2.14,2.15 player_v2.cpp,2.51,2.52 player_v2.h,2.28,2.29
- Next message: [Scummvm-cvs-logs] CVS: scummvm/sky/music adlibmusic.cpp,1.21,1.22 adlibmusic.h,1.10,1.11
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list