aboutsummaryrefslogtreecommitdiff
path: root/scumm/player_mod.h
diff options
context:
space:
mode:
authorMax Horn2004-11-27 16:12:11 +0000
committerMax Horn2004-11-27 16:12:11 +0000
commit8ff15ae72cb4adb6b5ffc549eb7a00422308f014 (patch)
treef57566eeb03371e3e95c509d7d835371392a450f /scumm/player_mod.h
parentba74a8e7f657cf795046a5cf6a7ead701fd4194e (diff)
downloadscummvm-rg350-8ff15ae72cb4adb6b5ffc549eb7a00422308f014.tar.gz
scummvm-rg350-8ff15ae72cb4adb6b5ffc549eb7a00422308f014.tar.bz2
scummvm-rg350-8ff15ae72cb4adb6b5ffc549eb7a00422308f014.zip
Use modern form of setupPremix
svn-id: r15915
Diffstat (limited to 'scumm/player_mod.h')
-rw-r--r--scumm/player_mod.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/scumm/player_mod.h b/scumm/player_mod.h
index c4bda60665..a64f15d7c0 100644
--- a/scumm/player_mod.h
+++ b/scumm/player_mod.h
@@ -24,6 +24,7 @@
#define PLAYER_MOD_H
#include "scumm/scumm.h"
+#include "sound/audiostream.h"
class AudioStream;
class RateConverter;
@@ -33,7 +34,7 @@ namespace Scumm {
/**
* Generic Amiga MOD mixer - provides a 60Hz 'update' routine.
*/
-class Player_MOD {
+class Player_MOD : public AudioStream {
public:
Player_MOD(ScummEngine *scumm);
virtual ~Player_MOD();
@@ -50,6 +51,16 @@ public:
virtual void setUpdateProc(ModUpdateProc *proc, void *param, int freq);
virtual void clearUpdateProc();
+
+ int readBuffer(int16 *buffer, const int numSamples) {
+ do_mix(buffer, numSamples / 2);
+ return numSamples;
+ }
+ bool isStereo() const { return true; }
+ bool endOfData() const { return false; }
+
+ int getRate() const { return _samplerate; }
+
private:
enum {
MOD_MAXCHANS = 24
@@ -74,7 +85,6 @@ private:
uint8 _maxvol;
- static void premix_proc(void *param, int16 *buf, uint len);
virtual void do_mix(int16 *buf, uint len);
ModUpdateProc *_playproc;