FreeCalypso > hg > fc-tourmaline
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 |
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, ¬ified_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, ¬ified_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 } |