FreeCalypso > hg > leo2moko-debug
comparison chipsetsw/drivers/drv_app/kpd/kpd_virtual_key_table_mgt.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_virtual_key_table_mgt.h | |
3 * | |
4 * Declarations of the access functions to configuration keypad table. | |
5 * | |
6 * @author Laurent Sollier (l-sollier@ti.com) | |
7 * @version 0.1 | |
8 */ | |
9 | |
10 /* | |
11 * History: | |
12 * | |
13 * Date Author Modification | |
14 * ---------------------------------------- | |
15 * 10/10/2001 L Sollier Create | |
16 * | |
17 * | |
18 * (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved | |
19 */ | |
20 | |
21 #ifndef _KPD_VIRTUAL_KEY_TABLE_MGT_H_ | |
22 #define _KPD_VIRTUAL_KEY_TABLE_MGT_H_ | |
23 | |
24 #include "kpd/kpd_api.h" | |
25 #include "kpd/kpd_scan_functions.h" | |
26 #include "kpd/kpd_physical_key_def.h" | |
27 | |
28 #include "rv/rv_general.h" | |
29 | |
30 /** Definition for the parameter position in the function declared below when | |
31 * the virtual key in the array is unknown. | |
32 */ | |
33 #define KPD_POS_NOT_AVAILABLE (-1) | |
34 | |
35 /** | |
36 * @name Acces functions to configuration table | |
37 */ | |
38 /*@{*/ | |
39 | |
40 | |
41 /** | |
42 * function: kpd_initialize_ascii_table | |
43 * | |
44 * This function initialize the ASCII table in order to improve performance. | |
45 * | |
46 * @return RV_OK. | |
47 */ | |
48 T_RV_RET kpd_initialize_ascii_table(void); | |
49 | |
50 | |
51 /** | |
52 * function: kpd_get_virtual_key | |
53 * | |
54 * This function retrieve the virtual key ID associated to the physical key id and the mode. | |
55 * | |
56 * | |
57 * @param key_id Physical key Id. | |
58 * @param mode Mode associated. | |
59 * @return Virtual key Id or KPD_KEY_NULL if the physical key is not mapped. | |
60 * | |
61 */ | |
62 T_KPD_VIRTUAL_KEY_ID kpd_get_virtual_key( T_KPD_PHYSICAL_KEY_ID key_id, | |
63 T_KPD_MODE mode); | |
64 | |
65 /** | |
66 * function: kpd_get_ascii_key_value | |
67 * | |
68 * This function retrieve the ASCII code associated to the virtual key ID and the mode. | |
69 * | |
70 * @param key_id Physical key Id. | |
71 * @param mode Mode associated : default or alphanumeric | |
72 * (No verification is done on the value). | |
73 * @param ascii_code_pp ASCII code (OUT), By default, return value is the empty string "". | |
74 * @return RV_OK. | |
75 * | |
76 */ | |
77 T_RV_RET kpd_get_ascii_key_value(T_KPD_PHYSICAL_KEY_ID key_id, | |
78 T_KPD_MODE mode, | |
79 char** ascii_code_pp); | |
80 | |
81 /** | |
82 * function: kpd_retrieve_virtual_key_position | |
83 * | |
84 * This function retrieve the position in the array of virtual keys according to the mode. | |
85 * | |
86 * | |
87 * @param key_id Virtual key Id. | |
88 * @param mode Mode in which is searched the virtual key | |
89 * (No verification is done on the value) | |
90 * @param position_p Position of the virtual key Id in the array. If the virtual | |
91 * doesn't exist, the returned value is KPD_POS_NOT_AVAILABLE (OUT) | |
92 * @return | |
93 * - RV_OK if operation is successful. | |
94 * - RV_INVALID_PARAMETER if the virtual key doesn't exist. | |
95 * | |
96 */ | |
97 T_RV_RET kpd_retrieve_virtual_key_position( T_KPD_VIRTUAL_KEY_ID key_id, | |
98 T_KPD_MODE mode, | |
99 INT8* position_p); | |
100 | |
101 /** | |
102 * function: kpd_get_default_keys | |
103 * | |
104 * This function retrieve the position in the array of virtual keys according to the mode. | |
105 * | |
106 * | |
107 * @param available_keys_p Table of available keys in default mode. | |
108 * @return RV_OK. | |
109 * | |
110 */ | |
111 T_RV_RET kpd_get_default_keys( T_KPD_VIRTUAL_KEY_TABLE* available_keys_p); | |
112 | |
113 | |
114 /** | |
115 * function: kpd_check_key_table | |
116 * | |
117 * This function check if the all the keys defined in keys_table are available | |
118 * in the requested mode. | |
119 * Note that for facilities, if number of keys are KPD_NB_PHYSICAL_KEYS, the table | |
120 * is automatically fulfilled with all the virtual keys. | |
121 * | |
122 * | |
123 * @param keys_table_p Table of keys. | |
124 * @param mode Mode requested. | |
125 * @return - RV_OK if operation successfull, | |
126 * - RV_INVALID_PARAMETER if at least one key is not defined in the requested mode. | |
127 * | |
128 */ | |
129 T_RV_RET kpd_check_key_table(T_KPD_VIRTUAL_KEY_TABLE* keys_table_p, T_KPD_MODE mode); | |
130 | |
131 /** | |
132 * function: kpd_define_new_config | |
133 * | |
134 * This function define a link between reference keys (virtual keys in default mode), | |
135 * and configurable keys. The virtual key Id of the configurable key can be defined | |
136 * by the user in another part of the source code. | |
137 * | |
138 * @param reference_keys_p Table of reference keys. | |
139 * @param new_keys_p Tabe of keys to define in new mode. | |
140 * @return RV_OK. | |
141 * | |
142 */ | |
143 void kpd_define_new_config(T_KPD_VIRTUAL_KEY_TABLE* reference_keys_p, | |
144 T_KPD_VIRTUAL_KEY_TABLE* new_keys_p); | |
145 | |
146 /** | |
147 * function: kpd_vpm_table_is_valid | |
148 * | |
149 * This function check the vpm table. Indeed, the physical keys must be defined | |
150 * from 0 to KPD_NB_PHYSICAL_KEYS consecutively, and their position in the table | |
151 * equal to the value. For more explanations, see vpm_table definition. | |
152 * | |
153 * @return | |
154 * - TRUE if the table is valid. | |
155 * - FALSE if the table is invalid. | |
156 * | |
157 */ | |
158 BOOL kpd_vpm_table_is_valid(void); | |
159 | |
160 /*@}*/ | |
161 | |
162 | |
163 #endif /* #ifndef _KPD_VIRTUAL_KEY_TABLE_MGT_H_ */ |