[Scummvm-cvs-logs] SF.net SVN: scummvm: [26188] scummvm/trunk/backends/platform/ds/arm9/source

agent-q at users.sourceforge.net agent-q at users.sourceforge.net
Sun Mar 18 02:45:15 CET 2007


Revision: 26188
          http://scummvm.svn.sourceforge.net/scummvm/?rev=26188&view=rev
Author:   agent-q
Date:     2007-03-17 18:45:14 -0700 (Sat, 17 Mar 2007)

Log Message:
-----------
adding key scanning functions compatible with ScummVM's IPC

Added Paths:
-----------
    scummvm/trunk/backends/platform/ds/arm9/source/keys.cpp
    scummvm/trunk/backends/platform/ds/arm9/source/keys.h

Added: scummvm/trunk/backends/platform/ds/arm9/source/keys.cpp
===================================================================
--- scummvm/trunk/backends/platform/ds/arm9/source/keys.cpp	                        (rev 0)
+++ scummvm/trunk/backends/platform/ds/arm9/source/keys.cpp	2007-03-18 01:45:14 UTC (rev 26188)
@@ -0,0 +1,151 @@
+/*------------------------------------------------------------------------------
+	$Id: keys.c,v 1.13 2006/01/12 09:10:47 wntrmute Exp $
+
+	key input code -- provides slightly higher level input forming
+
+	Copyright (C) 2005
+			Christian Auby (DesktopMan)
+			Dave Murphy (WinterMute)
+
+	This software is provided 'as-is', without any express or implied
+	warranty.  In no event will the authors be held liable for any
+	damages arising from the use of this software.
+
+	Permission is granted to anyone to use this software for any
+	purpose, including commercial applications, and to alter it and
+	redistribute it freely, subject to the following restrictions:
+
+	1.	The origin of this software must not be misrepresented; you
+		must not claim that you wrote the original software. If you use
+		this software in a product, an acknowledgment in the product
+		documentation would be appreciated but is not required.
+	2.	Altered source versions must be plainly marked as such, and
+		must not be misrepresented as being the original software.
+	3.	This notice may not be removed or altered from any source
+		distribution.
+
+	$Log: keys.c,v $
+	Revision 1.13  2006/01/12 09:10:47  wntrmute
+	Added key repeat as suggested by pepsiman
+	
+	Revision 1.12  2005/11/27 12:30:25  wntrmute
+	reverted to correct hardware REGisters
+	
+	Revision 1.11  2005/11/27 07:48:45  joatski
+	Renamed REG_KEYINPUT and REG_KEYCNT back to KEYS and KEYS_CR, as the alternatives are defined in registers_alt.h.
+	Changed function returns to uint32
+	
+	Revision 1.10  2005/11/03 23:38:49  wntrmute
+	don't use enum for key function returns
+	
+	Revision 1.9  2005/10/13 16:30:11  dovoto
+	Changed KEYPAD_BITS to a typedef enum, this resolved some issues with multiple redefinition of KEYPAD_BITS (although this error did not allways occur).
+	
+	Revision 1.8  2005/10/03 21:21:59  wntrmute
+	use enum types
+	
+	Revision 1.7  2005/09/07 18:06:27  wntrmute
+	use new register names
+	
+	Revision 1.6  2005/08/23 17:06:10  wntrmute
+	converted all endings to unix
+
+	Revision 1.5  2005/08/03 18:07:55  wntrmute
+	don't use nds.h
+
+	Revision 1.4  2005/07/25 02:31:07  wntrmute
+	made local variables static
+	added proper header to keys.h
+
+	Revision 1.3  2005/07/25 02:19:01  desktopman
+	Added support for KEY_LID in keys.c.
+	Moved KEYS_CUR from header to source file.
+	Changed from the custom abs() to stdlib.h's abs().
+
+	Revision 1.2  2005/07/14 08:00:57  wntrmute
+	resynchronise with ndslib
+
+
+------------------------------------------------------------------------------*/
+
+#include <stdlib.h>
+
+#include <NDS/scummvm_ipc.h>
+#include <nds/system.h>
+#include <nds/arm9/input.h>
+
+//------------------------------------------------------------------------------
+
+#define KEYS_CUR (( ((~REG_KEYINPUT)&0x3ff) | (((~IPC->buttons)&3)<<10) | (((~IPC->buttons)<<6) & (KEY_TOUCH|KEY_LID) ))^KEY_LID)
+
+namespace DS {
+
+static uint16 keys = 0;
+static uint16 keysold = 0;
+static uint16 keysrepeat = 0;
+
+static u8 delay = 60, repeat = 30, count = 60;
+
+static uint16 oldx = 0;
+static uint16 oldy = 0;
+
+//------------------------------------------------------------------------------
+void scanKeys(void) {
+//------------------------------------------------------------------------------
+	keysold = keys;
+	keys = KEYS_CUR;
+
+	oldx = IPC->touchXpx;
+	oldy = IPC->touchYpx;
+    if ( delay != 0 ) {
+        if ( keys != keysold ) {
+            count = delay ;
+            keysrepeat = keysDown() ;
+        }
+        count--;
+        if ( count == 0 ) {
+            count = repeat;
+            keysrepeat = keys;
+        }
+    }
+}
+
+//------------------------------------------------------------------------------
+uint32 keysHeld(void) {
+//------------------------------------------------------------------------------
+	return keys;
+}
+
+//------------------------------------------------------------------------------
+uint32 keysDown(void) {
+//------------------------------------------------------------------------------
+	return (keys ^ keysold) & keys;
+}
+
+//------------------------------------------------------------------------------
+uint32 keysDownRepeat(void) {
+//------------------------------------------------------------------------------
+	uint32 tmp = keysrepeat;
+
+    keysrepeat = 0;
+
+    return tmp;
+}
+
+//------------------------------------------------------------------------------
+void keysSetRepeat( u8 setDelay, u8 setRepeat ) {
+//------------------------------------------------------------------------------
+    delay = setDelay ;
+    repeat = setRepeat ;
+    count = delay ;
+    keysrepeat = 0 ;
+}
+
+//------------------------------------------------------------------------------
+uint32 keysUp(void) {
+//------------------------------------------------------------------------------
+	return (keys ^ keysold) & (~keys);
+}
+
+
+} // namespace ds
\ No newline at end of file


Property changes on: scummvm/trunk/backends/platform/ds/arm9/source/keys.cpp
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Added: scummvm/trunk/backends/platform/ds/arm9/source/keys.h
===================================================================
--- scummvm/trunk/backends/platform/ds/arm9/source/keys.h	                        (rev 0)
+++ scummvm/trunk/backends/platform/ds/arm9/source/keys.h	2007-03-18 01:45:14 UTC (rev 26188)
@@ -0,0 +1,13 @@
+
+
+
+namespace DS {
+
+void scanKeys(void);
+uint32 keysHeld(void);
+uint32 keysDown(void);
+uint32 keysDownRepeat(void);
+void keysSetRepeat( u8 setDelay, u8 setRepeat );
+uint32 keysUp(void);
+
+}


Property changes on: scummvm/trunk/backends/platform/ds/arm9/source/keys.h
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native


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