comparison src/cs/services/mks/mks_api.h @ 0:92470e5d0b9e

src: partial import from FC Selenite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 15 May 2020 01:28:16 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:92470e5d0b9e
1 /**
2 * @file mks_api.h
3 *
4 * API Definition for Magic Key Sequence Service.
5 *
6 * This file gathers all the constants, structure and functions declaration
7 * useful for a MKS service user.
8 *
9 * @author Laurent Sollier (l-sollier@ti.com)
10 * @version 0.1
11 */
12
13 /*
14 * History:
15 *
16 * Date Author Modification
17 * ----------------------------------------
18 * 11/19/2001 L Sollier Create
19 *
20 *
21 * (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved
22 */
23
24 #ifndef _MKS_API_H_
25 #define _MKS_API_H_
26
27 #include "mks/mks_cfg.h"
28
29 #include "kpd/kpd_api.h"
30
31 #include "rv/rv_general.h"
32 #include "rvf/rvf_api.h"
33
34 /**
35 * @name External types
36 *
37 * Types used in API.
38 *
39 */
40 /*@{*/
41
42 /** Definition of completion type used.
43 * Subscriber is notified when key sequence is completed.
44 */
45 #define MKS_SEQUENCE_COMPLETED 0x01
46
47 /** Definition of completion type used.
48 * Subscriber is notified after key sequence is completed.
49 */
50 #define MKS_POST_SEQUENCE 0x02
51
52
53 /** Definition of one magic key sequence. */
54 typedef struct { char name[KPD_MAX_CHAR_NAME+1]; /* It's not ensured that this name is unique */
55 UINT8 nb_key_of_sequence;
56 T_KPD_VIRTUAL_KEY_ID key_id[MKS_NB_MAX_OF_KEY_IN_KEY_SEQUENCE];
57 UINT8 completion_type; /* can equal to MKS_SEQUENCE_COMPLETED or MKS_POST_SEQUENCE */
58 UINT8 nb_key_for_post_sequence; /* used only if completion_type == MKS_POST_SEQUENCE */
59 T_RV_RETURN return_path;
60 } T_MKS_INFOS_KEY_SEQUENCE;
61
62 /*@}*/
63
64
65
66 /**
67 * @name API functions
68 *
69 * API functions declarations.
70 */
71 /*@{*/
72
73 /**
74 * function: mks_add_key_sequence
75 *
76 * This function initialize a magic key sequence.
77 *
78 * @param infos_key_sequence_p Magic key sequence.
79 * @return
80 * - RV_OK if operation is successful,
81 * - RV_INVALID_PARAMETER if one parameter is incorrect,
82 * - RV_MEMORY_ERR if memory reach its size limit.
83 *
84 */
85 T_RV_RET mks_add_key_sequence(T_MKS_INFOS_KEY_SEQUENCE* infos_key_sequence_p);
86
87 /**
88 * function: mks_remove_key_sequence
89 *
90 * This function remove an existing magic key sequence.
91 *
92 * @param infos_key_sequence_p Magic key sequence.
93 * @return
94 * - RV_OK
95 * - RV_MEMORY_ERR if memory reach its size limit.
96 *
97 * @note
98 * - If the name of the key sequence doesn't exist, no return status is
99 * sent to inform client that process has failed.
100 *
101 */
102 T_RV_RET mks_remove_key_sequence(char name[KPD_MAX_CHAR_NAME+1]);
103
104
105 /*@}*/
106
107
108 /*************************************************************************/
109 /************************** MESSAGES DEFINITION **************************/
110 /*************************************************************************/
111
112 /**
113 * The message offset must differ for each SWE in order to have
114 * unique msg_id in the system.
115 */
116 #define MKS_MESSAGES_OFFSET (0x37 << 10)
117
118
119
120 /**
121 * @name MKS_SEQUENCE_COMPLETED
122 *
123 * This message is sent to a subscriber when a key sequence is completed.
124 *
125 * Message issued by MKS to a subscriber.
126 */
127 /*@{*/
128
129
130 /** Message ID. */
131 #define MKS_SEQUENCE_COMPLETED_MSG (MKS_MESSAGES_OFFSET | 0x001)
132
133 /** Message structure. */
134 typedef struct
135 {
136 /** Message header. */
137 T_RV_HDR hdr;
138
139 /** Name of key sequence. */
140 char name[KPD_MAX_CHAR_NAME];
141
142 /** Kind of completion (sequence completed or post_sequence). */
143 UINT8 completion_type;
144
145 /** Virtual key Id pressed (used when completion_type == MKS_POST_SEQUENCE). */
146 T_KPD_VIRTUAL_KEY_ID key_pressed;
147
148 } T_MKS_SEQUENCE_COMPLETED_MSG;
149 /*@}*/
150
151
152 #endif /* #ifndef _MKS_API_H_ */