[Scummvm-cvs-logs] SF.net SVN: scummvm:[49637] scummvm/branches/gsoc2010-opengl

vgvgf at users.sourceforge.net vgvgf at users.sourceforge.net
Sun Jun 13 23:09:53 CEST 2010


Revision: 49637
          http://scummvm.svn.sourceforge.net/scummvm/?rev=49637&view=rev
Author:   vgvgf
Date:     2010-06-13 21:09:52 +0000 (Sun, 13 Jun 2010)

Log Message:
-----------
Added SdlTimerManager. Added getMillis, delayMillis and getTimeAndDate to Common::TimerManager, DefaultTimerManager and ModularBackend. Removed timer code from OSystem_SDL.

Modified Paths:
--------------
    scummvm/branches/gsoc2010-opengl/backends/modular-backend.cpp
    scummvm/branches/gsoc2010-opengl/backends/modular-backend.h
    scummvm/branches/gsoc2010-opengl/backends/module.mk
    scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.cpp
    scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.h
    scummvm/branches/gsoc2010-opengl/backends/timer/default/default-timer.h
    scummvm/branches/gsoc2010-opengl/common/timer.h

Added Paths:
-----------
    scummvm/branches/gsoc2010-opengl/backends/timer/sdl/
    scummvm/branches/gsoc2010-opengl/backends/timer/sdl/sdl-timer.cpp
    scummvm/branches/gsoc2010-opengl/backends/timer/sdl/sdl-timer.h

Modified: scummvm/branches/gsoc2010-opengl/backends/modular-backend.cpp
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/modular-backend.cpp	2010-06-13 20:33:54 UTC (rev 49636)
+++ scummvm/branches/gsoc2010-opengl/backends/modular-backend.cpp	2010-06-13 21:09:52 UTC (rev 49637)
@@ -200,8 +200,6 @@
 	_graphicsManager->disableCursorPalette(disable);
 }
 
