FreeCalypso > hg > fc-tourmaline
comparison src/cs/services/fcbm/fcbm_kpd_if.c @ 230:baa738eeb842
FCBM code implemented in first pass
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 01 May 2021 10:05:53 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
229:7ec0ae23ce76 | 230:baa738eeb842 |
---|---|
1 /* | |
2 * This module implements the interface to KPD for FCBM. | |
3 */ | |
4 | |
5 #include "fcbm/fcbm_env.h" | |
6 #include "fcbm/fcbm_func_i.h" | |
7 #include "kpd/kpd_api.h" | |
8 #include "rv/rv_general.h" | |
9 #include "rvf/rvf_api.h" | |
10 #include "rvm/rvm_use_id_list.h" | |
11 | |
12 static T_KPD_SUBSCRIBER fcbm_kpd_sub; | |
13 | |
14 T_RV_RET fcbm_subscribe_kpd(void) | |
15 { | |
16 T_RV_RET rc; | |
17 T_RV_RETURN return_path; | |
18 T_KPD_VIRTUAL_KEY_TABLE notified_keys; | |
19 | |
20 return_path.callback_func = 0; | |
21 return_path.addr_id = fcbm_addr_id; | |
22 | |
23 notified_keys.nb_notified_keys = KPD_NB_PHYSICAL_KEYS; | |
24 notified_keys.notified_keys[0] = KPD_KEY_0; | |
25 notified_keys.notified_keys[1] = KPD_KEY_1; | |
26 notified_keys.notified_keys[2] = KPD_KEY_2; | |
27 notified_keys.notified_keys[3] = KPD_KEY_3; | |
28 notified_keys.notified_keys[4] = KPD_KEY_4; | |
29 notified_keys.notified_keys[5] = KPD_KEY_5; | |
30 notified_keys.notified_keys[6] = KPD_KEY_6; | |
31 notified_keys.notified_keys[7] = KPD_KEY_7; | |
32 notified_keys.notified_keys[8] = KPD_KEY_8; | |
33 notified_keys.notified_keys[9] = KPD_KEY_9; | |
34 notified_keys.notified_keys[10] = KPD_KEY_UP; | |
35 notified_keys.notified_keys[11] = KPD_KEY_DOWN; | |
36 notified_keys.notified_keys[12] = KPD_KEY_SOFT_LEFT; | |
37 notified_keys.notified_keys[13] = KPD_KEY_SOFT_RIGHT; | |
38 notified_keys.notified_keys[14] = KPD_KEY_CONNECT; | |
39 notified_keys.notified_keys[15] = KPD_KEY_DISCONNECT; | |
40 notified_keys.notified_keys[16] = KPD_KEY_STAR; | |
41 notified_keys.notified_keys[17] = KPD_KEY_DIESE; | |
42 notified_keys.notified_keys[18] = KPD_KEY_LEFT; | |
43 notified_keys.notified_keys[19] = KPD_KEY_RIGHT; | |
44 notified_keys.notified_keys[20] = KPD_KEY_ENTER; | |
45 notified_keys.notified_keys[21] = KPD_KEY_VOL_UP; | |
46 notified_keys.notified_keys[22] = KPD_KEY_VOL_DOWN; | |
47 notified_keys.notified_keys[23] = KPD_KEY_RECORD; | |
48 | |
49 rc = kpd_subscribe(&fcbm_kpd_sub, KPD_DEFAULT_MODE, ¬ified_keys, | |
50 return_path); | |
51 if (rc != RV_OK) { | |
52 rvf_send_trace("kpd_subscribe() failed", 22, rc, | |
53 RV_TRACE_LEVEL_ERROR, FCBM_USE_ID); | |
54 return rc; | |
55 } | |
56 | |
57 /* long press and repeat times are dummies copied from MFW */ | |
58 rc = kpd_define_key_notification(fcbm_kpd_sub, ¬ified_keys, | |
59 KPD_FIRST_PRESS_NOTIF | | |
60 KPD_RELEASE_NOTIF, 30, 50); | |
61 if (rc != RV_OK) | |
62 rvf_send_trace("kpd_define_key_notification() failed", 36, rc, | |
63 RV_TRACE_LEVEL_ERROR, FCBM_USE_ID); | |
64 return rc; | |
65 } | |
66 | |
67 T_RV_RET fcbm_unsubscribe_kpd(void) | |
68 { | |
69 T_RV_RET rc; | |
70 | |
71 rc = kpd_unsubscribe(&fcbm_kpd_sub); | |
72 if (rc != RV_OK) | |
73 rvf_send_trace("kpd_unsubscribe() failed", 24, rc, | |
74 RV_TRACE_LEVEL_ERROR, FCBM_USE_ID); | |
75 return rc; | |
76 } |