[Scummvm-cvs-logs] CVS: scummvm/sky/music adlibmusic.cpp,1.21,1.22 adlibmusic.h,1.10,1.11

Max Horn fingolfin at users.sourceforge.net
Sat Nov 27 09:20:39 CET 2004


Update of /cvsroot/scummvm/scummvm/sky/music
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30903/sky/music

Modified Files:
	adlibmusic.cpp adlibmusic.h 
Log Message:
Use modern form of setupPremix

Index: adlibmusic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/adlibmusic.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- adlibmusic.cpp	17 Oct 2004 19:40:05 -0000	1.21
+++ adlibmusic.cpp	27 Nov 2004 16:18:25 -0000	1.22
@@ -26,11 +26,6 @@
 
 namespace Sky {
 
-void AdlibMusic::passMixerFunc(void *param, int16 *buf, uint len) {
-
-	((AdlibMusic*)param)->premixerCall(buf, len);
-}
-
 AdlibMusic::AdlibMusic(SoundMixer *pMixer, Disk *pDisk, OSystem *system)
 	: MusicBase(pDisk, system) {
 	
@@ -40,7 +35,7 @@
 	
 	_opl = makeAdlibOPL(_sampleRate);
 
-	_mixer->setupPremix(passMixerFunc, this);
+	_mixer->setupPremix(this);
 }
 
 AdlibMusic::~AdlibMusic(void) {

Index: adlibmusic.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/adlibmusic.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- adlibmusic.h	6 Jan 2004 12:45:33 -0000	1.10
+++ adlibmusic.h	27 Nov 2004 16:18:25 -0000	1.11
@@ -23,17 +23,28 @@
 #define ADLIBMUSIC_H
 
 #include "sky/music/musicbase.h"
+#include "sound/audiostream.h"
 #include "sound/fmopl.h"
 
 class SoundMixer;
 
 namespace Sky {
 
-class AdlibMusic : public MusicBase {
+class AdlibMusic : public AudioStream, public MusicBase {
 public:
 	AdlibMusic(SoundMixer *pMixer, Disk *pDisk, OSystem *system);
 	~AdlibMusic(void);
 	virtual void setVolume(uint8 volume);
+
+	// AudioStream API
+	int readBuffer(int16 *buffer, const int numSamples) {
+		premixerCall(buffer, numSamples / 2);
+		return numSamples;
+	}
+	bool isStereo() const { return true; }
+	bool endOfData() const { return false; }
+	int getRate() const { return _sampleRate; }
+
 private:
 	FM_OPL *_opl;
 	SoundMixer *_mixer;
@@ -44,7 +55,6 @@
 	virtual void startDriver(void);
 
 	void premixerCall(int16 *buf, uint len);
-	static void passMixerFunc(void *param, int16 *buf, uint len);
 };
 
 } // End of namespace Sky





More information about the Scummvm-git-logs mailing list