comparison src/cs/services/mks/mks_handle_message.c @ 0:4e78acac3d88

src/{condat,cs,gpf,nucleus}: import from Selenite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:23:26 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4e78acac3d88
1 /**
2 * @file mks_handle_msg.c
3 *
4 * Coding of the mks_handle_msg function, which is called when the SWE
5 * receives a new message.
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 * 11/19/2001 L Sollier Create
17 *
18 *
19 * (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved
20 */
21
22 #include "mks/mks_api.h"
23 #include "mks/mks_i.h"
24 #include "mks/mks_messages_i.h"
25
26 #include "rv/rv_general.h"
27 #include "rvf/rvf_api.h"
28 #include "rvm/rvm_use_id_list.h"
29
30 /**
31 * @name Functions implementation
32 *
33 */
34 /*@{*/
35
36 /**
37 * function: mks_handle_msg
38 */
39 T_RV_RET mks_handle_msg(T_RV_HDR *msg_p)
40 {
41 if (msg_p != NULL)
42 {
43 switch (msg_p->msg_id)
44 {
45 /* A new magic key sequence is added */
46 case MKS_INFOS_KEY_SEQUENCE_MSG:
47 {
48 T_MKS_INFOS_KEY_SEQUENCE_MSG* msg_infos_key_sequence_p= (T_MKS_INFOS_KEY_SEQUENCE_MSG*) msg_p;
49
50 MKS_SEND_TRACE("MKS: 'Add magic key sequence' message received", RV_TRACE_LEVEL_DEBUG_LOW);
51
52 mks_add_key_sequence_i(msg_infos_key_sequence_p);
53 break;
54 }
55
56 /* A magic key sequence is removed */
57 case MKS_REMOVE_KEY_SEQUENCE_MSG:
58 {
59 T_MKS_REMOVE_KEY_SEQUENCE_MSG* msg_remove_key_sequence_p= (T_MKS_REMOVE_KEY_SEQUENCE_MSG*) msg_p;
60
61 MKS_SEND_TRACE("MKS: 'Remove magic key sequence' message received", RV_TRACE_LEVEL_DEBUG_LOW);
62
63 mks_remove_key_sequence_i(msg_remove_key_sequence_p);
64 break;
65 }
66
67
68 /* Process a key released */
69 case KPD_KEY_EVENT_MSG:
70 {
71 T_KPD_KEY_EVENT_MSG* msg_key_event_p= (T_KPD_KEY_EVENT_MSG*) msg_p;
72
73 mks_check_key_sequence(msg_key_event_p);
74 break;
75 }
76
77 /* Check the subscription status */
78 case KPD_STATUS_MSG:
79 {
80 T_KPD_STATUS_MSG* msg_keypad_status_p= (T_KPD_STATUS_MSG*) msg_p;
81
82 if (msg_keypad_status_p->operation == KPD_SUBSCRIBE_OP)
83 {
84 if (msg_keypad_status_p->status_value == KPD_PROCESS_OK)
85 {
86 MKS_SEND_TRACE("MKS: Keypad subscription OK", RV_TRACE_LEVEL_DEBUG_LOW);
87 }
88 else
89 {
90 MKS_SEND_TRACE("MKS: Keypad subscription failed", RV_TRACE_LEVEL_ERROR);
91 }
92 }
93 else
94 {
95 MKS_SEND_TRACE("MKS: Unexpected keypad status message received", RV_TRACE_LEVEL_ERROR);
96 }
97
98 break;
99 }
100
101 default:
102 {
103 /* Unknow message has been received */
104 MKS_SEND_TRACE("MKS: Message received unknown", RV_TRACE_LEVEL_ERROR);
105 break;
106 }
107 }
108
109 /* Free message */
110 rvf_free_buf(msg_p);
111 }
112
113 return RV_OK;
114 }
115
116 /*@}*/