[Scummvm-cvs-logs] SF.net SVN: scummvm: [32593] scummvm/trunk/backends/platform/wii

dhewg at users.sourceforge.net dhewg at users.sourceforge.net
Sat Jun 7 17:37:17 CEST 2008


Revision: 32593
          http://scummvm.svn.sourceforge.net/scummvm/?rev=32593&view=rev
Author:   dhewg
Date:     2008-06-07 08:37:17 -0700 (Sat, 07 Jun 2008)

Log Message:
-----------
added support for reset and power buttons

Modified Paths:
--------------
    scummvm/trunk/backends/platform/wii/main.cpp
    scummvm/trunk/backends/platform/wii/osystem.cpp
    scummvm/trunk/backends/platform/wii/osystem.h
    scummvm/trunk/backends/platform/wii/osystem_events.cpp

Modified: scummvm/trunk/backends/platform/wii/main.cpp
===================================================================
--- scummvm/trunk/backends/platform/wii/main.cpp	2008-06-07 14:45:01 UTC (rev 32592)
+++ scummvm/trunk/backends/platform/wii/main.cpp	2008-06-07 15:37:17 UTC (rev 32593)
@@ -36,6 +36,17 @@
 extern "C" {
 #endif
 
+bool reset_btn_pressed = false;
+bool power_btn_pressed = false;
+
+void reset_cb(void) {
+	reset_btn_pressed = true;
+}
+
+void power_cb(void) {
+	power_btn_pressed = true;
+}
+
 int main(int argc, char *argv[]) {
 	s32 res;
 
@@ -50,6 +61,9 @@
 
 	printf("startup\n");
 
+	SYS_SetResetCallback(reset_cb);
+	SYS_SetPowerCallback(power_cb);
+
 	if (!fatInitDefault()) {
 		printf("fatInitDefault failed\n");
 	} else {
@@ -77,6 +91,11 @@
 		fatUnsafeUnmount(PI_DEFAULT);
 	}
 
+	if (power_btn_pressed) {
+		printf("shutting down\n");
+		SYS_ResetSystem(SYS_POWEROFF, 0, 0);
+	}
+
 	printf("reloading\n");
 
 	return res;

Modified: scummvm/trunk/backends/platform/wii/osystem.cpp
===================================================================
--- scummvm/trunk/backends/platform/wii/osystem.cpp	2008-06-07 14:45:01 UTC (rev 32592)
+++ scummvm/trunk/backends/platform/wii/osystem.cpp	2008-06-07 15:37:17 UTC (rev 32593)
@@ -63,6 +63,8 @@
 	_mouseKeyColor(0),
 	_mouseCursor(NULL),
 
+	_event_quit(false),
+
 	_savefile(NULL),
 	_mixer(NULL),
 	_timer(NULL) {

Modified: scummvm/trunk/backends/platform/wii/osystem.h
===================================================================
--- scummvm/trunk/backends/platform/wii/osystem.h	2008-06-07 14:45:01 UTC (rev 32592)
+++ scummvm/trunk/backends/platform/wii/osystem.h	2008-06-07 15:37:17 UTC (rev 32593)
@@ -37,6 +37,17 @@
 #include <gccore.h>
 #include <ogcsys.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern bool reset_btn_pressed;
+extern bool power_btn_pressed;
+
+#ifdef __cplusplus
+}
+#endif
+
 class OSystem_Wii : public OSystem {
 private:
 	s64 _startup_time;
@@ -69,6 +80,8 @@
 	u8 _mouseKeyColor;
 	u8 *_mouseCursor;
 
+	bool _event_quit;
+
 	u32 _lastPadCheck;
 
 	void initGfx();

Modified: scummvm/trunk/backends/platform/wii/osystem_events.cpp
===================================================================
--- scummvm/trunk/backends/platform/wii/osystem_events.cpp	2008-06-07 14:45:01 UTC (rev 32592)
+++ scummvm/trunk/backends/platform/wii/osystem_events.cpp	2008-06-07 15:37:17 UTC (rev 32593)
@@ -140,6 +140,15 @@
 	} while (0)
 
 bool OSystem_Wii::pollEvent(Common::Event &event) {
+	if ((reset_btn_pressed || power_btn_pressed) && !_event_quit) {
+		_event_quit = true;
+		event.type = Common::EVENT_QUIT;
+
+		printf("quit event\n");
+
+		return true;
+	}
+
 	u32 bd, bh, bu;
 
 	PAD_ScanPads();


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