aboutsummaryrefslogtreecommitdiff
path: root/backends/platform
diff options
context:
space:
mode:
authorPaweł Kołodziejski2009-11-11 14:36:46 +0000
committerPaweł Kołodziejski2009-11-11 14:36:46 +0000
commit2a1cd33a46853b50dd5061a104618f00cdff01d3 (patch)
treedb1ae0aebe0202013d9fd153781ffdc447e39da5 /backends/platform
parent22e94ddd61bbb044f99088311d53df60128bd935 (diff)
downloadscummvm-rg350-2a1cd33a46853b50dd5061a104618f00cdff01d3.tar.gz
scummvm-rg350-2a1cd33a46853b50dd5061a104618f00cdff01d3.tar.bz2
scummvm-rg350-2a1cd33a46853b50dd5061a104618f00cdff01d3.zip
added more cases for samsungtv to allow reuse main sdl code
svn-id: r45835
Diffstat (limited to 'backends/platform')
-rw-r--r--backends/platform/samsungtv/graphics.cpp4
-rw-r--r--backends/platform/samsungtv/sdl.cpp109
-rw-r--r--backends/platform/samsungtv/sdl.h7
-rw-r--r--backends/platform/sdl/sdl.cpp8
4 files changed, 6 insertions, 122 deletions
diff --git a/backends/platform/samsungtv/graphics.cpp b/backends/platform/samsungtv/graphics.cpp
index 8a08f8a28e..b5bd3a993f 100644
--- a/backends/platform/samsungtv/graphics.cpp
+++ b/backends/platform/samsungtv/graphics.cpp
@@ -52,10 +52,6 @@ static ScalerProc *scalersMagn[3][3] = {
static int cursorStretch200To240(uint8 *buf, uint32 pitch, int width, int height, int srcX, int srcY, int origSrcY);
#endif
-int OSystem_SDL_SamsungTV::getDefaultGraphicsMode() const {
- return GFX_2XSAI;
-}
-
Common::List<Graphics::PixelFormat> OSystem_SDL_SamsungTV::getSupportedFormats() {
static Common::List<Graphics::PixelFormat>list;
list.push_back(Graphics::PixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0));
diff --git a/backends/platform/samsungtv/sdl.cpp b/backends/platform/samsungtv/sdl.cpp
index 099b9c9928..4515012bee 100644
--- a/backends/platform/samsungtv/sdl.cpp
+++ b/backends/platform/samsungtv/sdl.cpp
@@ -43,93 +43,6 @@
#if defined(SAMSUNGTV)
-static Uint32 timer_handler(Uint32 interval, void *param) {
- ((DefaultTimerManager *)param)->handler();
- return interval;
-}
-
-static const size_t AR_COUNT = 4;
-static const char* desiredAspectRatioAsStrings[AR_COUNT] = { "auto", "4/3", "16/9", "16/10" };
-static const AspectRatio desiredAspectRatios[AR_COUNT] = { AspectRatio(0, 0), AspectRatio(4,3), AspectRatio(16,9), AspectRatio(16,10) };
-static AspectRatio getDesiredAspectRatio() {
- //TODO : We could parse an arbitrary string, if we code enough proper validation
- Common::String desiredAspectRatio = ConfMan.get("desired_screen_aspect_ratio");
-
- for (size_t i = 0; i < AR_COUNT; i++) {
- assert(desiredAspectRatioAsStrings[i] != NULL);
-
- if (!scumm_stricmp(desiredAspectRatio.c_str(), desiredAspectRatioAsStrings[i])) {
- return desiredAspectRatios[i];
- }
- }
- // TODO : Report a warning
- return AspectRatio(0, 0);
-}
-
-void OSystem_SDL_SamsungTV::initBackend() {
- assert(!_inited);
-
- uint32 sdlFlags = SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER;
-
- if (ConfMan.hasKey("disable_sdl_parachute"))
- sdlFlags |= SDL_INIT_NOPARACHUTE;
-
- if (SDL_Init(sdlFlags) == -1) {
- error("Could not initialize SDL: %s", SDL_GetError());
- }
-
- _graphicsMutex = createMutex();
-
- // Enable unicode support if possible
- SDL_EnableUNICODE(1);
-
- memset(&_oldVideoMode, 0, sizeof(_oldVideoMode));
- memset(&_videoMode, 0, sizeof(_videoMode));
- memset(&_transactionDetails, 0, sizeof(_transactionDetails));
-
- _cksumValid = false;
- _videoMode.mode = GFX_2XSAI;
- _videoMode.scaleFactor = 2;
- _videoMode.aspectRatioCorrection = ConfMan.getBool("aspect_ratio");
- _videoMode.desiredAspectRatio = getDesiredAspectRatio();
- _scalerProc = _2xSaI;
- _scalerType = 0;
- _modeFlags = 0;
- _videoMode.fullscreen = true;
-
-
- // Create the savefile manager, if none exists yet (we check for this to
- // allow subclasses to provide their own).
- if (_savefile == NULL) {
- _savefile = new POSIXSaveFileManager();
- }
-
- // Create and hook up the mixer, if none exists yet (we check for this to
- // allow subclasses to provide their own).
- if (_mixer == NULL) {
- setupMixer();
- }
-
- // Create and hook up the timer manager, if none exists yet (we check for
- // this to allow subclasses to provide their own).
- if (_timer == NULL) {
- // Note: We could implement a custom SDLTimerManager by using
- // SDL_AddTimer. That might yield better timer resolution, but it would
- // also change the semantics of a timer: Right now, ScummVM timers
- // *never* run in parallel, due to the way they are implemented. If we
- // switched to SDL_AddTimer, each timer might run in a separate thread.
- // However, not all our code is prepared for that, so we can't just
- // switch. Still, it's a potential future change to keep in mind.
- _timer = new DefaultTimerManager();
- _timerID = SDL_AddTimer(10, &timer_handler, _timer);
- }
-
- // Invoke parent implementation of this method
- OSystem::initBackend();
-
- _inited = true;
-}
-
OSystem_SDL_SamsungTV::OSystem_SDL_SamsungTV() : OSystem_SDL(),
_prehwscreen(0) {
}
@@ -178,26 +91,4 @@ bool OSystem_SDL_SamsungTV::getFeatureState(Feature f) {
}
}
-void OSystem_SDL_SamsungTV::quit() {
- unloadGFXMode();
- deleteMutex(_graphicsMutex);
-
- SDL_RemoveTimer(_timerID);
- closeMixer();
-
- free(_dirtyChecksums);
- free(_currentPalette);
- free(_cursorPalette);
- free(_mouseData);
-
- delete _timer;
-
- SDL_Quit();
-
- // Even Manager requires save manager for storing
- // recorded events
- delete getEventManager();
- delete _savefile;
-}
-
#endif
diff --git a/backends/platform/samsungtv/sdl.h b/backends/platform/samsungtv/sdl.h
index 5879a775c5..b01385c9aa 100644
--- a/backends/platform/samsungtv/sdl.h
+++ b/backends/platform/samsungtv/sdl.h
@@ -42,8 +42,6 @@ class OSystem_SDL_SamsungTV : public OSystem_SDL {
public:
OSystem_SDL_SamsungTV();
- virtual void initBackend();
-
// Highest supported
virtual Common::List<Graphics::PixelFormat> getSupportedFormats();
@@ -63,11 +61,6 @@ public:
// Returns true if an event was retrieved.
virtual bool pollEvent(Common::Event &event);
- // Quit
- virtual void quit(); // overloaded by CE backend
-
- virtual int getDefaultGraphicsMode() const;
-
virtual bool hasFeature(Feature f);
virtual void setFeatureState(Feature f, bool enable);
virtual bool getFeatureState(Feature f);
diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp
index 368522b9d5..e4a4f62014 100644
--- a/backends/platform/sdl/sdl.cpp
+++ b/backends/platform/sdl/sdl.cpp
@@ -137,8 +137,9 @@ void OSystem_SDL::initBackend() {
_graphicsMutex = createMutex();
+#if !defined(SAMSUNGTV)
SDL_ShowCursor(SDL_DISABLE);
-
+#endif
// Enable unicode support if possible
SDL_EnableUNICODE(1);
@@ -503,8 +504,9 @@ void OSystem_SDL::quit() {
if (_joystick)
SDL_JoystickClose(_joystick);
+#if !defined(SAMSUNGTV)
SDL_ShowCursor(SDL_ENABLE);
-
+#endif
SDL_RemoveTimer(_timerID);
closeMixer();
@@ -522,7 +524,9 @@ void OSystem_SDL::quit() {
delete getEventManager();
delete _savefile;
+#if !defined(SAMSUNGTV)
exit(0);
+#endif
}
void OSystem_SDL::setupIcon() {