diff options
author | Max Horn | 2004-11-27 16:12:11 +0000 |
---|---|---|
committer | Max Horn | 2004-11-27 16:12:11 +0000 |
commit | 8ff15ae72cb4adb6b5ffc549eb7a00422308f014 (patch) | |
tree | f57566eeb03371e3e95c509d7d835371392a450f /scumm/player_mod.h | |
parent | ba74a8e7f657cf795046a5cf6a7ead701fd4194e (diff) | |
download | scummvm-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.h | 14 |
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; |