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

vgvgf at users.sourceforge.net vgvgf at users.sourceforge.net
Wed Jun 23 21:34:07 CEST 2010


Revision: 50189
          http://scummvm.svn.sourceforge.net/scummvm/?rev=50189&view=rev
Author:   vgvgf
Date:     2010-06-23 19:34:07 +0000 (Wed, 23 Jun 2010)

Log Message:
-----------
Fixed AudioCDManager not having a public inheritance. Backend code cleanup.

Modified Paths:
--------------
    scummvm/branches/gsoc2010-opengl/backends/audiocd/default/default-audiocd.h
    scummvm/branches/gsoc2010-opengl/backends/audiocd/sdl/sdl-audiocd.h
    scummvm/branches/gsoc2010-opengl/backends/mixer/sdl/sdl-mixer.cpp
    scummvm/branches/gsoc2010-opengl/backends/platform/posix/posix.cpp
    scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.cpp
    scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.h
    scummvm/branches/gsoc2010-opengl/backends/platform/win32/win32.cpp
    scummvm/branches/gsoc2010-opengl/backends/platform/win32/win32.h

Modified: scummvm/branches/gsoc2010-opengl/backends/audiocd/default/default-audiocd.h
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/audiocd/default/default-audiocd.h	2010-06-23 17:30:18 UTC (rev 50188)
+++ scummvm/branches/gsoc2010-opengl/backends/audiocd/default/default-audiocd.h	2010-06-23 19:34:07 UTC (rev 50189)
@@ -29,7 +29,7 @@
 #include "backends/audiocd/audiocd.h"
 #include "sound/mixer.h"
 
