diff options
Diffstat (limited to 'backends/base-backend.cpp')
-rw-r--r-- | backends/base-backend.cpp | 74 |
1 files changed, 20 insertions, 54 deletions
diff --git a/backends/base-backend.cpp b/backends/base-backend.cpp index 40e702495a..8d22ab732d 100644 --- a/backends/base-backend.cpp +++ b/backends/base-backend.cpp @@ -24,8 +24,16 @@ */ #include "backends/base-backend.h" + +#ifndef DISABLE_DEFAULT_EVENT_MANAGER #include "backends/events/default/default-events.h" +#endif + +#ifndef DISABLE_DEFAULT_AUDIOCD_MANAGER #include "backends/audiocd/default/default-audiocd.h" +#endif + + #include "gui/message.h" void BaseBackend::displayMessageOnOSD(const char *msg) { @@ -34,16 +42,20 @@ void BaseBackend::displayMessageOnOSD(const char *msg) { dialog.runModal(); } +void BaseBackend::initBackend() { + // Init Event manager +#ifndef DISABLE_DEFAULT_EVENT_MANAGER + if (!_eventManager) + _eventManager = new DefaultEventManager(getDefaultEventSource()); +#endif -static Common::EventManager *s_eventManager = 0; + // Init audio CD manager +#ifndef DISABLE_DEFAULT_AUDIOCD_MANAGER + if (!_audiocdManager) + _audiocdManager = new DefaultAudioCDManager(); +#endif -Common::EventManager *BaseBackend::getEventManager() { - // FIXME/TODO: Eventually this method should be turned into an abstract one, - // to force backends to implement this conciously (even if they - // end up returning the default event manager anyway). - if (!s_eventManager) - s_eventManager = new DefaultEventManager(this); - return s_eventManager; + OSystem::initBackend(); } void BaseBackend::fillScreen(uint32 col) { @@ -52,49 +64,3 @@ void BaseBackend::fillScreen(uint32 col) { memset(screen->pixels, col, screen->h * screen->pitch); unlockScreen(); } - - -/* - FIXME: Maybe we should push the default config file loading/saving code below - out to all the backends? -*/ - - -#if defined(POSIX) -#define DEFAULT_CONFIG_FILE ".scummvmrc" -#endif - -#if !defined(POSIX) -#define DEFAULT_CONFIG_FILE "scummvm.ini" -#endif - -BaseBackend::BaseBackend() { - _audiocdManager = 0; -} - -BaseBackend::~BaseBackend() { - delete _audiocdManager; -} - -Common::SeekableReadStream *BaseBackend::createConfigReadStream() { - Common::FSNode file(DEFAULT_CONFIG_FILE); - return file.createReadStream(); -} - -Common::WriteStream *BaseBackend::createConfigWriteStream() { -#ifdef __DC__ - return 0; -#else - Common::FSNode file(DEFAULT_CONFIG_FILE); - return file.createWriteStream(); -#endif -} - -AudioCDManager *BaseBackend::getAudioCDManager() { - if (!_audiocdManager) - _audiocdManager = new DefaultAudioCDManager(); - return _audiocdManager; -} - -void BaseBackend::resetGraphicsScale() { -} |