diff options
Diffstat (limited to 'backends')
| -rw-r--r-- | backends/cloud/cloudthread.cpp | 21 | ||||
| -rw-r--r-- | backends/cloud/cloudthread.h | 11 | ||||
| -rw-r--r-- | backends/platform/sdl/sdl.cpp | 7 | 
3 files changed, 34 insertions, 5 deletions
diff --git a/backends/cloud/cloudthread.cpp b/backends/cloud/cloudthread.cpp index f8d93d2baa..813354f43f 100644 --- a/backends/cloud/cloudthread.cpp +++ b/backends/cloud/cloudthread.cpp @@ -23,6 +23,8 @@  #include "cloudthread.h"  #include "common/debug.h"  #include "common/json.h" +#include "common/system.h" +#include "common/timer.h"  void example1();  void example2(); @@ -30,10 +32,10 @@ void example3();  void cloudThread(void *thread) {  	CloudThread *cloudThread = (CloudThread *)thread; -	cloudThread->work(); +	cloudThread->handler();  }; -void CloudThread::work() { +void CloudThread::handler() {  	if (_firstTime) {  		_firstTime = false; @@ -43,6 +45,21 @@ void CloudThread::work() {  	} else { }  } +void CloudThread::setTimeout(int interval) { +	Common::TimerManager *manager = g_system->getTimerManager(); +	if (!manager->installTimerProc(cloudThread, interval, this, "Cloud Thread")) +		warning("Failed to create cloud thread"); +} + +void CloudThread::unsetTimeout() { +	Common::TimerManager *manager = g_system->getTimerManager(); +	manager->removeTimerProc(cloudThread); +} + +void CloudThread::start() { +	setTimeout(1000000); //in one second +} +  /// SimpleJSON examples:  using Common::JSON; diff --git a/backends/cloud/cloudthread.h b/backends/cloud/cloudthread.h index ce448b7274..334a163dde 100644 --- a/backends/cloud/cloudthread.h +++ b/backends/cloud/cloudthread.h @@ -23,14 +23,19 @@  #ifndef BACKENDS_CLOUD_CLOUDTHREAD_H  #define BACKENDS_CLOUD_CLOUDTHREAD_H -void cloudThread(void *thread); //this one is passed to TimerManager in main() -  class CloudThread { +	friend void cloudThread(void*); //calls private handler() +  	bool _firstTime; + +	void handler(); +	void setTimeout(int interval); +	void unsetTimeout(); +  public:  	CloudThread(): _firstTime(true) {}; -	void work(); +	void start();  };  #endif diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp index dca6891fef..84aa5c8421 100644 --- a/backends/platform/sdl/sdl.cpp +++ b/backends/platform/sdl/sdl.cpp @@ -33,6 +33,7 @@  #include "gui/EventRecorder.h"  #include "common/taskbar.h"  #include "common/textconsole.h" +#include "backends/cloud/cloudthread.h"  #include "backends/saves/default/default-saves.h" @@ -158,6 +159,12 @@ void OSystem_SDL::init() {  		_taskbarManager = new Common::TaskbarManager();  #endif +//TODO: define USE_CLOUD +//#if defined(USE_CLOUD) +	if (_cloudThread == 0) +		_cloudThread = new CloudThread(); +//#endif +  }  void OSystem_SDL::initBackend() {  | 