-class DefaultAudioCDManager : AudioCDManager {
+class DefaultAudioCDManager : public AudioCDManager {
 public:
 	DefaultAudioCDManager();
 	virtual ~DefaultAudioCDManager() {}

Modified: scummvm/branches/gsoc2010-opengl/backends/audiocd/sdl/sdl-audiocd.h
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/audiocd/sdl/sdl-audiocd.h	2010-06-23 17:30:18 UTC (rev 50188)
+++ scummvm/branches/gsoc2010-opengl/backends/audiocd/sdl/sdl-audiocd.h	2010-06-23 19:34:07 UTC (rev 50189)
@@ -34,7 +34,7 @@
 #include <SDL.h>
 #endif
 
-class SdlAudioCDManager : DefaultAudioCDManager {
+class SdlAudioCDManager : public DefaultAudioCDManager {
 public:
 	SdlAudioCDManager();
 	~SdlAudioCDManager();

Modified: scummvm/branches/gsoc2010-opengl/backends/mixer/sdl/sdl-mixer.cpp
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/mixer/sdl/sdl-mixer.cpp	2010-06-23 17:30:18 UTC (rev 50188)
+++ scummvm/branches/gsoc2010-opengl/backends/mixer/sdl/sdl-mixer.cpp	2010-06-23 19:34:07 UTC (rev 50189)
@@ -66,6 +66,11 @@
 }
 
 uint SdlMixerImpl::getSamplesPerSec() {
+
+	if (SDL_InitSubSystem(SDL_INIT_AUDIO) == -1) {
+		error("Could not initialize SDL: %s", SDL_GetError());
+	}
+
 	SDL_AudioSpec desired;
 
 	// Determine the desired output sampling frequency.

Modified: scummvm/branches/gsoc2010-opengl/backends/platform/posix/posix.cpp
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/platform/posix/posix.cpp	2010-06-23 17:30:18 UTC (rev 50188)
+++ scummvm/branches/gsoc2010-opengl/backends/platform/posix/posix.cpp	2010-06-23 19:34:07 UTC (rev 50189)
@@ -31,7 +31,6 @@
 #include "common/EventRecorder.h"
 
 #include "backends/saves/posix/posix-saves.h"
-  
 #include "backends/audiocd/sdl/sdl-audiocd.h"
 #include "backends/events/sdl/sdl-events.h"
 #include "backends/mutex/sdl/sdl-mutex.h"
@@ -43,76 +42,17 @@
 #define DEFAULT_CONFIG_FILE ".scummvmrc"
 
 OSystem_POSIX::OSystem_POSIX() {
+	// Initialze File System Factory
 	_fsFactory = new POSIXFilesystemFactory();
 }
 
-OSystem_POSIX::~OSystem_POSIX() {
-	deinit();
-}
-
 void OSystem_POSIX::initBackend() {
-	assert(!_inited);
-
-	uint32 sdlFlags = 0;
-
-	if (ConfMan.hasKey("disable_sdl_parachute"))
-		sdlFlags |= SDL_INIT_NOPARACHUTE;
-
-	if (SDL_Init(sdlFlags) == -1) {
-		error("Could not initialize SDL: %s", SDL_GetError());
-	}
-
-	// Enable unicode support if possible
-	SDL_EnableUNICODE(1);
-
-	// Create and hook up the mutex manager, if none exists yet (we check for
-	// this to allow subclasses to provide their own).
-	if (_mutexManager == 0) {
-		_mutexManager = new SdlMutexManager();
-	}
-
-	// 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 SdlEventManager(this);
-	}
-
-	// Create the savefile manager, if none exists yet (we check for this to
-	// allow subclasses to provide their own).
-	if (_savefileManager == 0) {
+	// Create the savefile manager
+	if (_savefileManager == 0)
 		_savefileManager = 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 == 0) {
-		if (SDL_InitSubSystem(SDL_INIT_AUDIO) == -1) {
-			error("Could not initialize SDL: %s", SDL_GetError());
-		}
-
-		_mixer = new SdlMixerImpl(this);
-	}
-
-	// 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) {
-		_timerManager = new SdlTimerManager();
-	}
-
-	// Create and hook up the graphics manager, if none exists yet (we check for
-	// this to allow subclasses to provide their own).
-	if (_graphicsManager == 0) {
-		_graphicsManager = new SdlGraphicsManager();
-	}
-
-	if (_audiocdManager == 0) {
-		_audiocdManager = (AudioCDManager *)new SdlAudioCDManager();
-	}
-
 	// Invoke parent implementation of this method
-	OSystem::initBackend();
-
-	_inited = true;
+	OSystem_SDL::initBackend();
 }
 
 Common::String OSystem_POSIX::getDefaultConfigFileName() {

Modified: scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.cpp
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.cpp	2010-06-23 17:30:18 UTC (rev 50188)
+++ scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.cpp	2010-06-23 19:34:07 UTC (rev 50189)
@@ -23,12 +23,6 @@
  *
  */
 
-#if defined(WIN32)
-#include <windows.h>
-// winnt.h defines ARRAYSIZE, but we want our own one... - this is needed before including util.h
-#undef ARRAYSIZE
-#endif
-
 #include "backends/platform/sdl/sdl.h"
 #include "common/archive.h"
 #include "common/config-manager.h"
@@ -36,11 +30,7 @@
 #include "common/util.h"
 #include "common/EventRecorder.h"
 
-#ifdef UNIX
-  #include "backends/saves/posix/posix-saves.h"
-#else
-  #include "backends/saves/default/default-saves.h"
-#endif
+#include "backends/saves/default/default-saves.h"
 #include "backends/audiocd/sdl/sdl-audiocd.h"
 #include "backends/events/sdl/sdl-events.h"
 #include "backends/mutex/sdl/sdl-mutex.h"
@@ -49,129 +39,73 @@
 
 #include "icons/scummvm.xpm"
 
-/*
- * Include header files needed for the getFilesystemFactory() method.
- */
-#if defined(__amigaos4__)
-	#include "backends/fs/amigaos4/amigaos4-fs-factory.h"
-#elif defined(UNIX)
-	#include "backends/fs/posix/posix-fs-factory.h"
-#elif defined(WIN32)
-	#include "backends/fs/windows/windows-fs-factory.h"
-#endif
-
-#if defined(UNIX)
-#ifdef MACOSX
-#define DEFAULT_CONFIG_FILE "Library/Preferences/ScummVM Preferences"
-#elif defined(SAMSUNGTV)
-#define DEFAULT_CONFIG_FILE "/dtv/usb/sda1/.scummvmrc"
-#else
-#define DEFAULT_CONFIG_FILE ".scummvmrc"
-#endif
-#else
 #define DEFAULT_CONFIG_FILE "scummvm.ini"
-#endif
 
-#if defined(MACOSX) || defined(IPHONE)
-#include "CoreFoundation/CoreFoundation.h"
-#endif
-
 #include <time.h>
 
-void OSystem_SDL::initBackend() {
-	assert(!_inited);
+OSystem_SDL::OSystem_SDL()
+	:
+	_inited(false),
+	_initedSDL(false) {
 
-	uint32 sdlFlags = 0;
+}
 
-	if (ConfMan.hasKey("disable_sdl_parachute"))
-		sdlFlags |= SDL_INIT_NOPARACHUTE;
+OSystem_SDL::~OSystem_SDL() {
+	deinit();
+}
 
-	if (SDL_Init(sdlFlags) == -1) {
-		error("Could not initialize SDL: %s", SDL_GetError());
-	}
+void OSystem_SDL::initBackend() {
+	// Check if backend has not been initialized
+	assert(!_inited);
 
-	// Enable unicode support if possible
-	SDL_EnableUNICODE(1);
+	// Initialize SDL
+	initSDL();
 
-	// Create and hook up the mutex manager, if none exists yet (we check for
-	// this to allow subclasses to provide their own).
-	if (_mutexManager == 0) {
+	// Creates the backend managers, if they don't exist yet (we check
+	// for this to allow subclasses to provide their own).
+	if (_mutexManager == 0)
 		_mutexManager = new SdlMutexManager();
-	}
 
-	// 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) {
+	if (_eventManager == 0)
 		_eventManager = new SdlEventManager(this);
-	}
 
-	// Create the savefile manager, if none exists yet (we check for this to
-	// allow subclasses to provide their own).
-	if (_savefileManager == 0) {
-#ifdef UNIX
-	_savefileManager = new POSIXSaveFileManager();
-#else
-	_savefileManager = new DefaultSaveFileManager();
-#endif
-	}
+	if (_savefileManager == 0)
+		_savefileManager = new DefaultSaveFileManager();
 
-	// Create and hook up the mixer, if none exists yet (we check for this to
-	// allow subclasses to provide their own).
-	if (_mixer == 0) {
-		if (SDL_InitSubSystem(SDL_INIT_AUDIO) == -1) {
-			error("Could not initialize SDL: %s", SDL_GetError());
-		}
-
+	if (_mixer == 0)
 		_mixer = new SdlMixerImpl(this);
-	}
 
-	// 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) {
+	if (_timerManager == 0)
 		_timerManager = new SdlTimerManager();
-	}
 
-	// Create and hook up the graphics manager, if none exists yet (we check for
-	// this to allow subclasses to provide their own).
-	if (_graphicsManager == 0) {
+	if (_graphicsManager == 0)
 		_graphicsManager = new SdlGraphicsManager();
-	}
 
-	if (_audiocdManager == 0) {
-		_audiocdManager = (AudioCDManager *)new SdlAudioCDManager();
-	}
+	if (_audiocdManager == 0)
+		_audiocdManager = new SdlAudioCDManager();
 
-#if !defined(MACOSX) && !defined(__SYMBIAN32__)
 	// Setup a custom program icon.
-	// Don't set icon on OS X, as we use a nicer external icon there.
-	// Don't for Symbian: it uses the EScummVM.aif file for the icon.
 	setupIcon();
-#endif
 
-	// Invoke parent implementation of this method
-	OSystem::initBackend();
-
 	_inited = true;
 }
 
-OSystem_SDL::OSystem_SDL()
-	:
-	_inited(false) {
-	#if defined(__amigaos4__)
-		_fsFactory = new AmigaOSFilesystemFactory();
-	#elif defined(UNIX)
-		_fsFactory = new POSIXFilesystemFactory();
-	#elif defined(WIN32)
-		_fsFactory = new WindowsFilesystemFactory();
-	#elif defined(__SYMBIAN32__)
-		// Do nothing since its handled by the Symbian SDL inheritance
-	#else
-		#error Unknown and unsupported FS backend
-	#endif
-}
+void OSystem_SDL::initSDL() {
+	// Check if SDL has not been initialized
+	if (!_initedSDL) {
+		uint32 sdlFlags = 0;
+		if (ConfMan.hasKey("disable_sdl_parachute"))
+			sdlFlags |= SDL_INIT_NOPARACHUTE;
 
-OSystem_SDL::~OSystem_SDL() {
-	deinit();
+		// Initialize SDL (SDL Subsystems are initiliazed in the corresponding sdl managers)
+		if (SDL_Init(sdlFlags) == -1)
+			error("Could not initialize SDL: %s", SDL_GetError());
+
+		// Enable unicode support if possible
+		SDL_EnableUNICODE(1);
+
+		_initedSDL = true;
+	}
 }
 
 void OSystem_SDL::addSysArchivesToSearchSet(Common::SearchSet &s, int priority) {
@@ -185,86 +119,11 @@
 	}
 #endif
 
-#ifdef MACOSX
-	// Get URL of the Resource directory of the .app bundle
-	CFURLRef fileUrl = CFBundleCopyResourcesDirectoryURL(CFBundleGetMainBundle());
-	if (fileUrl) {
-		// Try to convert the URL to an absolute path
-		UInt8 buf[MAXPATHLEN];
-		if (CFURLGetFileSystemRepresentation(fileUrl, true, buf, sizeof(buf))) {
-			// Success: Add it to the search path
-			Common::String bundlePath((const char *)buf);
-			s.add("__OSX_BUNDLE__", new Common::FSDirectory(bundlePath), priority);
-		}
-		CFRelease(fileUrl);
-	}
-
-#endif
-
 }
 
 Common::String OSystem_SDL::getDefaultConfigFileName() {
 	char configFile[MAXPATHLEN];
-#if defined (WIN32) && !defined(_WIN32_WCE) && !defined(__SYMBIAN32__)
-	OSVERSIONINFO win32OsVersion;
-	ZeroMemory(&win32OsVersion, sizeof(OSVERSIONINFO));
-	win32OsVersion.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-	GetVersionEx(&win32OsVersion);
-	// Check for non-9X version of Windows.
-	if (win32OsVersion.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS) {
-		// Use the Application Data directory of the user profile.
-		if (win32OsVersion.dwMajorVersion >= 5) {
-			if (!GetEnvironmentVariable("APPDATA", configFile, sizeof(configFile)))
-				error("Unable to access application data directory");
-		} else {
-			if (!GetEnvironmentVariable("USERPROFILE", configFile, sizeof(configFile)))
-				error("Unable to access user profile directory");
-
-			strcat(configFile, "\\Application Data");
-			CreateDirectory(configFile, NULL);
-		}
-
-		strcat(configFile, "\\ScummVM");
-		CreateDirectory(configFile, NULL);
-		strcat(configFile, "\\" DEFAULT_CONFIG_FILE);
-
-		FILE *tmp = NULL;
-		if ((tmp = fopen(configFile, "r")) == NULL) {
-			// Check windows directory
-			char oldConfigFile[MAXPATHLEN];
-			GetWindowsDirectory(oldConfigFile, MAXPATHLEN);
-			strcat(oldConfigFile, "\\" DEFAULT_CONFIG_FILE);
-			if ((tmp = fopen(oldConfigFile, "r"))) {
-				strcpy(configFile, oldConfigFile);
-
-				fclose(tmp);
-			}
-		} else {
-			fclose(tmp);
-		}
-	} else {
-		// Check windows directory
-		GetWindowsDirectory(configFile, MAXPATHLEN);
-		strcat(configFile, "\\" DEFAULT_CONFIG_FILE);
-	}
-#elif defined(UNIX)
-	// On UNIX type systems, by default we store the config file inside
-	// to the HOME directory of the user.
-	//
-	// GP2X is Linux based but Home dir can be read only so do not use
-	// it and put the config in the executable dir.
-	//
-	// On the iPhone, the home dir of the user when you launch the app
-	// from the Springboard, is /. Which we don't want.
-	const char *home = getenv("HOME");
-	if (home != NULL && strlen(home) < MAXPATHLEN)
-		snprintf(configFile, MAXPATHLEN, "%s/%s", home, DEFAULT_CONFIG_FILE);
-	else
-		strcpy(configFile, DEFAULT_CONFIG_FILE);
-#else
 	strcpy(configFile, DEFAULT_CONFIG_FILE);
-#endif
-
 	return configFile;
 }
 
@@ -319,7 +178,6 @@
 
 void OSystem_SDL::quit() {
 	deinit();
-
 	exit(0);
 }
 

Modified: scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.h
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.h	2010-06-23 17:30:18 UTC (rev 50188)
+++ scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.h	2010-06-23 19:34:07 UTC (rev 50189)
@@ -42,12 +42,9 @@
 
 	virtual void initBackend();
 
-	// Define all hardware keys for keymapper
 	virtual Common::HardwareKeySet *getHardwareKeySet();
 
-	// Quit
-	virtual void quit(); // overloaded by CE backend
-
+	virtual void quit();
 	virtual void deinit();
 
 	virtual void setWindowCaption(const char *caption);
@@ -56,7 +53,7 @@
 	virtual Common::SeekableReadStream *createConfigReadStream();
 	virtual Common::WriteStream *createConfigWriteStream();
 
-	SdlGraphicsManager *getGraphicsManager();
+	virtual SdlGraphicsManager *getGraphicsManager();
 
 	virtual bool pollEvent(Common::Event &event);
 
@@ -66,9 +63,12 @@
 
 protected:
 	bool _inited;
+	bool _initedSDL;
 
-	void setupIcon();
+	virtual void initSDL();
 
+	virtual void setupIcon();
+
 	virtual Common::String getDefaultConfigFileName();
 };
 

Modified: scummvm/branches/gsoc2010-opengl/backends/platform/win32/win32.cpp
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/platform/win32/win32.cpp	2010-06-23 17:30:18 UTC (rev 50188)
+++ scummvm/branches/gsoc2010-opengl/backends/platform/win32/win32.cpp	2010-06-23 19:34:07 UTC (rev 50189)
@@ -45,77 +45,10 @@
 #define DEFAULT_CONFIG_FILE "scummvm.ini"
 
 OSystem_Win32::OSystem_Win32() {
+	// Initialze File System Factory
 	_fsFactory = new WindowsFilesystemFactory();
 }
 
-void OSystem_Win32::initBackend() {
-	assert(!_inited);
-
-	uint32 sdlFlags = 0;
-
-	if (ConfMan.hasKey("disable_sdl_parachute"))
-		sdlFlags |= SDL_INIT_NOPARACHUTE;
-
-	if (SDL_Init(sdlFlags) == -1) {
-		error("Could not initialize SDL: %s", SDL_GetError());
-	}
-
-	// Enable unicode support if possible
-	SDL_EnableUNICODE(1);
-
-	// Create and hook up the mutex manager, if none exists yet (we check for
-	// this to allow subclasses to provide their own).
-	if (_mutexManager == 0) {
-		_mutexManager = new SdlMutexManager();
-	}
-
-	// 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 SdlEventManager(this);
-	}
-
-	// Create the savefile manager, if none exists yet (we check for this to
-	// allow subclasses to provide their own).
-	if (_savefileManager == 0) {
-		_savefileManager = new DefaultSaveFileManager();
-	}
-
-	// Create and hook up the mixer, if none exists yet (we check for this to
-	// allow subclasses to provide their own).
-	if (_mixer == 0) {
-		if (SDL_InitSubSystem(SDL_INIT_AUDIO) == -1) {
-			error("Could not initialize SDL: %s", SDL_GetError());
-		}
-
-		_mixer = new SdlMixerImpl(this);
-	}
-
-	// 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) {
-		_timerManager = new SdlTimerManager();
-	}
-
-	// Create and hook up the graphics manager, if none exists yet (we check for
-	// this to allow subclasses to provide their own).
-	if (_graphicsManager == 0) {
-		_graphicsManager = new SdlGraphicsManager();
-	}
-
-	if (_audiocdManager == 0) {
-		_audiocdManager = (AudioCDManager *)new SdlAudioCDManager();
-	}
-
-	// Setup a custom program icon.
-	setupIcon();
-
-	// Invoke parent implementation of this method
-	OSystem::initBackend();
-
-	_inited = true;
-}
-
 Common::String OSystem_Win32::getDefaultConfigFileName() {
 	char configFile[MAXPATHLEN];
 

Modified: scummvm/branches/gsoc2010-opengl/backends/platform/win32/win32.h
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/platform/win32/win32.h	2010-06-23 17:30:18 UTC (rev 50188)
+++ scummvm/branches/gsoc2010-opengl/backends/platform/win32/win32.h	2010-06-23 19:34:07 UTC (rev 50189)
@@ -33,8 +33,6 @@
 	OSystem_Win32();
 	~OSystem_Win32() {}
 
-	void initBackend();
-
 protected:
 	Common::String getDefaultConfigFileName();
 };


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