• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 HiSilicon (Shanghai) Technologies CO., LIMITED.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef HI_GV_MSG_H
17 #define HI_GV_MSG_H
18 
19 #include "hi_type.h"
20 #include "hi_gv_conf.h"
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 /* The structure of message */
27 typedef struct hiHIGV_MSGINFO_S {
28     HI_U32 HighLevelMsgNum; /* High level message number , */
29     HI_U32 MiddleLevelMsgNum; /* Middle level message number , */
30     HI_U32 LowLevelMsgNum; /* Low level message number , */
31     HI_U32 CanLoseMsgNum; /* The message number which can lose, */
32     HI_U32 LoseMsgNum; /* The message number which  losed, */
33     HI_U32 NoLoseMsgNum; /* The message number which can't lose, */
34 } HIGV_MSGINFO_S;
35 
36 /* Key type */
37 typedef enum hiHIGV_KEYTYPE_E {
38     HIGV_KEYTYPE_UNICODE = 0x0,
39     /* Ascii code  */
40     HIGV_KEYTYPE_FUNCTION = 0x10000,
41     /* Function key  */
42 } HIGV_KEYTYPE_E;
43 
44 #define HIGV_KEY_CAT(type, index) ((HIGV_KEYTYPE_##type) | (index))
45 
46 /* Virtual key defined(include keyboard, softkey board. */
47 typedef enum hiHIGV_KEYCODE_E {
48     HIGV_KEY_0 = HIGV_KEY_CAT(UNICODE, 0x30),
49     HIGV_KEY_1 = HIGV_KEY_CAT(UNICODE, 0x31),
50     HIGV_KEY_2 = HIGV_KEY_CAT(UNICODE, 0x32),
51     HIGV_KEY_3 = HIGV_KEY_CAT(UNICODE, 0x33),
52     HIGV_KEY_4 = HIGV_KEY_CAT(UNICODE, 0x34),
53     HIGV_KEY_5 = HIGV_KEY_CAT(UNICODE, 0x35),
54     HIGV_KEY_6 = HIGV_KEY_CAT(UNICODE, 0x36),
55     HIGV_KEY_7 = HIGV_KEY_CAT(UNICODE, 0x37),
56     HIGV_KEY_8 = HIGV_KEY_CAT(UNICODE, 0x38),
57     HIGV_KEY_9 = HIGV_KEY_CAT(UNICODE, 0x39),
58     /* The follow is digit key */
59     HIGV_KEY_A = HIGV_KEY_CAT(UNICODE, 0x41),
60     HIGV_KEY_B = HIGV_KEY_CAT(UNICODE, 0x42),
61     HIGV_KEY_C = HIGV_KEY_CAT(UNICODE, 0x43),
62     HIGV_KEY_D = HIGV_KEY_CAT(UNICODE, 0x44),
63     HIGV_KEY_E = HIGV_KEY_CAT(UNICODE, 0x45),
64     HIGV_KEY_F = HIGV_KEY_CAT(UNICODE, 0x46),
65     HIGV_KEY_G = HIGV_KEY_CAT(UNICODE, 0x47),
66     HIGV_KEY_H = HIGV_KEY_CAT(UNICODE, 0x48),
67     HIGV_KEY_I = HIGV_KEY_CAT(UNICODE, 0x49),
68     HIGV_KEY_J = HIGV_KEY_CAT(UNICODE, 0x4A),
69     HIGV_KEY_K = HIGV_KEY_CAT(UNICODE, 0x4B),
70     HIGV_KEY_L = HIGV_KEY_CAT(UNICODE, 0x4C),
71     HIGV_KEY_M = HIGV_KEY_CAT(UNICODE, 0x4D),
72     HIGV_KEY_N = HIGV_KEY_CAT(UNICODE, 0x4E),
73     HIGV_KEY_O = HIGV_KEY_CAT(UNICODE, 0x4F),
74     HIGV_KEY_P = HIGV_KEY_CAT(UNICODE, 0x50),
75     HIGV_KEY_Q = HIGV_KEY_CAT(UNICODE, 0x51),
76     HIGV_KEY_R = HIGV_KEY_CAT(UNICODE, 0x52),
77     HIGV_KEY_S = HIGV_KEY_CAT(UNICODE, 0x53),
78     HIGV_KEY_T = HIGV_KEY_CAT(UNICODE, 0x54),
79     HIGV_KEY_U = HIGV_KEY_CAT(UNICODE, 0x55),
80     HIGV_KEY_V = HIGV_KEY_CAT(UNICODE, 0x56),
81     HIGV_KEY_W = HIGV_KEY_CAT(UNICODE, 0x57),
82     HIGV_KEY_X = HIGV_KEY_CAT(UNICODE, 0x58),
83     HIGV_KEY_Y = HIGV_KEY_CAT(UNICODE, 0x59),
84     HIGV_KEY_Z = HIGV_KEY_CAT(UNICODE, 0x5A),
85 
86     HIGV_KEY_a = HIGV_KEY_CAT(UNICODE, 0x61),
87     HIGV_KEY_b = HIGV_KEY_CAT(UNICODE, 0x62),
88     HIGV_KEY_c = HIGV_KEY_CAT(UNICODE, 0x63),
89     HIGV_KEY_d = HIGV_KEY_CAT(UNICODE, 0x64),
90     HIGV_KEY_e = HIGV_KEY_CAT(UNICODE, 0x65),
91     HIGV_KEY_f = HIGV_KEY_CAT(UNICODE, 0x66),
92     HIGV_KEY_g = HIGV_KEY_CAT(UNICODE, 0x67),
93     HIGV_KEY_h = HIGV_KEY_CAT(UNICODE, 0x68),
94     HIGV_KEY_i = HIGV_KEY_CAT(UNICODE, 0x69),
95     HIGV_KEY_j = HIGV_KEY_CAT(UNICODE, 0x6A),
96     HIGV_KEY_k = HIGV_KEY_CAT(UNICODE, 0x6B),
97     HIGV_KEY_l = HIGV_KEY_CAT(UNICODE, 0x6C),
98     HIGV_KEY_m = HIGV_KEY_CAT(UNICODE, 0x6D),
99     HIGV_KEY_n = HIGV_KEY_CAT(UNICODE, 0x6E),
100     HIGV_KEY_o = HIGV_KEY_CAT(UNICODE, 0x6F),
101     HIGV_KEY_p = HIGV_KEY_CAT(UNICODE, 0x70),
102     HIGV_KEY_q = HIGV_KEY_CAT(UNICODE, 0x71),
103     HIGV_KEY_r = HIGV_KEY_CAT(UNICODE, 0x72),
104     HIGV_KEY_s = HIGV_KEY_CAT(UNICODE, 0x73),
105     HIGV_KEY_t = HIGV_KEY_CAT(UNICODE, 0x74),
106     HIGV_KEY_u = HIGV_KEY_CAT(UNICODE, 0x75),
107     HIGV_KEY_v = HIGV_KEY_CAT(UNICODE, 0x76),
108     HIGV_KEY_w = HIGV_KEY_CAT(UNICODE, 0x77),
109     HIGV_KEY_x = HIGV_KEY_CAT(UNICODE, 0x78),
110     HIGV_KEY_y = HIGV_KEY_CAT(UNICODE, 0x79),
111     HIGV_KEY_z = HIGV_KEY_CAT(UNICODE, 0x7A),
112 
113     HIGV_KEY_BACKSPACE = HIGV_KEY_CAT(UNICODE, 0x08), /* for keyboard */
114     HIGV_KEY_SPACE = HIGV_KEY_CAT(UNICODE, 0x20),
115     HIGV_KEY_LF = HIGV_KEY_CAT(UNICODE, 0x0A),
116     HIGV_KEY_CR = HIGV_KEY_CAT(UNICODE, 0x0D),  /* for keyboard */
117     HIGV_KEY_TAB = HIGV_KEY_CAT(UNICODE, 0x09), /* for keyboard */
118     HIGV_KEY_ESC = HIGV_KEY_CAT(UNICODE, 0x1B),
119     HIGV_KEY_DELETE = HIGV_KEY_CAT(UNICODE, 0x7F), /* for keyboard */
120     /*  key '`'/'-'/'=' and '~'/'_'/'+' */
121     HIGV_KEY_BACKQUOTE = HIGV_KEY_CAT(UNICODE, 0x60),
122     HIGV_KEY_MINUS = HIGV_KEY_CAT(UNICODE, 0x2D),
123     HIGV_KEY_EQUAL = HIGV_KEY_CAT(UNICODE, 0x3D),
124 
125     HIGV_KEY_TILDE = HIGV_KEY_CAT(UNICODE, 0x7E),
126     HIGV_KEY_UNDERSCORE = HIGV_KEY_CAT(UNICODE, 0x5F),
127     HIGV_KEY_PLUS = HIGV_KEY_CAT(UNICODE, 0x2B),
128     /*  the shift key of number key */
129     HIGV_KEY_EXCLAM = HIGV_KEY_CAT(UNICODE, 0x21),
130     HIGV_KEY_AT = HIGV_KEY_CAT(UNICODE, 0x40),
131     HIGV_KEY_NUMBERSIGN = HIGV_KEY_CAT(UNICODE, 0x23),
132     HIGV_KEY_DOLLAR = HIGV_KEY_CAT(UNICODE, 0x24),
133     HIGV_KEY_PERCENT = HIGV_KEY_CAT(UNICODE, 0x25),
134     HIGV_KEY_CARET = HIGV_KEY_CAT(UNICODE, 0x5E),
135     HIGV_KEY_AMPERSAND = HIGV_KEY_CAT(UNICODE, 0x26),
136     HIGV_KEY_ASTERISK = HIGV_KEY_CAT(UNICODE, 0x2A),
137     HIGV_KEY_PARENLEFT = HIGV_KEY_CAT(UNICODE, 0x28),
138     HIGV_KEY_PARENRIGHT = HIGV_KEY_CAT(UNICODE, 0x29),
139     /* the punctuation key on keyboard */
140     HIGV_KEY_BRACKETLEFT = HIGV_KEY_CAT(UNICODE, 0x5B),
141     HIGV_KEY_BRACKETRIGHT = HIGV_KEY_CAT(UNICODE, 0x5D),
142     HIGV_KEY_BACKSLASH = HIGV_KEY_CAT(UNICODE, 0x5C),
143     HIGV_KEY_SEMICOLON = HIGV_KEY_CAT(UNICODE, 0x3B),
144     HIGV_KEY_QUOTE = HIGV_KEY_CAT(UNICODE, 0x27),
145     HIGV_KEY_COMMA = HIGV_KEY_CAT(UNICODE, 0x2C),
146     HIGV_KEY_DOT = HIGV_KEY_CAT(UNICODE, 0x2E),
147     HIGV_KEY_SLASH = HIGV_KEY_CAT(UNICODE, 0x2F),
148     /* the shift key of punctuation key on keyboard */
149     HIGV_KEY_BRACELEFT = HIGV_KEY_CAT(UNICODE, 0x7B),
150     HIGV_KEY_BRACERIGHT = HIGV_KEY_CAT(UNICODE, 0x7D),
151     HIGV_KEY_BAR = HIGV_KEY_CAT(UNICODE, 0x7C),
152     HIGV_KEY_COLON = HIGV_KEY_CAT(UNICODE, 0x3A),
153     HIGV_KEY_DOUBLEQUOTE = HIGV_KEY_CAT(UNICODE, 0x22),
154     HIGV_KEY_LESS = HIGV_KEY_CAT(UNICODE, 0x3C),
155     HIGV_KEY_GREATER = HIGV_KEY_CAT(UNICODE, 0x3E),
156     HIGV_KEY_QUESTION = HIGV_KEY_CAT(UNICODE, 0x3F),
157 
158     /* Function Key */
159     HIGV_KEY_ENTER = HIGV_KEY_CAT(FUNCTION, 0x00),
160     HIGV_KEY_DEL = HIGV_KEY_CAT(FUNCTION, 0x02), /* advise to use HIGV_KEY_DELETE */
161     HIGV_KEY_BACK = HIGV_KEY_CAT(FUNCTION, 0x03),
162     HIGV_KEY_EXIT = HIGV_KEY_CAT(FUNCTION, 0x04),
163     HIGV_KEY_IME = HIGV_KEY_CAT(FUNCTION, 0x05),
164 
165     HIGV_KEY_UP = HIGV_KEY_CAT(FUNCTION, 0x06),
166     HIGV_KEY_DOWN = HIGV_KEY_CAT(FUNCTION, 0x07),
167     HIGV_KEY_LEFT = HIGV_KEY_CAT(FUNCTION, 0x08),
168     HIGV_KEY_RIGHT = HIGV_KEY_CAT(FUNCTION, 0x09),
169     HIGV_KEY_PGUP = HIGV_KEY_CAT(FUNCTION, 0x0A),
170     HIGV_KEY_PGDOWN = HIGV_KEY_CAT(FUNCTION, 0x0B),
171 
172     HIGV_KEY_FAV = HIGV_KEY_CAT(FUNCTION, 0x0C),
173     HIGV_KEY_MORE = HIGV_KEY_CAT(FUNCTION, 0x0D),
174     HIGV_KEY_PREV = HIGV_KEY_CAT(FUNCTION, 0x0E),
175     HIGV_KEY_REC = HIGV_KEY_CAT(FUNCTION, 0x0F),
176     HIGV_KEY_NEXT = HIGV_KEY_CAT(FUNCTION, 0x10),
177     HIGV_KEY_SLOW = HIGV_KEY_CAT(FUNCTION, 0x11),
178     HIGV_KEY_RADIO = HIGV_KEY_CAT(FUNCTION, 0x12),
179     HIGV_KEY_LIVE = HIGV_KEY_CAT(FUNCTION, 0x13),
180 
181     HIGV_KEY_SEARCH = HIGV_KEY_CAT(FUNCTION, 0x14),
182     HIGV_KEY_MENU = HIGV_KEY_CAT(FUNCTION, 0x15),
183     HIGV_KEY_PLAY = HIGV_KEY_CAT(FUNCTION, 0x16),
184     HIGV_KEY_STOP = HIGV_KEY_CAT(FUNCTION, 0x17),
185     HIGV_KEY_REW = HIGV_KEY_CAT(FUNCTION, 0x18),
186     HIGV_KEY_FF = HIGV_KEY_CAT(FUNCTION, 0x19),
187     HIGV_KEY_EPG = HIGV_KEY_CAT(FUNCTION, 0x1A),
188     HIGV_KEY_NVOD = HIGV_KEY_CAT(FUNCTION, 0x1B),
189 
190     HIGV_KEY_BTV = HIGV_KEY_CAT(FUNCTION, 0x1C),
191     HIGV_KEY_VOD = HIGV_KEY_CAT(FUNCTION, 0x1D),
192     HIGV_KEY_NPVR = HIGV_KEY_CAT(FUNCTION, 0x1E),
193     HIGV_KEY_HELP = HIGV_KEY_CAT(FUNCTION, 0x1F),
194     HIGV_KEY_STOCK = HIGV_KEY_CAT(FUNCTION, 0x20),
195     HIGV_KEY_GUIDE = HIGV_KEY_CAT(FUNCTION, 0x21),
196     HIGV_KEY_MAIL = HIGV_KEY_CAT(FUNCTION, 0x22),
197     HIGV_KEY_NEWS = HIGV_KEY_CAT(FUNCTION, 0x23),
198 
199     HIGV_KEY_IPANEL = HIGV_KEY_CAT(FUNCTION, 0x24),
200     HIGV_KEY_SET = HIGV_KEY_CAT(FUNCTION, 0x25),
201     HIGV_KEY_SUB = HIGV_KEY_CAT(FUNCTION, 0x26),
202     HIGV_KEY_SEEK = HIGV_KEY_CAT(FUNCTION, 0x27),
203     HIGV_KEY_INFO = HIGV_KEY_CAT(FUNCTION, 0x28),
204     HIGV_KEY_POWER = HIGV_KEY_CAT(FUNCTION, 0x29),
205     HIGV_KEY_AUDIO = HIGV_KEY_CAT(FUNCTION, 0x2A),
206     HIGV_KEY_MUTE = HIGV_KEY_CAT(FUNCTION, 0x2B),
207 
208     HIGV_KEY_CHNUP = HIGV_KEY_CAT(FUNCTION, 0x2C),
209     HIGV_KEY_CHNDOWN = HIGV_KEY_CAT(FUNCTION, 0x2D),
210     HIGV_KEY_VOLUP = HIGV_KEY_CAT(FUNCTION, 0x2E),
211     HIGV_KEY_VOLDOWN = HIGV_KEY_CAT(FUNCTION, 0x2F),
212     HIGV_KEY_CAPS = HIGV_KEY_CAT(FUNCTION, 0x30),
213     HIGV_KEY_SHIFT = HIGV_KEY_CAT(FUNCTION, 0x31),
214     HIGV_KEY_CTRL = HIGV_KEY_CAT(FUNCTION, 0x32),
215     HIGV_KEY_ALT = HIGV_KEY_CAT(FUNCTION, 0x33),
216 
217     HIGV_KEY_RED = HIGV_KEY_CAT(FUNCTION, 0x34),
218     HIGV_KEY_YELLOW = HIGV_KEY_CAT(FUNCTION, 0x35),
219     HIGV_KEY_BLUE = HIGV_KEY_CAT(FUNCTION, 0x36),
220     HIGV_KEY_GREEN = HIGV_KEY_CAT(FUNCTION, 0x37),
221 
222     HIGV_KEY_P1 = HIGV_KEY_CAT(FUNCTION, 0x38),
223     HIGV_KEY_P2 = HIGV_KEY_CAT(FUNCTION, 0x39),
224     HIGV_KEY_F1 = HIGV_KEY_CAT(FUNCTION, 0x3A),
225     HIGV_KEY_F2 = HIGV_KEY_CAT(FUNCTION, 0x3B),
226     HIGV_KEY_F3 = HIGV_KEY_CAT(FUNCTION, 0x3C),
227     HIGV_KEY_F4 = HIGV_KEY_CAT(FUNCTION, 0x3D),
228     HIGV_KEY_PLAYPAUSE = HIGV_KEY_CAT(FUNCTION, 0x3E),
229     HIGV_KEY_HOME = HIGV_KEY_CAT(FUNCTION, 0x3F),
230     HIGV_KEY_PICTURE_MODE = HIGV_KEY_CAT(FUNCTION, 0x40),
231     HIGV_KEY_SOUND_MODE = HIGV_KEY_CAT(FUNCTION, 0x41),
232     HIGV_KEY_ASPECT = HIGV_KEY_CAT(FUNCTION, 0x42),
233     HIGV_KEY_3D = HIGV_KEY_CAT(FUNCTION, 0x43),
234     HIGV_KEY_SOURCE = HIGV_KEY_CAT(FUNCTION, 0x44),
235     HIGV_KEY_CC = HIGV_KEY_CAT(FUNCTION, 0x45),
236     HIGV_KEY_SWAP = HIGV_KEY_CAT(FUNCTION, 0x46),
237     HIGV_KEY_FREEZE = HIGV_KEY_CAT(FUNCTION, 0x47),
238     HIGV_KEY_PIP = HIGV_KEY_CAT(FUNCTION, 0x48),
239     HIGV_KEY_NICAM_MTS = HIGV_KEY_CAT(FUNCTION, 0x49),
240 
241     HIGV_KEY_LWIN = HIGV_KEY_CAT(FUNCTION, 0x5B),
242 } HIGV_KEYCODE_E;
243 
244 /*
245 * brief Send synchroniztion message.
246 * param[in] widgetHandle Widget handle.
247 * param[in] msgId  Message ID. The msg id is defined in "hi_gv_widget.h"
248 *
249 *
250 *
251 * out.
252 * retval ::HI_SUCCESS
253 * retval ::HI_ERR_COMM_LOST
254 * retval ::HI_ERR_COMM_INVAL
255 * retval ::HI_ERR_COMM_PAERM Unsupported operation, such as, send key message.
256 * see ::
257 * HI_GV_Msg_SendAsync
258 * HI_GV_Msg_PostAsync
259 * HI_GV_Msg_SendAsyncWithData
260 */
261 HI_S32 HI_GV_Msg_SendSync(HIGV_HANDLE widgetHandle, HI_U32 msgId, HI_PARAM param1, HI_PARAM param2, HI_U32 timeOut);
262 
263 /*
264 * brief Send the asynchronism.
265 * param[in] widgetHandle Wiget handle.
266 * param[in] msgId  Message ID. The msg id is defined in "hi_gv_widget.h"
267 * .
268 * decided by message type.
269 * the meaning of message is decided by message
270 * type.
271 * retval ::HI_SUCCESS
272 * retval ::HI_ERR_COMM_LOST
273 * retval ::HI_ERR_COMM_INVAL
274 * retval ::HI_ERR_COMM_PAERM Unsupported operation, such as, send key message.
275 * see
276 * ::HI_GV_Msg_SendSync
277 * ::HI_GV_Msg_PostAsync
278 * ::HI_GV_Msg_SendAsyncWithData
279 */
280 HI_S32 HI_GV_Msg_SendAsync(HIGV_HANDLE widgetHandle, HI_U32 msgId, HI_PARAM param1, HI_PARAM param2);
281 
282 /*
283 * brief Send the asynchronism which can loss.
284 * param[in] widgetHandle Widget handle.
285 * param[in] msgId  Message ID. The msg id is defined in "hi_gv_widget.h"
286 * .
287 * decided by message type.
288 * param[in] param2  Parameter 2,the meaning of message is decided by message
289 * type.
290 * retval ::HI_SUCCESS
291 * retval ::HI_ERR_COMM_LOST
292 * retval ::HI_ERR_COMM_INVAL
293 * retval ::HI_ERR_COMM_PAERM Unsupported operation, such as, send key message.
294 * see
295 * ::HI_GV_Msg_SendSync
296 * ::HI_GV_Msg_SendAsync
297 * ::HI_GV_Msg_SendAsyncWithData
298 */
299 HI_S32 HI_GV_Msg_PostAsync(HIGV_HANDLE widgetHandle, HI_U32 msgId, HI_PARAM param1, HI_PARAM param2);
300 
301 /*
302 * brief Send the data attached the message which is not allowed to loss.
303 * param[in] widgetHandle Widget handle.
304 * param[in] msgId  Message ID. The msg id is defined in "hi_gv_widget.h"
305 * .
306 * data.
307 * data.
308 * retval ::HI_SUCCESS
309 * retval ::HI_ERR_COMM_LOST
310 * retval ::HI_ERR_COMM_INVAL
311 * retval ::HI_ERR_COMM_PAERM Unsupported operation, such as, send key message.
312 * see
313 * ::HI_GV_Msg_SendSync
314 * ::HI_GV_Msg_SendAsync
315 * ::HI_GV_Msg_PostAsync
316 */
317 HI_S32 HI_GV_Msg_SendAsyncWithData(HIGV_HANDLE widgetHandle, HI_U32 msgId, HI_VOID *buf, HI_PARAM bufLen);
318 
319 #ifdef __cplusplus
320 }
321 #endif
322 #endif /* HI_GV_MSG_H */
323