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