diff options
author | Alejandro Marzini | 2010-06-13 20:31:25 +0000 |
---|---|---|
committer | Alejandro Marzini | 2010-06-13 20:31:25 +0000 |
commit | 360b82858cd21307a784fe1029825021e076756f (patch) | |
tree | e5d29f0b753a1fb8e241b95f9977cc94db86412e /backends/platform/sdl/sdl.cpp | |
parent | 3cfa482b43dcfef774fb0c284bf19ab07cdc4f20 (diff) | |
download | scummvm-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.cpp | 38 |
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); +} |