[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