FreeCalypso > hg > leo2moko-debug
comparison chipsetsw/drivers/drv_app/kpd/kpd_process_internal_msg.h @ 0:509db1a7b7b8
initial import: leo2moko-r1
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 01 Jun 2015 03:24:05 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:509db1a7b7b8 |
---|---|
1 /** | |
2 * @file kpd_process_internal_msg.h | |
3 * | |
4 * Declaration of internal function for keypad driver. | |
5 * These functions process internal messages received by the keypad task. | |
6 * | |
7 * @author Laurent Sollier (l-sollier@ti.com) | |
8 * @version 0.1 | |
9 */ | |
10 | |
11 /* | |
12 * History: | |
13 * | |
14 * Date Author Modification | |
15 * ---------------------------------------- | |
16 * 10/10/2001 L Sollier Create | |
17 * | |
18 * | |
19 * (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved | |
20 */ | |
21 | |
22 #ifndef _KPD_PROCESS_INTERNAL_MSG_H_ | |
23 #define _KPD_PROCESS_INTERNAL_MSG_H_ | |
24 | |
25 #include "kpd/kpd_api.h" | |
26 | |
27 #include "rv/rv_general.h" | |
28 #include "rvm/rvm_gen.h" | |
29 | |
30 /** | |
31 * @name Internal functions | |
32 * | |
33 */ | |
34 /*@{*/ | |
35 | |
36 | |
37 /** | |
38 * function: kpd_subscribe_i | |
39 * | |
40 * This function is called by the client before any use of the keypad driver services | |
41 * It is called only once. | |
42 * | |
43 * @param subscriber_id Subscriber identification value. | |
44 * @param mode Mode used by the keypad client. | |
45 * @param notified_keys_p Define all the keys the client want to be notified. | |
46 * @param return_path Return path for key pressed. | |
47 * @return RV_OK. | |
48 */ | |
49 T_RV_RET kpd_subscribe_i(T_SUBSCRIBER_ID subscriber_id, | |
50 T_KPD_MODE mode, | |
51 T_KPD_VIRTUAL_KEY_TABLE* notified_keys_p, | |
52 T_RV_RETURN return_path); | |
53 | |
54 /** | |
55 * function: kpd_unsubscribe_i | |
56 * | |
57 * This function unsubscribes a client from the keypad driver. | |
58 * | |
59 * @param subscriber_id Subscriber identification value. | |
60 * @return RV_OK. | |
61 */ | |
62 T_RV_RET kpd_unsubscribe_i( T_SUBSCRIBER_ID subscriber_id); | |
63 | |
64 /** | |
65 * function: kpd_define_key_notification_i | |
66 * | |
67 * This function defines time repetition for a set of keys. | |
68 * By default, all the keys are defined as KPD_RELEASE_NOTIF. | |
69 * | |
70 * @param subscriber_id Subscriber identification value. | |
71 * @param repeat_key_table_p Set of keys which must be repeated. | |
72 * @param notif_level Define what kind of notification is set for all the keys. | |
73 * @param long_press_time Time in milliseconds before long press time notification. | |
74 * @param repeat_time Time in millliseconds for key repetition. If repeat_time = 0, | |
75 * keys defined by parameter keys are not repeated. | |
76 * @return RV_OK. | |
77 */ | |
78 T_RV_RET kpd_define_key_notification_i(T_SUBSCRIBER_ID subscriber_id, | |
79 T_KPD_VIRTUAL_KEY_TABLE* repeat_key_table_p, | |
80 T_KPD_NOTIF_LEVEL notif_level, | |
81 UINT16 long_press_time, | |
82 UINT16 repeat_time); | |
83 | |
84 /** | |
85 * function: kpd_change_mode_i | |
86 * | |
87 * This function changes the mode for the specific client. | |
88 * | |
89 * @param subscriber_id Subscriber identification value. | |
90 * @param notified_keys_p Define all the keys the client want to be notified in the new mode. | |
91 * @param new_mode New mode in which the client want to switch. | |
92 * @return RV_OK. | |
93 */ | |
94 T_RV_RET kpd_change_mode_i(T_SUBSCRIBER_ID subscriber_id, | |
95 T_KPD_VIRTUAL_KEY_TABLE* notified_keys_p, | |
96 T_KPD_MODE new_mode); | |
97 | |
98 /** | |
99 * function: kpd_own_keypad_i | |
100 * | |
101 * This function allows the latest subscriber being the only client to be notified by action | |
102 * on keypad (less CPU time used). | |
103 * After this call, the keypad is in the "single notified" state. | |
104 * This action is cancelled when: | |
105 * - The function is called with parameter is_keypad_owner to FALSE, | |
106 * - The subscriber (which own the keypad) unsubscribe from keypad. | |
107 * | |
108 * Note that keypad is in the "multi notified" state if there is no subscriber (particularly | |
109 * at the keypad initialisation). | |
110 * | |
111 * @param subscriber_id Subscriber identification value. | |
112 * @param is_keypad_owner_p Define the state to change. | |
113 * TRUE: keypad pass in "single notified" state | |
114 * FALSE: keypad pass in "multi notified" state | |
115 * @param keys_owner Set of keys only notified to the subscriber that call this function. | |
116 * This is mandatory a subset of the keys defined at subscription. | |
117 * @return RV_OK. | |
118 */ | |
119 T_RV_RET kpd_own_keypad_i(T_SUBSCRIBER_ID subscriber_id, | |
120 BOOL is_keypad_owner, | |
121 T_KPD_VIRTUAL_KEY_TABLE* keys_owner_p); | |
122 | |
123 /** | |
124 * function: kpd_set_key_config_i | |
125 * | |
126 * This function allows setting dynamically a configuration for new or existing virtual keys. | |
127 * The two tables define a mapping between each entry (new_keys[1] is mapped with reference_keys[1], | |
128 * new_keys[2] is mapped with reference_keys[2], ...). | |
129 * The call of this function doesn't change the mode of the client. | |
130 * | |
131 * @param subscriber_id Subscriber identification value. | |
132 * @param reference_keys_p Set of keys available on keypad in default mode. | |
133 * @param new_keys_p Set of keys which must map with the reference keys. | |
134 * @return RV_OK. | |
135 */ | |
136 T_RV_RET kpd_set_key_config_i(T_SUBSCRIBER_ID subscriber_id, | |
137 T_KPD_VIRTUAL_KEY_TABLE* reference_keys_p, | |
138 T_KPD_VIRTUAL_KEY_TABLE* new_keys_p); | |
139 | |
140 /** | |
141 * function: kpd_get_available_keys_i | |
142 * | |
143 * This function allows knowing all the available keys in default mode. | |
144 * | |
145 * @param available_keys_p Set of keys available on keypad in default mode. The structure | |
146 * must be declared by the caller, and is filled by the function (OUT). | |
147 * @return RV_OK. | |
148 */ | |
149 T_RV_RET kpd_get_available_keys_i( T_KPD_VIRTUAL_KEY_TABLE* available_keys_p); | |
150 | |
151 /** | |
152 * function: kpd_get_ascii_key_code_i | |
153 * | |
154 * This function return associated ASCII value to defined key. | |
155 * | |
156 * @param key Key identification value. | |
157 * @param mode Mode in which is defined the link between "key" and "ascii code". | |
158 * @param ascii_code Associated ASCII code to parameter "key" (OUT). | |
159 * @return RV_OK. | |
160 */ | |
161 T_RV_RET kpd_get_ascii_key_code_i(T_KPD_VIRTUAL_KEY_ID key, | |
162 T_KPD_MODE mode, | |
163 UBYTE** ascii_code); | |
164 | |
165 | |
166 /** | |
167 * function: kpd_process_key_pressed_i | |
168 * | |
169 * This function process a key pressed. | |
170 * | |
171 * @param physical_key_pressed_id Physical key pressed. | |
172 */ | |
173 void kpd_process_key_pressed_i(T_KPD_PHYSICAL_KEY_ID physical_key_pressed_id); | |
174 | |
175 | |
176 /** | |
177 * function: kpd_process_key_pressed_sn_mode_i | |
178 * | |
179 * This function process a key pressed when the keypad is in Single-notified mode, | |
180 * and if the key is in the table defined by the keypad owner (see function kpd_own_keypad). | |
181 * | |
182 * @param physical_key_pressed_id Physical key pressed. | |
183 */ | |
184 void kpd_process_key_pressed_sn_mode_i(T_KPD_PHYSICAL_KEY_ID physical_key_pressed_id); | |
185 | |
186 | |
187 | |
188 /** | |
189 * function: kpd_wait_for_key_release | |
190 * | |
191 * This function wait that key is released to unmask interrupt. | |
192 * This function is usefull when limits memory size is reached, | |
193 * to be sure that all messages could be sent to all the subscribers | |
194 * | |
195 */ | |
196 void kpd_wait_for_key_release(void); | |
197 | |
198 | |
199 /*@}*/ | |
200 #endif /* #ifndef _KPD_PROCESS_INTERNAL_MSG_H_ */ |