summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/nds/touchscreen/parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/arm/nds/touchscreen/parser.c')
-rw-r--r--c/src/lib/libbsp/arm/nds/touchscreen/parser.c205
1 files changed, 0 insertions, 205 deletions
diff --git a/c/src/lib/libbsp/arm/nds/touchscreen/parser.c b/c/src/lib/libbsp/arm/nds/touchscreen/parser.c
deleted file mode 100644
index b103c615d1..0000000000
--- a/c/src/lib/libbsp/arm/nds/touchscreen/parser.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * RTEMS for Nintendo DS input parser.
- *
- * Copyright (c) 2008 by Matthieu Bucchianeri <mbucchia@gmail.com>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- *
- * http://www.rtems.org/license/LICENSE
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <rtems.h>
-
-#include <nds.h>
-
-#include <rtems/mw_uid.h>
-
-/*
- * from console/console.c
- */
-
-extern void console_push (char c);
-extern void register_kbd_msg_queue (char *q_name);
-extern void unregister_kbd_msg_queue (void);
-
-/*
- * from reco.c
- */
-
-extern char PA_CheckLetter (int down, int x, int y);
-
-/*
- * message queue for touchscreen and graffiti events.
- */
-extern void register_mou_msg_queue (char *q_name);
-extern void unregister_mou_msg_queue (void);
-static rtems_id mou_queue_id = 0;
-static rtems_id kbd_queue_id = 0;
-
-/*
- * old position.
- */
-
-static int old_x = 0;
-static int old_y = 0;
-static int old_btns = 0;
-
-/*
- * hand mode.
- */
-
-static int hand = 0;
-
-/*
- * Shared methods
- */
-void update_touchscreen (void);
-void touchscreen_sethand (int h);
-
-/*
- * update touchscreen position
- */
-void
-update_touchscreen (void)
-{
- static int graffiti = 0;
- struct MW_UID_MESSAGE m;
- int x, y, k, kh, btns = 0;
- touchPosition pos;
- char c;
-
- /* update keypad & touchscreen */
- scanKeys ();
- pos = touchReadXY ();
- x = pos.px;
- y = pos.py;
- k = keysDown ();
- kh = keysHeld ();
-
- /* check for character recognition */
- if ((kh & KEY_L) || (kh & KEY_R)) {
- graffiti = 1;
- c = PA_CheckLetter ((kh & KEY_TOUCH ? 1 : 0), x, y);
- if (c) {
- /* signal the console driver */
- console_push (c);
- if (kbd_queue_id != 0) {
- /* send the read character */
- m.type = MV_UID_KBD;
- m.m.kbd.code = c;
- m.m.kbd.modifiers = 0;
- m.m.kbd.mode = MV_KEY_MODE_ASCII;
- rtems_message_queue_send (kbd_queue_id, (void *) &m,
- sizeof (struct MW_UID_MESSAGE));
- }
- }
- } else {
- if (graffiti == 1) {
- x = old_x;
- y = old_y;
- }
- graffiti = 0;
- }
-
- if (mou_queue_id == 0)
- return;
-
- if (hand == 1) {
- if (k & KEY_LEFT) {
- btns = MV_BUTTON_LEFT;
- }
- if (k & KEY_RIGHT) {
- btns = MV_BUTTON_RIGHT;
- }
- } else {
- if (k & KEY_A) {
- btns = MV_BUTTON_LEFT;
- }
- if (k & KEY_B) {
- btns = MV_BUTTON_RIGHT;
- }
- }
-
- if (!((kh & KEY_L) || (kh & KEY_R)) && (kh & KEY_TOUCH)
- && (x != old_x || y != old_y || btns)) {
- /* send the read position */
- m.type = MV_UID_ABS_POS;
- old_btns = m.m.pos.btns = btns;
- old_x = m.m.pos.x = x;
- old_y = m.m.pos.y = y;
- m.m.pos.z = 0;
- rtems_message_queue_send (mou_queue_id, (void *) &m,
- sizeof (struct MW_UID_MESSAGE));
- }
-}
-
-/*
- * register a message queue for touchscreen events.
- */
-
-void
-register_mou_msg_queue (char *q_name)
-{
- rtems_name queue_name;
- rtems_status_code status;
-
- queue_name = rtems_build_name (q_name[0], q_name[1], q_name[2], q_name[3]);
- status = rtems_message_queue_ident (queue_name, RTEMS_LOCAL, &mou_queue_id);
- if (status != RTEMS_SUCCESSFUL) {
- printk ("[!] cannot create queue %d\n", status);
- return;
- }
-
- update_touchscreen ();
-}
-
-/*
- * unregister the message queue.
- */
-
-void
-unregister_mou_msg_queue (void)
-{
- /* nothing here */
-}
-
-/*
- * register a message queue for graffiti events.
- */
-
-void
-register_kbd_msg_queue (char *q_name)
-{
- rtems_name queue_name;
- rtems_status_code status;
-
- queue_name = rtems_build_name (q_name[0], q_name[1], q_name[2], q_name[3]);
- status = rtems_message_queue_ident (queue_name, RTEMS_LOCAL, &kbd_queue_id);
- if (status != RTEMS_SUCCESSFUL) {
- printk ("[!] cannot create queue %d\n", status);
- return;
- }
-}
-
-/*
- * unregister the message queue.
- */
-
-void
-unregister_kbd_msg_queue (void)
-{
- /* nothing here */
-}
-
-/*
- * set hand mode.
- */
-
-void
-touchscreen_sethand (int h)
-{
- hand = h;
-}