annotate src/ui/mfw/ti1_key.c @ 289:4d203ef0eb4b

implement vibrator on/off control driver The piece implemented here is just the HW on/off driver; on top of this driver there will be a VIBR service (to be implemented in RiViera land) that will implement vibration pulse trains.
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 26 Mar 2022 17:03:36 +0000
parents 0947a816580c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 | PROJECT: MMI-Framework (8417) $Workfile:: ti1_key.c $|
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 | $Author:: Es $ CONDAT GmbH $Revision:: 13 $|
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 | CREATED: 28.01.99 $Modtime:: 21.01.00 15:05 $|
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 | STATE : code |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 MODULE : TI1_KEY
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 PURPOSE : keyboard driver interface (TI1 VERSION)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 EXPORT :
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 TO DO :
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 History:
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 Sep 18, 2006 REF: OMAPS00094426 - x0039928
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
20 Description: Locosto - KPD Release event would NOT be generated if a key is pressed
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 several times in a short period of time
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 Solution : If the long press timer expires mmi checks the bsp kpd status and accordingly
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 sets long press bit in the key map.
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
25
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 #define ENTITY_MFW
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 #include "typedefs.h"
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 #include "vsi.h"
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 #include "custom.h"
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 #include "gsm.h"
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 #include "prim.h"
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 #include <string.h>
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 #include "mfw_mfw.h"
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 #include "mfw_sys.h"
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 #include "mfw_kbd.h"
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 #include "gdi.h"
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 #include "kbd.h"
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 #include "drv_key.h"
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 #include "ti1_key.h"
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 #include "kpd/kpd_api.h"
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 #define POWER_KEY 25
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 extern void mmiInit(void);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 /*
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 * Marcus: Issue 811: 05:09/2002:
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 * Moved kbd_map, simkbd_map and config_map to \g23m\Condat\COM\SRC\DRIVER\keypad.c
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 /* driver callback */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 static void kbdCb (drv_SignalID_Type *signal_params);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 UBYTE keypad_initialize (void);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 void sendKeyInd( T_KPD_VIRTUAL_KEY_ID virtual_key_id,
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
63 T_KPD_KEY_STATE key_state,
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
64 T_KPD_PRESS_STATE press_state);
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 static void (*sig) (char,char) = 0; /* kbd signaling function */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 static char *keyMap = (char *) kbd_map; /* current keyboard mapping */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 T_KPD_SUBSCRIBER subscriber_p; /* keep the subscription indentification value */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 typedef struct
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 U32 msg_id;
213
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
74 void (*callback_func)(void *);
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
75 U16 src_addr_id;
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
76 U16 dest_addr_id;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 } T_RV_CHECK;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78
213
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
79 /*
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
80 * New FreeCalypso way of launching "full on" operation: Switch_ON()
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
81 * will call fchs_pwon_button_boot() when the switch-on cause is the
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
82 * PWON button (as opposed to charging or test reset), the latter
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
83 * function will post a different version of the MMI_KEYPAD_IND
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
84 * primitive to MMI task, drvKeyUpDown() will get called as a result
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
85 * of this special MMI_KEYPAD_IND, and the latter function calls
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
86 * mmiInit(). Here we define the special "key code" used in the
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
87 * MMI_KEYPAD_IND primitive to pass this event to the MMI task.
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
88 */
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
89
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
90 #define SPECIAL_KEYCODE_PWON 0x81
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 /* JVJ #1874 - new function to initialize the power key*/
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 /*
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 | PROJECT : MMI-Framework (8417) MODULE : key_power_init |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 | STATE : code ROUTINE : key_power_init |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 PURPOSE : initialize the power key handler in the TI driver
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 void key_power_init()
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 kbd_Init(kbdCb);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 /*
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 | PROJECT : MMI-Framework (8417) MODULE : ti1_key |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 | STATE : code ROUTINE : keyInit |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 PURPOSE : initialize keyboard driver
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 void keyInit (void (*s)(char,char))
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 sig = s;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 /*
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 * read keyboard mapping from EEPROM.
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126 * if this fails set keyboard mapping with default values.
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 *
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 * EEPROM reading not now !!!
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129 */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130 keyMap = (char *) kbd_map;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
132 keypad_initialize ();
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136 /*
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138 | PROJECT : MMI-Framework (8417) MODULE : ti1_key |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 | STATE : code ROUTINE : keyExit |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 PURPOSE : finalize keyboard driver
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 void keyExit (void)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 sig = 0;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149
213
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
150 //unsubscribe the client from the keypad driver
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 kpd_unsubscribe (&subscriber_p);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 /*
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 | PROJECT : MMI-Framework (8417) MODULE : ti1_key |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 | STATE : code ROUTINE : getKeyIndex |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 PURPOSE : returns the index to the key provided (or -1 if no match)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 char drvGetKeyIndex( char key)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164 {
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
165 int i;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 for (i = 0; i < 32; i++)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169 if (keyMap[i] == key)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170 {
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
171 return (i);
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 return (char)(0xFE); //No match./*a0393213 warnings removal - -1 changed to 0xFE*/
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 /*
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181 | PROJECT : MMI-Framework (8417) MODULE : ti1_key |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182 | STATE : code ROUTINE : drvKeyUpDown |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
184
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185 PURPOSE : handle key event (called from keyboard)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
186
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187 */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189 void drvKeyUpDown (char upDown, char key)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
191 TRACE_EVENT_P2("drvKeyUpDown : key = %d : state = %x", key, upDown);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
192
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
193 if (key != (char)0)
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
194 {
213
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
195 if ((key >= 48) && (key <= 57))
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
196 {
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
197 key -= 47;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
198 }
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
199 else
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
200 {
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
201 switch(key)
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
202 {
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
203 case 35:
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
204 key = (char)18;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
205 break;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
207 case 42:
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
208 key = (char)17;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
209 break;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
210
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
211 case 45:
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
212 key = (char)11;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
213 break;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
214
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
215 case 67:
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
216 key = (char)13;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
217 break;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
218
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
219 case 69:
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
220 key = (char)25;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
221 break;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
222
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
223 case 86:
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
224 key = (char)16;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
225 break;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
226
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
227 case 94:
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
228 key = (char)14;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
229 break;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
230
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
231 case 97:
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
232 key = (char)15;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
233 break;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
234
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
235 case 98:
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
236 key = (char)12;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
237 break;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
238
213
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
239 /* FreeCalypso new way */
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
240 case SPECIAL_KEYCODE_PWON:
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
241 mmiInit();
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
242 return;
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
243
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
244 default:
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
245 key = (char)0;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
246 break;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
247 }
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
248 }
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
249
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
250 kbd_putMakeAndKey( upDown, key);
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
251 }
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
252
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
253 if (!sig) return; /* no event handler */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
254
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
255 sig((char)(!upDown),0);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
256
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
257 return;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
258 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
259
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
260
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
261 /*
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
262 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
263 | PROJECT : MMI-Framework (8417) MODULE : ti1_key |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
264 | STATE : code ROUTINE : mfw_keystroke |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
265 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
266
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
267 PURPOSE : handle keystroke primitive (called from aci-pei)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
268 keystroke sent via 'PEI-CONFIG'-primitive
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
269 used in Test cases and by RT;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
270
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
271 */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
272
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
273 void mfw_keystroke (char * key)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
274 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
275 char i; //, number; // RAVI
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
276
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
277 if (!sig) return; /* no event handler */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
278 if (!key) return; /* no valid key */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
279
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
280 // number = 0; // RAVI
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
281 while (*key)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
282 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
283 if (!strcmp(key,"#*43*1#"))
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
284 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
285 // EF we need to place the key code into the buffer
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
286 // together with the inverse of the key status, and then call sig
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
287 kbd_putMakeAndKey(0,19); /* simulate HUP */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
288 sig(0,0);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
289 kbd_putMakeAndKey(1,19);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
290 sig(0,0);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
291 key += 7;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
292 continue;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
293 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
294
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
295 if (!strcmp(key,"#*43*0#"))
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
296 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
297 kbd_putMakeAndKey(0,18); /* simulate CALL */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
298 sig(0,0);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
299 kbd_putMakeAndKey(1,18);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
300 sig(0,0);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
301 key += 7;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
302 continue;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
303 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
304
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
305 for (i = 0; i < NUM_KPD_KEYS; i++)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
306 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
307 if (!strncmp(key, config_map[i], strlen(config_map[i])))
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
308 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
309 kbd_putMakeAndKey(0,i); /* add key down event */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
310 sig(0,0);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
311 kbd_putMakeAndKey(1,i); /* assume key down event */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
312 sig(0,0);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
313 key += strlen(config_map[i]);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
314 break;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
315 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
316 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
317 if (i < NUM_KPD_KEYS)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
318 continue; /* found config code */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
319
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
320 key++;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
321 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
322 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
323
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
324 void mfw_keystroke_long (char * key, UBYTE mode) /* long pressed key */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
325 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
326 char i; // , number; // RAVI
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
327
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
328 if (!sig) return; /* no event handler */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
329 if (!key) return; /* no valid key */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
330
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
331 // number = 0; // RAVI
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
332 while (strlen(key))
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
333 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
334 for (i = 0; i < NUM_KPD_KEYS; i++)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
335 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
336 if (!strcmp(key,config_map[i]))
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
337 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
338 if (mode)
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
339 {
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
340 kbd_putMakeAndKey(0,i); /* assume key down event */
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
341 sig(0,0);
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
342 }
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
343 else
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
344 {
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
345 kbd_putMakeAndKey(1,i); /* assume key up event */
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
346 sig(0,0);
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
347 }
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
348 return;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
349 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
350 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
351 return;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
352 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
353 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
354
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
355
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
356 /*
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
357 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
358 | PROJECT : MMI-Framework (8417) MODULE : ti1_key |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
359 | STATE : code ROUTINE : kbd_callback |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
360 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
361
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
362 PURPOSE : Called by keyboard driver
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
363
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
364 */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
365
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
366 #define hCommACI _ENTITY_PREFIXED(hCommACI)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
367
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
368 static void kbdCb (drv_SignalID_Type *signal_params)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
369 {
213
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
370 ULONG signal_raw;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
371 U16 signal_high;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
372 U16 signal_low;
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
373 U8 key_code;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
374 U8 key_state;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
375
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
376 int nPresses; //Number of key presses still in the queue
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
377
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
378 signal_raw = (ULONG)signal_params->UserData;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
379 signal_high = (U16) (signal_raw >> 16);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
380 signal_low = (U16) (signal_raw & 0xFFFF);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
381
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
382 key_code = (U8) (signal_low & 0xFF);
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
383 if (signal_high == 1)
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
384 key_state = KEY_STAT_PRS;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
385 else
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
386 key_state = KEY_STAT_REL;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
387
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
388 //Add keypress to queue of key presses
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
389 nPresses = kbd_getNumElements();
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
390
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
391 kbd_putMakeAndKey( (char)key_state, (char)key_code);
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
392
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
393 if ((!kbd_stillProcessingKeys()) && (nPresses == 0))
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
394 { //Only this element present - create and send message.
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
395 sendKeyInd(key_code, key_state, 0);
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
396
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
397 }
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
398 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
399
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
400 /*
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
401 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
402 | PROJECT : MMI-Framework (8417) MODULE : ti1_key |
213
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
403 | STATE : code ROUTINE : keypad_cb |
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
404 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
405
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
406 PURPOSE : This CB function is called by the driver when a key is pressed/released
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
407 or a status of an asynch. process is requested.
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
408
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
409 */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
410
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
411 void keypad_cb (void* parameter)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
412 {
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
413 T_KPD_KEY_EVENT_MSG* event;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
414 T_KPD_STATUS_MSG* status;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
415 T_RV_CHECK* check;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
416
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
417 check = (T_RV_CHECK*)parameter;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
418
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
419 if (check->msg_id EQ KPD_STATUS_MSG)
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
420 {
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
421 //status message is used
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
422 status = (T_KPD_STATUS_MSG*) parameter;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
423
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
424 if (status->status_value EQ KPD_PROCESS_OK)
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
425 {
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
426 //ok
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
427 }
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
428 else
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
429 {
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
430 //failed !
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
431 return;
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
432 }
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
433 }
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
434 else
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
435 {
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
436 int nPresses; //Number of key presses still in the queue
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
437 //event message is used
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
438 event = (T_KPD_KEY_EVENT_MSG*) parameter;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
439
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
440 //Add keypress to queue of key presses
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
441 nPresses = kbd_getNumElements();
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
442
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
443 if (event->key_info.press_state EQ KPD_INSIGNIFICANT_VALUE)
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
444 {
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
445 kbd_putMakeAndKey( (char)event->key_info.state, (char)event->key_info.virtual_key_id );
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
446 }
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
447 else
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
448 {
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
449
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
450 //key_ind->key_stat (U8):
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
451 // 00xx 0000 = KEY_PRESSED
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
452 // 00xx 0001 = KEY_RELEASED
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
453 // 0000 00xx = KPD_FIRST_PRESS
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
454 // 0001 00xx = KPD_LONG_PRESS
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
455 // 0010 00xx = KPD_REPEAT_PRESS
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
456 //
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
457 // x = anystate
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
458 kbd_putMakeAndKey( (char)(event->key_info.state | (event->key_info.press_state << 4)),
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
459 (char)event->key_info.virtual_key_id );
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
460 }
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
461
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
462 if ((!kbd_stillProcessingKeys()) && (nPresses == 0))
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
463
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
464 { //Only this element present - create and send message.
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
465
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
466 sendKeyInd(event->key_info.virtual_key_id, event->key_info.state, event->key_info.press_state);
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
467
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
468 }
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
469
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
470 }
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
471 return;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
472 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
473
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
474
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
475 /*
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
476 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
477 | PROJECT : MMI-Framework (8417) MODULE : ti1_key |
213
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
478 | STATE : code ROUTINE : keypad_initialize |
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
479 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
480
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
481 PURPOSE : initialize keyboard driver
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
482
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
483 */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
484
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
485 UBYTE keypad_initialize (void)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
486 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
487 T_KPD_MODE mode;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
488 T_KPD_VIRTUAL_KEY_TABLE notified_keys;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
489 T_RV_RETURN return_path;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
490 T_RV_RET return_value;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
491
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
492 U16 long_press_time = 30; // 3.0s
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
493 U16 repeat_time = 50; // 5.0s <not used>
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
494
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
495 T_KPD_NOTIF_LEVEL notif_level;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
496 mode = KPD_DEFAULT_MODE;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
497
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
498 return_path.callback_func = keypad_cb;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
499 return_path.addr_id = 0;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
500
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
501 notified_keys.nb_notified_keys = KPD_NB_PHYSICAL_KEYS;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
502
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
503 notified_keys.notified_keys [0] = KPD_KEY_0;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
504 notified_keys.notified_keys [1] = KPD_KEY_1;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
505 notified_keys.notified_keys [2] = KPD_KEY_2;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
506 notified_keys.notified_keys [3] = KPD_KEY_3;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
507 notified_keys.notified_keys [4] = KPD_KEY_4;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
508 notified_keys.notified_keys [5] = KPD_KEY_5;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
509 notified_keys.notified_keys [6] = KPD_KEY_6;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
510 notified_keys.notified_keys [7] = KPD_KEY_7;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
511 notified_keys.notified_keys [8] = KPD_KEY_8;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
512 notified_keys.notified_keys [9] = KPD_KEY_9;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
513 notified_keys.notified_keys [10] = KPD_KEY_UP;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
514 notified_keys.notified_keys [11] = KPD_KEY_DOWN;
78
c632896652ba mfw/ti1_key.c: properly initialize notified_keys array
Mychaela Falconia <falcon@freecalypso.org>
parents: 77
diff changeset
515 notified_keys.notified_keys [12] = KPD_KEY_SOFT_LEFT;
c632896652ba mfw/ti1_key.c: properly initialize notified_keys array
Mychaela Falconia <falcon@freecalypso.org>
parents: 77
diff changeset
516 notified_keys.notified_keys [13] = KPD_KEY_SOFT_RIGHT;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
517 notified_keys.notified_keys [14] = KPD_KEY_CONNECT;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
518 notified_keys.notified_keys [15] = KPD_KEY_DISCONNECT;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
519 notified_keys.notified_keys [16] = KPD_KEY_STAR;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
520 notified_keys.notified_keys [17] = KPD_KEY_DIESE;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
521
78
c632896652ba mfw/ti1_key.c: properly initialize notified_keys array
Mychaela Falconia <falcon@freecalypso.org>
parents: 77
diff changeset
522 #if (KPD_NB_PHYSICAL_KEYS > 18)
c632896652ba mfw/ti1_key.c: properly initialize notified_keys array
Mychaela Falconia <falcon@freecalypso.org>
parents: 77
diff changeset
523 notified_keys.notified_keys [18] = KPD_KEY_LEFT;
c632896652ba mfw/ti1_key.c: properly initialize notified_keys array
Mychaela Falconia <falcon@freecalypso.org>
parents: 77
diff changeset
524 notified_keys.notified_keys [19] = KPD_KEY_RIGHT;
c632896652ba mfw/ti1_key.c: properly initialize notified_keys array
Mychaela Falconia <falcon@freecalypso.org>
parents: 77
diff changeset
525 notified_keys.notified_keys [20] = KPD_KEY_ENTER;
c632896652ba mfw/ti1_key.c: properly initialize notified_keys array
Mychaela Falconia <falcon@freecalypso.org>
parents: 77
diff changeset
526 notified_keys.notified_keys [21] = KPD_KEY_VOL_UP;
c632896652ba mfw/ti1_key.c: properly initialize notified_keys array
Mychaela Falconia <falcon@freecalypso.org>
parents: 77
diff changeset
527 notified_keys.notified_keys [22] = KPD_KEY_VOL_DOWN;
c632896652ba mfw/ti1_key.c: properly initialize notified_keys array
Mychaela Falconia <falcon@freecalypso.org>
parents: 77
diff changeset
528 notified_keys.notified_keys [23] = KPD_KEY_RECORD;
c632896652ba mfw/ti1_key.c: properly initialize notified_keys array
Mychaela Falconia <falcon@freecalypso.org>
parents: 77
diff changeset
529 #endif
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
530
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
531 return_value = kpd_subscribe (&subscriber_p, mode, &notified_keys, return_path);
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
532
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
533 if (return_value EQ RV_INTERNAL_ERR ||
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
534 return_value EQ RV_INVALID_PARAMETER ||
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
535 return_value EQ RV_MEMORY_ERR)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
536 {
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
537 //failed
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
538
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
539 //- RV_INTERNAL_ERR if
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
540 // - the max of subscriber is reached,
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
541 // - the software entity is not started, not yet initialized or initialization has
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
542 // failed
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
543 //- RV_INVALID_PARAMETER if number of virtual keys is not correct.
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
544 //- RV_MEMORY_ERR if memory reach its size limit.
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
545
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
546 return 1;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
547 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
548
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
549 //Subscribe to key press and key release (at the moment)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
550 //subscribe to KPD_LONG_KEY_PRESS_NOTIF once implemented.
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
551 notif_level = KPD_FIRST_PRESS_NOTIF | KPD_RELEASE_NOTIF;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
552
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
553 return_value = kpd_define_key_notification( subscriber_p, &notified_keys, notif_level,
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
554 long_press_time, repeat_time );
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
555
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
556 if (return_value EQ RV_INVALID_PARAMETER ||
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
557 return_value EQ RV_MEMORY_ERR)
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
558 { //failed
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
559 return 1;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
560 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
561 return 0;
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
562 }
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
563
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
564
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
565 /*
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
566 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
567 | PROJECT : MMI-Framework (8417) MODULE : ti1_key |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
568 | STATE : code ROUTINE : sendKeyInd |
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
569 +--------------------------------------------------------------------+
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
570
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
571 PURPOSE : Sends an MMI_KEYPAD_IND to the protocol stack
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
572 */
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
573 void sendKeyInd( T_KPD_VIRTUAL_KEY_ID virtual_key_id,
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
574 T_KPD_KEY_STATE key_state,
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
575 T_KPD_PRESS_STATE press_state)
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
576 {
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
577 EXTERN T_HANDLE hCommACI;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
578
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
579 PALLOC(key_ind,MMI_KEYPAD_IND);
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
580
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
581 key_ind->key_code = (U8)0;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
582
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
583 key_ind->key_stat = 0;
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
584
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
585 PSENDX(ACI,key_ind);
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
586
77
a7e383456c01 mfw/ti1_key.c: white space fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 3
diff changeset
587 return;
213
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
588 }
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
589
213
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
590 /* new FreeCalypso functions for switch-on causes */
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
591
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
592 void fchs_pwon_button_boot(void)
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
593 {
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
594 EXTERN T_HANDLE hCommACI;
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
595
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
596 PALLOC(key_ind,MMI_KEYPAD_IND);
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
597
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
598 key_ind->key_code = SPECIAL_KEYCODE_PWON;
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
599
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
600 key_ind->key_stat = 0;
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
601
0947a816580c first stage of FreeCalypso handset switch-on logic rework
Mychaela Falconia <falcon@freecalypso.org>
parents: 78
diff changeset
602 PSENDX(ACI,key_ind);
3
67bfe9f274f6 src/ui: import of src/ui3 from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
603 }