BACKENDS: Shuffle backends class hierarchy and module initialization
This commit is contained in:
parent
d670b4bb56
commit
fce7f90a94
20 changed files with 42 additions and 27 deletions
|
@ -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();
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -389,7 +389,7 @@ void OSystem_Android::initBackend() {
|
|||
|
||||
JNI::setReadyForEvents(true);
|
||||
|
||||
BaseBackend::initBackend();
|
||||
EventsBaseBackend::initBackend();
|
||||
}
|
||||
|
||||
void OSystem_Android::addPluginDirectories(Common::FSList &dirs) const {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -63,7 +63,7 @@ void OSystem_Dreamcast::initBackend()
|
|||
|
||||
_audiocdManager = new DCCDManager();
|
||||
|
||||
BaseBackend::initBackend();
|
||||
EventsBaseBackend::initBackend();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -134,7 +134,7 @@ void OSystem_DS::initBackend() {
|
|||
_audiocdManager = new DSAudioCDManager();
|
||||
*/
|
||||
|
||||
BaseBackend::initBackend();
|
||||
EventsBaseBackend::initBackend();
|
||||
}
|
||||
|
||||
bool OSystem_DS::hasFeature(Feature f) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -98,7 +98,7 @@ void OSystem_IPHONE::initBackend() {
|
|||
|
||||
setTimerCallback(&OSystem_IPHONE::timerHandler, 10);
|
||||
|
||||
BaseBackend::initBackend();
|
||||
EventsBaseBackend::initBackend();
|
||||
}
|
||||
|
||||
bool OSystem_IPHONE::hasFeature(Feature f) {
|
||||
|
|
|
@ -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[];
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -191,7 +191,7 @@ void OSystem_N64::initBackend() {
|
|||
|
||||
setupMixer();
|
||||
|
||||
BaseBackend::initBackend();
|
||||
EventsBaseBackend::initBackend();
|
||||
}
|
||||
|
||||
bool OSystem_N64::hasFeature(Feature f) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -91,6 +91,8 @@ protected:
|
|||
*/
|
||||
SdlEventSource *_eventSource;
|
||||
|
||||
virtual Common::EventSource *getDefaultEventSource() { return _eventSource; }
|
||||
|
||||
/**
|
||||
* Initialze the SDL library.
|
||||
*/
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue