aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/sdl/sdl.cpp
diff options
context:
space:
mode:
authorAlejandro Marzini2010-06-13 20:31:25 +0000
committerAlejandro Marzini2010-06-13 20:31:25 +0000
commit360b82858cd21307a784fe1029825021e076756f (patch)
treee5d29f0b753a1fb8e241b95f9977cc94db86412e /backends/platform/sdl/sdl.cpp
parent3cfa482b43dcfef774fb0c284bf19ab07cdc4f20 (diff)
downloadscummvm-rg350-360b82858cd21307a784fe1029825021e076756f.tar.gz
scummvm-rg350-360b82858cd21307a784fe1029825021e076756f.tar.bz2
scummvm-rg350-360b82858cd21307a784fe1029825021e076756f.zip
Added SdlEventManager.
svn-id: r49635
Diffstat (limited to 'backends/platform/sdl/sdl.cpp')
-rw-r--r--backends/platform/sdl/sdl.cpp38
1 files changed, 15 insertions, 23 deletions
diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp
index 76e795004d..46984d1c8e 100644
--- a/backends/platform/sdl/sdl.cpp
+++ b/backends/platform/sdl/sdl.cpp
@@ -45,6 +45,8 @@
#include "backends/mixer/sdl/sdl-mixer.h"
+#include "backends/events/sdl/sdl-events.h"
+
#include "icons/scummvm.xpm"
#include <time.h> // for getTimeAndDate()
@@ -86,15 +88,11 @@ static Uint32 timer_handler(Uint32 interval, void *param) {
void OSystem_SDL::initBackend() {
assert(!_inited);
- int joystick_num = ConfMan.getInt("joystick_num");
uint32 sdlFlags = 0;
if (ConfMan.hasKey("disable_sdl_parachute"))
sdlFlags |= SDL_INIT_NOPARACHUTE;
- if (joystick_num > -1)
- sdlFlags |= SDL_INIT_JOYSTICK;
-
if (SDL_Init(sdlFlags) == -1) {
error("Could not initialize SDL: %s", SDL_GetError());
}
@@ -108,16 +106,10 @@ void OSystem_SDL::initBackend() {
_mutexManager = new SdlMutexManager();
}
- // enable joystick
- if (joystick_num > -1 && SDL_NumJoysticks() > 0) {
- printf("Using joystick: %s\n", SDL_JoystickName(0));
- _joystick = SDL_JoystickOpen(joystick_num);
- }
-
// Create and hook up the event manager, if none exists yet (we check for
// this to allow subclasses to provide their own).
if (_eventManager == 0) {
- _eventManager = new DefaultEventManager(this);
+ _eventManager = new SdlEventManager(this);
}
// Create the savefile manager, if none exists yet (we check for this to
@@ -177,14 +169,7 @@ void OSystem_SDL::initBackend() {
OSystem_SDL::OSystem_SDL()
:
- _scrollLock(false),
- _joystick(0) {
-
- // reset mouse state
- memset(&_km, 0, sizeof(_km));
-
- _inited = false;
-
+ _inited(false) {
#if defined(__amigaos4__)
_fsFactory = new AmigaOSFilesystemFactory();
#elif defined(UNIX)
@@ -351,9 +336,6 @@ void OSystem_SDL::setWindowCaption(const char *caption) {
}
void OSystem_SDL::deinit() {
- if (_joystick)
- SDL_JoystickClose(_joystick);
-
SDL_ShowCursor(SDL_ENABLE);
SDL_RemoveTimer(_timerID);
@@ -366,7 +348,7 @@ void OSystem_SDL::deinit() {
// Event Manager requires save manager for storing
// recorded events
- delete getEventManager();
+ delete _eventManager;
delete _savefileManager;
}
@@ -429,3 +411,13 @@ void OSystem_SDL::setupIcon() {
SDL_FreeSurface(sdl_surf);
free(icon);
}
+
+SdlGraphicsManager *OSystem_SDL::getGraphicsManager() {
+ assert(_graphicsManager);
+ return (SdlGraphicsManager *)_graphicsManager;
+}
+
+bool OSystem_SDL::pollEvent(Common::Event &event) {
+ assert(_eventManager);
+ return ((SdlEventManager *)_eventManager)->pollSdlEvent(event);
+}