diff options
Diffstat (limited to 'backends/platform/PalmOS/Src')
| -rw-r--r-- | backends/platform/PalmOS/Src/be_base.cpp | 4 | ||||
| -rw-r--r-- | backends/platform/PalmOS/Src/be_base.h | 2 | ||||
| -rw-r--r-- | backends/platform/PalmOS/Src/be_os5.h | 2 | ||||
| -rw-r--r-- | backends/platform/PalmOS/Src/os5_sound.cpp | 22 | 
4 files changed, 14 insertions, 16 deletions
diff --git a/backends/platform/PalmOS/Src/be_base.cpp b/backends/platform/PalmOS/Src/be_base.cpp index 66dd823df0..b3caee105d 100644 --- a/backends/platform/PalmOS/Src/be_base.cpp +++ b/backends/platform/PalmOS/Src/be_base.cpp @@ -110,9 +110,7 @@ void OSystem_PalmBase::initBackend() {  	// Create and hook up the mixer, if none exists yet (we check for this to  	// allow subclasses to provide their own).  	if (_mixerMgr == 0) { -		_mixerMgr = new Audio::MixerImpl(this); -		setSoundCallback(0, _mixerMgr); -//		setSoundCallback(Audio::Mixer::mixCallback, _mixerMgr); +		setupMixer();  	}  	// Create and hook up the timer manager, if none exists yet (we check for diff --git a/backends/platform/PalmOS/Src/be_base.h b/backends/platform/PalmOS/Src/be_base.h index 30130ebfff..1885114ace 100644 --- a/backends/platform/PalmOS/Src/be_base.h +++ b/backends/platform/PalmOS/Src/be_base.h @@ -117,7 +117,7 @@ private:  	void simulate_mouse(Common::Event &event, Int8 iHoriz, Int8 iVert, Coord *xr, Coord *yr);  	virtual void sound_handler() = 0; -	virtual bool setSoundCallback(SoundProc proc, void *param) = 0; +	virtual bool setupMixer() = 0;  	virtual void clearSoundCallback() = 0;  protected: diff --git a/backends/platform/PalmOS/Src/be_os5.h b/backends/platform/PalmOS/Src/be_os5.h index 692e304007..2040c7faea 100644 --- a/backends/platform/PalmOS/Src/be_os5.h +++ b/backends/platform/PalmOS/Src/be_os5.h @@ -140,7 +140,7 @@ private:  	virtual SndStreamVariableBufferCallback sound_callback();  	virtual void sound_handler(); -	virtual bool setSoundCallback(SoundProc proc, void *param); +	virtual bool setupMixer();  	void clearSoundCallback();  protected: diff --git a/backends/platform/PalmOS/Src/os5_sound.cpp b/backends/platform/PalmOS/Src/os5_sound.cpp index 1898f6ae90..73ab64c0d5 100644 --- a/backends/platform/PalmOS/Src/os5_sound.cpp +++ b/backends/platform/PalmOS/Src/os5_sound.cpp @@ -66,7 +66,6 @@ void OSystem_PalmOS5::sound_handler() {  				_soundEx.dataP = MemPtrNew(_soundEx.size);  			_mixerMgr->mixCallback((byte *)_soundEx.dataP, _soundEx.size); -//			((SoundProc)_sound.proc)(_sound.param, (byte *)_soundEx.dataP, _soundEx.size);  			_soundEx.set = true;  		}  	}// TODO : no Sound API case @@ -76,10 +75,18 @@ SndStreamVariableBufferCallback OSystem_PalmOS5::sound_callback() {  	return sndCallback;  } -bool OSystem_PalmOS5::setSoundCallback(SoundProc proc, void *param) { +bool OSystem_PalmOS5::setupMixer() {  	Err e;  	Boolean success = false; +	uint32 samplesPerSec; +	if (ConfMan.hasKey("output_rate")) +		samplesPerSec = ConfMan.getInt("output_rate"); +	else +		samplesPerSec = SAMPLES_PER_SEC; + +	_mixerMgr = new Audio::MixerImpl(this, samplesPerSec); +  	if (!_sound.active) {  		if (gVars->fmQuality != FM_QUALITY_INI) {  			ConfMan.setBool("FM_medium_quality", (gVars->fmQuality == FM_QUALITY_MED)); @@ -89,8 +96,8 @@ bool OSystem_PalmOS5::setSoundCallback(SoundProc proc, void *param) {  #if defined (COMPILE_OS5)  		CALLBACK_INIT(_soundEx);  #endif -		_sound.proc = proc; -		_sound.param = param; +		_sound.proc = 0; +		_sound.param = _mixerMgr;  		_sound.active = true;	// always true when we call this function, false when sound is off  		_soundEx.handle = 0; @@ -98,12 +105,6 @@ bool OSystem_PalmOS5::setSoundCallback(SoundProc proc, void *param) {  		_soundEx.set = false;  		_soundEx.dataP = NULL;	// set by the handler -		uint32 samplesPerSec; -		if (ConfMan.hasKey("output_rate")) -			samplesPerSec = ConfMan.getInt("output_rate"); -		else -			samplesPerSec = SAMPLES_PER_SEC; -  		// try to create sound stream  		if (OPTIONS_TST(kOptPalmSoundAPI)) {  			e = SndStreamCreateExtended( @@ -133,7 +134,6 @@ bool OSystem_PalmOS5::setSoundCallback(SoundProc proc, void *param) {  	}  	// if not true some scenes (indy3 256,...) may freeze (ESC to skip) -	_mixerMgr->setOutputRate(samplesPerSec);  	_mixerMgr->setReady(true);  	return true;  | 