-/** TODO: Add getMillis, delayMillis and getTimeAndDate
- ** to timer manager
 uint32 ModularBackend::getMillis() {
 	assert(_timerManager);
 	return _timerManager->getMillis();
@@ -215,7 +213,7 @@
 void ModularBackend::getTimeAndDate(TimeDate &t) const {
 	assert(_timerManager);
 	return _timerManager->getTimeAndDate(t);
-}*/
+}
 
 Common::TimerManager *ModularBackend::getTimerManager() {
 	assert(_timerManager);

Modified: scummvm/branches/gsoc2010-opengl/backends/modular-backend.h
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/modular-backend.h	2010-06-13 20:33:54 UTC (rev 49636)
+++ scummvm/branches/gsoc2010-opengl/backends/modular-backend.h	2010-06-13 21:09:52 UTC (rev 49637)
@@ -27,6 +27,7 @@
 #define BACKENDS_MODULAR_BACKEND_H
 
 #include "common/system.h"
+#include "common/timer.h"
 #include "backends/events/default/default-events.h"
 #include "backends/audiocd/default/default-audiocd.h"
 #include "backends/mutex/null/null-mutex.h"
@@ -83,9 +84,9 @@
 	virtual void setCursorPalette(const byte *colors, uint start, uint num);
 	virtual void disableCursorPalette(bool disable);
 
-	/*virtual uint32 getMillis();
+	virtual uint32 getMillis();
 	virtual void delayMillis(uint msecs);
-	virtual void getTimeAndDate(TimeDate &t) const;*/
+	virtual void getTimeAndDate(TimeDate &t) const;
 	virtual Common::TimerManager *getTimerManager();
 	virtual Common::EventManager *getEventManager();
 	virtual Common::HardwareKeySet *getHardwareKeySet() { return 0; }

Modified: scummvm/branches/gsoc2010-opengl/backends/module.mk
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/module.mk	2010-06-13 20:33:54 UTC (rev 49636)
+++ scummvm/branches/gsoc2010-opengl/backends/module.mk	2010-06-13 21:09:52 UTC (rev 49637)
@@ -47,6 +47,7 @@
 	saves/psp/psp-saves.o \
 	timer/default/default-timer.o \
 	timer/psp/timer.o \
+	timer/sdl/sdl-timer.o \
 	vkeybd/image-map.o \
 	vkeybd/polygon.o \
 	vkeybd/virtual-keyboard.o \

Modified: scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.cpp
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.cpp	2010-06-13 20:33:54 UTC (rev 49636)
+++ scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.cpp	2010-06-13 21:09:52 UTC (rev 49637)
@@ -33,7 +33,6 @@
 #include "common/archive.h"
 #include "common/config-manager.h"
 #include "common/debug.h"
-#include "common/EventRecorder.h"
 #include "common/util.h"
 
 #ifdef UNIX
@@ -41,16 +40,14 @@
 #else
   #include "backends/saves/default/default-saves.h"
 #endif
-#include "backends/timer/default/default-timer.h"
-
+#include "backends/audiocd/sdl/sdl-audiocd.h"
+#include "backends/events/sdl/sdl-events.h"
+#include "backends/mutex/sdl/sdl-mutex.h"
 #include "backends/mixer/sdl/sdl-mixer.h"
+#include "backends/timer/sdl/sdl-timer.h"
 
-#include "backends/events/sdl/sdl-events.h"
-
 #include "icons/scummvm.xpm"
 
-#include <time.h>	// for getTimeAndDate()
-
 /*
  * Include header files needed for the getFilesystemFactory() method.
  */
@@ -62,7 +59,6 @@
 	#include "backends/fs/windows/windows-fs-factory.h"
 #endif
 
-
 #if defined(UNIX)
 #ifdef MACOSX
 #define DEFAULT_CONFIG_FILE "Library/Preferences/ScummVM Preferences"
@@ -80,11 +76,6 @@
 #endif
 
 
-static Uint32 timer_handler(Uint32 interval, void *param) {
-	((DefaultTimerManager *)param)->handler();
-	return interval;
-}
-
 void OSystem_SDL::initBackend() {
 	assert(!_inited);
 
@@ -135,13 +126,7 @@
 	// Create and hook up the timer manager, if none exists yet (we check for
 	// this to allow subclasses to provide their own).
 	if (_timerManager == 0) {
-		// TODO: Implement SdlTimerManager
-		if (SDL_InitSubSystem(SDL_INIT_TIMER) == -1) {
-			error("Could not initialize SDL: %s", SDL_GetError());
-		}
-
-		_timerManager = new DefaultTimerManager();
-		_timerID = SDL_AddTimer(10, &timer_handler, _timerManager);
+		_timerManager = new SdlTimerManager();
 	}
 
 	// Create and hook up the graphics manager, if none exists yet (we check for
@@ -184,34 +169,11 @@
 }
 
 OSystem_SDL::~OSystem_SDL() {
-	SDL_RemoveTimer(_timerID);
-	
 	delete _mixer;
 	delete _savefileManager;
 	delete _timerManager;
 }
 
-uint32 OSystem_SDL::getMillis() {
-	uint32 millis = SDL_GetTicks();
-	g_eventRec.processMillis(millis);
-	return millis;
-}
-
-void OSystem_SDL::delayMillis(uint msecs) {
-	SDL_Delay(msecs);
-}
-
-void OSystem_SDL::getTimeAndDate(TimeDate &td) const {
-	time_t curTime = time(0);
-	struct tm t = *localtime(&curTime);
-	td.tm_sec = t.tm_sec;
-	td.tm_min = t.tm_min;
-	td.tm_hour = t.tm_hour;
-	td.tm_mday = t.tm_mday;
-	td.tm_mon = t.tm_mon;
-	td.tm_year = t.tm_year;
-}
-
 void OSystem_SDL::addSysArchivesToSearchSet(Common::SearchSet &s, int priority) {
 
 #ifdef DATA_PATH
@@ -241,7 +203,6 @@
 
 }
 
-
 static Common::String getDefaultConfigFileName() {
 	char configFile[MAXPATHLEN];
 #if defined (WIN32) && !defined(_WIN32_WCE) && !defined(__SYMBIAN32__)
@@ -338,8 +299,6 @@
 void OSystem_SDL::deinit() {
 	SDL_ShowCursor(SDL_ENABLE);
 
-	SDL_RemoveTimer(_timerID);
-
 	delete _mixer;
 
 	delete _timerManager;

Modified: scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.h
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.h	2010-06-13 20:33:54 UTC (rev 49636)
+++ scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.h	2010-06-13 21:09:52 UTC (rev 49637)
@@ -33,23 +33,8 @@
 #endif
 
 #include "backends/modular-backend.h"
-
-#include "backends/mutex/sdl/sdl-mutex.h"
 #include "backends/graphics/sdl/sdl-graphics.h"
-#include "backends/audiocd/sdl/sdl-audiocd.h"
 
-#include "graphics/scaler.h"
-
-
-namespace Audio {
-	class MixerImpl;
-}
-
-#if !defined(_WIN32_WCE) && !defined(__SYMBIAN32__)
-// Uncomment this to enable the 'on screen display' code.
-#define USE_OSD	1
-#endif
-
 class OSystem_SDL : public ModularBackend {
 public:
 	OSystem_SDL();
@@ -57,14 +42,6 @@
 
 	virtual void initBackend();
 
-	// Get the number of milliseconds since the program was started.
-	uint32 getMillis();
-
-	// Delay for a specified amount of milliseconds
-	void delayMillis(uint msecs);
-
-	virtual void getTimeAndDate(TimeDate &t) const;
-
 	// Define all hardware keys for keymapper
 	virtual Common::HardwareKeySet *getHardwareKeySet();
 
@@ -86,8 +63,6 @@
 protected:
 	bool _inited;
 
-	SDL_TimerID _timerID;
-
 	void setupIcon();
 };
 

Modified: scummvm/branches/gsoc2010-opengl/backends/timer/default/default-timer.h
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/timer/default/default-timer.h	2010-06-13 20:33:54 UTC (rev 49636)
+++ scummvm/branches/gsoc2010-opengl/backends/timer/default/default-timer.h	2010-06-13 21:09:52 UTC (rev 49637)
@@ -48,6 +48,10 @@
 	 * Timer callback, to be invoked at regular time intervals by the backend.
 	 */
 	void handler();
+
+	virtual uint32 getMillis() { return 0; }
+	virtual void delayMillis(uint msecs) {}
+	virtual void getTimeAndDate(TimeDate &t) const {}
 };
 
 #endif

Added: scummvm/branches/gsoc2010-opengl/backends/timer/sdl/sdl-timer.cpp
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/timer/sdl/sdl-timer.cpp	                        (rev 0)
+++ scummvm/branches/gsoc2010-opengl/backends/timer/sdl/sdl-timer.cpp	2010-06-13 21:09:52 UTC (rev 49637)
@@ -0,0 +1,71 @@
+
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#if defined(WIN32) || defined(UNIX) || defined(MACOSX)
+
+#include "backends/timer/sdl/sdl-timer.h"
+#include "common/EventRecorder.h"
+#include <time.h>
+
+static Uint32 timer_handler(Uint32 interval, void *param) {
+	((DefaultTimerManager *)param)->handler();
+	return interval;
+}
+
+SdlTimerManager::SdlTimerManager() {
+	if (SDL_InitSubSystem(SDL_INIT_TIMER) == -1) {
+		error("Could not initialize SDL: %s", SDL_GetError());
+	}
+
+	_timerID = SDL_AddTimer(10, &timer_handler, this);
+}
+
+SdlTimerManager::~SdlTimerManager() {
+	SDL_RemoveTimer(_timerID);
+}
+
+uint32 SdlTimerManager::getMillis() {
+	uint32 millis = SDL_GetTicks();
+	g_eventRec.processMillis(millis);
+	return millis;
+}
+
+void SdlTimerManager::delayMillis(uint msecs) {
+	SDL_Delay(msecs);
+}
+
+void SdlTimerManager::getTimeAndDate(TimeDate &td) const {
+	time_t curTime = time(0);
+	struct tm t = *localtime(&curTime);
+	td.tm_sec = t.tm_sec;
+	td.tm_min = t.tm_min;
+	td.tm_hour = t.tm_hour;
+	td.tm_mday = t.tm_mday;
+	td.tm_mon = t.tm_mon;
+	td.tm_year = t.tm_year;
+}
+
+#endif


Property changes on: scummvm/branches/gsoc2010-opengl/backends/timer/sdl/sdl-timer.cpp
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:keywords
   + Date Rev Author URL Id
Added: svn:eol-style
   + native

Added: scummvm/branches/gsoc2010-opengl/backends/timer/sdl/sdl-timer.h
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/timer/sdl/sdl-timer.h	                        (rev 0)
+++ scummvm/branches/gsoc2010-opengl/backends/timer/sdl/sdl-timer.h	2010-06-13 21:09:52 UTC (rev 49637)
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#ifndef BACKENDS_TIMER_SDL_H
+#define BACKENDS_TIMER_SDL_H
+
+#include "backends/timer/default/default-timer.h"
+
+#if defined(__SYMBIAN32__)
+#include <esdl\SDL.h>
+#else
+#include <SDL.h>
+#endif
+
+class SdlTimerManager : public DefaultTimerManager {
+public:
+	SdlTimerManager();
+	~SdlTimerManager();
+
+	uint32 getMillis();
+	void delayMillis(uint msecs);
+	void getTimeAndDate(TimeDate &t) const;
+
+protected:
+	SDL_TimerID _timerID;
+};
+
+
+#endif


Property changes on: scummvm/branches/gsoc2010-opengl/backends/timer/sdl/sdl-timer.h
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:keywords
   + Date Rev Author URL Id
Added: svn:eol-style
   + native

Modified: scummvm/branches/gsoc2010-opengl/common/timer.h
===================================================================
--- scummvm/branches/gsoc2010-opengl/common/timer.h	2010-06-13 20:33:54 UTC (rev 49636)
+++ scummvm/branches/gsoc2010-opengl/common/timer.h	2010-06-13 21:09:52 UTC (rev 49637)
@@ -26,6 +26,7 @@
 #define COMMON_TIMER_H
 
 #include "common/scummsys.h"
+#include "common/system.h"
 #include "common/noncopyable.h"
 
 namespace Common {
@@ -55,6 +56,21 @@
 	 * and no instance of this callback will be running anymore.
 	 */
 	virtual void removeTimerProc(TimerProc proc) = 0;
+
+	/**
+	 *  Get the number of milliseconds since the program was started.
+	 */
+	virtual uint32 getMillis() = 0;
+
+	/**
+	 * Delay for a specified amount of milliseconds
+	 */
+	virtual void delayMillis(uint msecs) = 0;
+
+	/**
+	 * Get the current time and date
+	 */
+	virtual void getTimeAndDate(TimeDate &t) const = 0;
 };
 
 } // End of namespace Common


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list