BACKENDS: Shuffle backends class hierarchy and module initialization

This commit is contained in:
Max Horn 2011-06-08 14:29:22 +02:00
parent d670b4bb56
commit fce7f90a94
20 changed files with 42 additions and 27 deletions

View file

@ -29,6 +29,11 @@
#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) {
@ -41,7 +46,13 @@ void BaseBackend::initBackend() {
// Init Event manager
#ifndef DISABLE_DEFAULT_EVENT_MANAGER
if (!_eventManager)
_eventManager = new DefaultEventManager(this);
_eventManager = new DefaultEventManager(getDefaultEventSource());
#endif
// Init audio CD manager
#ifndef DISABLE_DEFAULT_AUDIOCD_MANAGER
if (!_audiocdManager)
_audiocdManager = new DefaultAudioCDManager();
#endif
OSystem::initBackend();

View file

@ -26,7 +26,9 @@
#include "common/system.h"
#include "common/events.h"
class BaseBackend : public OSystem, Common::EventSource {
class BaseBackend : public OSystem {
protected:
virtual Common::EventSource *getDefaultEventSource() = 0;
public:
virtual void initBackend();
@ -34,5 +36,11 @@ public:
virtual void fillScreen(uint32 col);
};
class EventsBaseBackend : public BaseBackend, Common::EventSource {
protected:
virtual Common::EventSource *getDefaultEventSource() { return this; }
public:
};
#endif

View file

@ -23,7 +23,7 @@
#ifndef BACKENDS_MODULAR_BACKEND_H
#define BACKENDS_MODULAR_BACKEND_H
#include "common/system.h"
#include "backends/base-backend.h"
class GraphicsManager;
class MutexManager;
@ -44,7 +44,7 @@ class MutexManager;
* And, it should also initialize all the managers variables
* declared in this class, or override their related functions.
*/
class ModularBackend : public OSystem {
class ModularBackend : public BaseBackend {
public:
ModularBackend();
virtual ~ModularBackend();

View file

@ -389,7 +389,7 @@ void OSystem_Android::initBackend() {
JNI::setReadyForEvents(true);
BaseBackend::initBackend();
EventsBaseBackend::initBackend();
}
void OSystem_Android::addPluginDirectories(Common::FSList &dirs) const {

View file

@ -103,7 +103,7 @@ protected:
};
#endif
class OSystem_Android : public BaseBackend, public PaletteManager {
class OSystem_Android : public EventsBaseBackend, public PaletteManager {
private:
// passed from the dark side
int _audio_sample_rate;

View file

@ -70,7 +70,7 @@ class DCCDManager : public DefaultAudioCDManager {
void updateCD();
};
class OSystem_Dreamcast : private DCHardware, public BaseBackend, public PaletteManager, public FilesystemFactory
class OSystem_Dreamcast : private DCHardware, public EventsBaseBackend, public PaletteManager, public FilesystemFactory
#ifdef DYNAMIC_MODULES
, public FilePluginProvider
#endif

View file

@ -63,7 +63,7 @@ void OSystem_Dreamcast::initBackend()
_audiocdManager = new DCCDManager();
BaseBackend::initBackend();
EventsBaseBackend::initBackend();
}

View file

@ -134,7 +134,7 @@ void OSystem_DS::initBackend() {
_audiocdManager = new DSAudioCDManager();
*/
BaseBackend::initBackend();
EventsBaseBackend::initBackend();
}
bool OSystem_DS::hasFeature(Feature f) {

View file

@ -34,7 +34,7 @@
#include "graphics/colormasks.h"
#include "graphics/palette.h"
class OSystem_DS : public BaseBackend, public PaletteManager {
class OSystem_DS : public EventsBaseBackend, public PaletteManager {
protected:
int eventNum;

View file

@ -98,7 +98,7 @@ void OSystem_IPHONE::initBackend() {
setTimerCallback(&OSystem_IPHONE::timerHandler, 10);
BaseBackend::initBackend();
EventsBaseBackend::initBackend();
}
bool OSystem_IPHONE::hasFeature(Feature f) {

View file

@ -49,7 +49,7 @@ typedef struct AQCallbackStruct {
AudioStreamBasicDescription dataFormat;
} AQCallbackStruct;
class OSystem_IPHONE : public BaseBackend, public PaletteManager {
class OSystem_IPHONE : public EventsBaseBackend, public PaletteManager {
protected:
static const OSystem::GraphicsMode s_supportedGraphicsModes[];

View file

@ -71,7 +71,7 @@ enum GraphicModeID {
OVERS_MPAL_340X240
};
class OSystem_N64 : public BaseBackend, public PaletteManager {
class OSystem_N64 : public EventsBaseBackend, public PaletteManager {
protected:
Audio::MixerImpl *_mixer;

View file

@ -191,7 +191,7 @@ void OSystem_N64::initBackend() {
setupMixer();
BaseBackend::initBackend();
EventsBaseBackend::initBackend();
}
bool OSystem_N64::hasFeature(Feature f) {

View file

@ -44,7 +44,7 @@ namespace Audio {
class MixerImpl;
};
class OSystem_PS2 : public BaseBackend, public PaletteManager {
class OSystem_PS2 : public EventsBaseBackend, public PaletteManager {
public:
OSystem_PS2(const char *elfPath);
virtual ~OSystem_PS2(void);

View file

@ -100,7 +100,7 @@ void OSystem_PSP::initBackend() {
setupMixer();
BaseBackend::initBackend();
EventsBaseBackend::initBackend();
}
// Let's us know an engine
@ -422,7 +422,7 @@ void OSystem_PSP::quit() {
}
void OSystem_PSP::logMessage(LogMessageType::Type type, const char *message) {
BaseBackend::logMessage(type, message);
EventsBaseBackend::logMessage(type, message);
if (type == LogMessageType::kError)
PspDebugTrace(false, "%s", message); // write to file

View file

@ -42,7 +42,7 @@
#include "backends/timer/psp/timer.h"
#include "backends/platform/psp/thread.h"
class OSystem_PSP : public BaseBackend, public PaletteManager {
class OSystem_PSP : public EventsBaseBackend, public PaletteManager {
private:
Audio::MixerImpl *_mixer;

View file

@ -91,6 +91,8 @@ protected:
*/
SdlEventSource *_eventSource;
virtual Common::EventSource *getDefaultEventSource() { return _eventSource; }
/**
* Initialze the SDL library.
*/

View file

@ -144,7 +144,7 @@ void OSystem_Wii::initBackend() {
initSfx();
initEvents();
BaseBackend::initBackend();
EventsBaseBackend::initBackend();
}
void OSystem_Wii::quit() {
@ -361,7 +361,7 @@ Common::String OSystem_Wii::getSystemLanguage() const {
} else {
// This will only happen when new languages are added to the API.
warning("WII: Unknown system language: %d", langID);
return BaseBackend::getSystemLanguage();
return EventsBaseBackend::getSystemLanguage();
}
}
#endif // !GAMECUBE

View file

@ -52,7 +52,7 @@ extern void wii_memstats(void);
}
#endif
class OSystem_Wii : public BaseBackend, public PaletteManager {
class OSystem_Wii : public EventsBaseBackend, public PaletteManager {
private:
s64 _startup_time;

View file

@ -66,12 +66,6 @@ OSystem::~OSystem() {
}
void OSystem::initBackend() {
// Init audio CD manager
#ifndef DISABLE_DEFAULT_AUDIOCD_MANAGER
if (!_audiocdManager)
_audiocdManager = new DefaultAudioCDManager();
#endif
// Verify all managers has been set
if (!_audiocdManager)
error("Backend failed to instantiate audio CD manager");