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, &notified_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, &notified_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 }