From d1bfa2c4ec38b674feee3750e9f0cfa58730b3b9 Mon Sep 17 00:00:00 2001 From: Cameron Cawley Date: Sat, 30 Nov 2019 16:03:46 +0000 Subject: [PATCH] BACKENDS: Modify the null mixer manager to not require SDL --- .../nullsdl-mixer.cpp => null/null-mixer.cpp} | 26 +++++++------------ .../nullsdl-mixer.h => null/null-mixer.h} | 18 +++++-------- backends/module.mk | 2 +- gui/EventRecorder.cpp | 2 +- gui/EventRecorder.h | 4 +-- 5 files changed, 19 insertions(+), 33 deletions(-) rename backends/mixer/{nullmixer/nullsdl-mixer.cpp => null/null-mixer.cpp} (73%) rename backends/mixer/{nullmixer/nullsdl-mixer.h => null/null-mixer.h} (81%) diff --git a/backends/mixer/nullmixer/nullsdl-mixer.cpp b/backends/mixer/null/null-mixer.cpp similarity index 73% rename from backends/mixer/nullmixer/nullsdl-mixer.cpp rename to backends/mixer/null/null-mixer.cpp index 8f112e1fa06..a81ba72a51a 100644 --- a/backends/mixer/nullmixer/nullsdl-mixer.cpp +++ b/backends/mixer/null/null-mixer.cpp @@ -20,10 +20,10 @@ * */ -#include "backends/mixer/nullmixer/nullsdl-mixer.h" +#include "backends/mixer/null/null-mixer.h" #include "common/savefile.h" -NullSdlMixerManager::NullSdlMixerManager() : SdlMixerManager() { +NullMixerManager::NullMixerManager() : MixerManager() { _outputRate = 22050; _callsCounter = 0; _callbackPeriod = 10; @@ -33,21 +33,21 @@ NullSdlMixerManager::NullSdlMixerManager() : SdlMixerManager() { _samplesBuf = new uint8[_samples * 4]; } -NullSdlMixerManager::~NullSdlMixerManager() { +NullMixerManager::~NullMixerManager() { delete _samplesBuf; } -void NullSdlMixerManager::init() { +void NullMixerManager::init() { _mixer = new Audio::MixerImpl(_outputRate); assert(_mixer); _mixer->setReady(true); } -void NullSdlMixerManager::suspendAudio() { +void NullMixerManager::suspendAudio() { _audioSuspended = true; } -int NullSdlMixerManager::resumeAudio() { +int NullMixerManager::resumeAudio() { if (!_audioSuspended) { return -2; } @@ -55,21 +55,13 @@ int NullSdlMixerManager::resumeAudio() { return 0; } - -void NullSdlMixerManager::startAudio() { -} - -void NullSdlMixerManager::callbackHandler(byte *samples, int len) { - assert(_mixer); - _mixer->mixCallback(samples, len); -} - -void NullSdlMixerManager::update() { +void NullMixerManager::update() { if (_audioSuspended) { return; } _callsCounter++; if ((_callsCounter % _callbackPeriod) == 0) { - callbackHandler(_samplesBuf, _samples); + assert(_mixer); + _mixer->mixCallback(_samplesBuf, _samples); } } diff --git a/backends/mixer/nullmixer/nullsdl-mixer.h b/backends/mixer/null/null-mixer.h similarity index 81% rename from backends/mixer/nullmixer/nullsdl-mixer.h rename to backends/mixer/null/null-mixer.h index 2fc46efc39f..90ba75d4b1f 100644 --- a/backends/mixer/nullmixer/nullsdl-mixer.h +++ b/backends/mixer/null/null-mixer.h @@ -20,11 +20,10 @@ * */ -#ifndef BACKENDS_MIXER_NULLSDL_H -#define BACKENDS_MIXER_NULLSDL_H +#ifndef BACKENDS_MIXER_NULL_H +#define BACKENDS_MIXER_NULL_H -#include "backends/mixer/sdl/sdl-mixer.h" -#include "common/str.h" +#include "backends/mixer/mixer.h" /** Audio mixer which in fact does not output audio. * @@ -35,10 +34,10 @@ * users could work without modifications. */ -class NullSdlMixerManager : public SdlMixerManager { +class NullMixerManager : public MixerManager { public: - NullSdlMixerManager(); - virtual ~NullSdlMixerManager(); + NullMixerManager(); + virtual ~NullMixerManager(); virtual void init(); void update(); @@ -46,11 +45,6 @@ public: virtual void suspendAudio(); virtual int resumeAudio(); -protected: - - virtual void startAudio(); - virtual void callbackHandler(byte *samples, int len); - private: uint32 _outputRate; uint32 _callsCounter; diff --git a/backends/module.mk b/backends/module.mk index 58a77c9344c..794ba7b0b77 100644 --- a/backends/module.mk +++ b/backends/module.mk @@ -344,7 +344,7 @@ endif ifdef ENABLE_EVENTRECORDER MODULE_OBJS += \ - mixer/nullmixer/nullsdl-mixer.o \ + mixer/null/null-mixer.o \ saves/recorder/recorder-saves.o endif diff --git a/gui/EventRecorder.cpp b/gui/EventRecorder.cpp index b09cde8da5e..5f29314dccd 100644 --- a/gui/EventRecorder.cpp +++ b/gui/EventRecorder.cpp @@ -260,7 +260,7 @@ Common::String EventRecorder::generateRecordFileName(const Common::String &targe void EventRecorder::init(Common::String recordFileName, RecordMode mode) { - _fakeMixerManager = new NullSdlMixerManager(); + _fakeMixerManager = new NullMixerManager(); _fakeMixerManager->init(); _fakeMixerManager->suspendAudio(); _fakeTimer = 0; diff --git a/gui/EventRecorder.h b/gui/EventRecorder.h index 70597f4f7ca..08cf2700f96 100644 --- a/gui/EventRecorder.h +++ b/gui/EventRecorder.h @@ -43,7 +43,7 @@ #include "common/config-manager.h" #include "common/recorderfile.h" #include "backends/saves/recorder/recorder-saves.h" -#include "backends/mixer/nullmixer/nullsdl-mixer.h" +#include "backends/mixer/null/null-mixer.h" #include "backends/saves/default/default-saves.h" @@ -190,7 +190,7 @@ private: MixerManager *_realMixerManager; DefaultTimerManager *_timerManager; RecorderSaveFileManager _fakeSaveManager; - NullSdlMixerManager *_fakeMixerManager; + NullMixerManager *_fakeMixerManager; GUI::OnScreenDialog *_controlPanel; Common::RecorderEvent _nextEvent;