| 1 | |
|---|
| 2 | #ifndef __GRP_MENU_H__ |
|---|
| 3 | #define __GRP_MENU_H__ |
|---|
| 4 | |
|---|
| 5 | |
|---|
| 6 | |
|---|
| 7 | /* config */ |
|---|
| 8 | |
|---|
| 9 | #define MAX_NUM_MENU 32 |
|---|
| 10 | /* ÃÖ´ë·Î ¸¸µé ¼ö ÀÖ´Â menu °¹¼ö : 1-32 »ç¿ë °¡´É, 0¹øÀº Ưº°ÇÑ ¿ëµµ·Î »ç¿ëµÊ */ |
|---|
| 11 | |
|---|
| 12 | #define MAX_NUM_TIMER 64 |
|---|
| 13 | /* »ç¿ë °¡´ÉÇÑ timerÀÇ °¹¼ö */ |
|---|
| 14 | |
|---|
| 15 | #define MAX_NUM_FRAME 64 |
|---|
| 16 | /* menu ´ç »ý¼ºÇÒ ¼ö ÀÖ´Â frameÀÇ °¹¼ö */ |
|---|
| 17 | |
|---|
| 18 | |
|---|
| 19 | |
|---|
| 20 | #define DMG_TIME_FOREVER ((UINT32)-1) |
|---|
| 21 | #define DMG_TIME_DEFAULT ((UINT32)-2) |
|---|
| 22 | #define DMG_MENU_ID_NONE ((tDMG_MenuId)-1) |
|---|
| 23 | #define DMG_MENU_ID_DEFAULT ((tDMG_MenuId)-2) |
|---|
| 24 | |
|---|
| 25 | #define DMG_FRAME_ID_NONE ((tDMG_FrameId)-1) |
|---|
| 26 | #define DMG_FRAME_ID_DEFAULT ((tDMG_FrameId)-2) |
|---|
| 27 | |
|---|
| 28 | #define DMG_KEY_NONE ((UINT32)-1) |
|---|
| 29 | |
|---|
| 30 | #define DMG_HIWORD(w) ((w)>>16) |
|---|
| 31 | #define DMG_LOWORD(w) ((w)&0xffff) |
|---|
| 32 | |
|---|
| 33 | #define DMG_MAKEWORD(n1,n2) (((n1)&0xffff)<<16|((n2)&0xffff)) |
|---|
| 34 | |
|---|
| 35 | typedef UINT8 tDMG_MenuId; |
|---|
| 36 | typedef UINT32 tDMG_FrameId; |
|---|
| 37 | |
|---|
| 38 | typedef UINT32 tDMG_MenuList; |
|---|
| 39 | |
|---|
| 40 | |
|---|
| 41 | /* |
|---|
| 42 | |
|---|
| 43 | |
|---|
| 44 | user procÀÇ °¢ command º° param ¿ëµµ |
|---|
| 45 | |
|---|
| 46 | -id -param1 -param2 opt |
|---|
| 47 | eDMG_CMD_ON_MENU_ENTER current menu pointer NULL |
|---|
| 48 | eDMG_CMD_ON_MENU_ACTIVE current menu pointer inactived menu id |
|---|
| 49 | eDMG_CMD_ON_MENU_INACTIVE current menu pointer to be actived menu id |
|---|
| 50 | eDMG_CMD_ON_MENU_INVISIBLE current menu pointer to be actived menu id |
|---|
| 51 | eDMG_CMD_ON_MENU_EXIT current menu pointer to be actived menu id |
|---|
| 52 | eDMG_CMD_ON_MENU_UPDATE current menu pointer user param |
|---|
| 53 | |
|---|
| 54 | eDMG_CMD_ON_FRAME_ACTIVE current frame pointer inactived frame id |
|---|
| 55 | eDMG_CMD_ON_FRAME_INACTIVE current frame pointer actived frame id |
|---|
| 56 | eDMG_CMD_ON_FRAME_INVISIBLE current frame pointer actived frame id |
|---|
| 57 | eDMG_CMD_ON_FRAME_EXIT current frame pointer NULL |
|---|
| 58 | |
|---|
| 59 | eDMG_CMD_ON_REDRAW ÇØ´ç menu pointer ÇØ´ç frame pointer |
|---|
| 60 | |
|---|
| 61 | eDMG_CMD_ON_TIME timer id elapsed time |
|---|
| 62 | |
|---|
| 63 | eDMG_CMD_ON_TIMEOUT elapsed time NULL |
|---|
| 64 | |
|---|
| 65 | eDMG_CMD_ON_KEY ÇØ´ç menu pointer key code |
|---|
| 66 | |
|---|
| 67 | eDMG_CMD_ON_USER_DEFINE ÇØ´ç param1 °ª ÇØ´ç param2 °ª user define id |
|---|
| 68 | |
|---|
| 69 | |
|---|
| 70 | |
|---|
| 71 | |
|---|
| 72 | set commandÀÇ param º° ¿ëµµ(³»ºÎ¿ë) |
|---|
| 73 | |
|---|
| 74 | -id -param1 -param2 -opt |
|---|
| 75 | eDMG_CMD_SET_KEY key code NULL pseudo key ¿©ºÎ |
|---|
| 76 | |
|---|
| 77 | eDMG_CMD_SET_TIMER timer id duration(ms) option |
|---|
| 78 | |
|---|
| 79 | eDMG_CMD_SET_MENU_START menu id opt NULL |
|---|
| 80 | eDMG_CMD_SET_MENU_EXIT menu id NULL NULL |
|---|
| 81 | |
|---|
| 82 | eDMG_CMD_SET_FRAME_ACTIVE frame id NULL NULL |
|---|
| 83 | eDMG_CMD_SET_FRAME_INACTIVE frame id NULL NULL |
|---|
| 84 | |
|---|
| 85 | eDMG_CMD_SET_SYNC NULL NULL NULL |
|---|
| 86 | |
|---|
| 87 | eDMG_CMD_SET_REDRAW NULL NULL NULL |
|---|
| 88 | |
|---|
| 89 | eDMG_CMD_SET_USER_DEFINE param1 param2 user define id |
|---|
| 90 | |
|---|
| 91 | eDMG_CMD_SET_MENU_PARAM1 menu id tDMG_Menu:param1 |
|---|
| 92 | eDMG_CMD_SET_MENU_PARAM2 menu id tDMG_Menu:param1 |
|---|
| 93 | */ |
|---|
| 94 | |
|---|
| 95 | typedef enum { |
|---|
| 96 | |
|---|
| 97 | eDMG_CMD_NONE, //¾Æ¹«·± ÀÇ¹Ì ¾ø´Â command |
|---|
| 98 | |
|---|
| 99 | /* ¸Þ´º USER PROC¿¡¸¸ Àü´ÞµÊ. param1¿¡ ÇØ´ç Menu¿¡ ´ëÇÑ Æ÷ÀÎÅͰ¡ Àü´ÞµÊ |
|---|
| 100 | ¸¸ÀÏ USER PROC¿¡¼ ¸®ÅϰªÀ¸·Î FALSE¸¦ ³Ñ±â¸é ±âº» 󸮰¡ ÁøÇàµÇ°í |
|---|
| 101 | TRUE¸¦ ¸®ÅϰªÀ¸·Î ³Ñ±â¸é ¾Æ¹« 󸮸¦ ÇÏÁö ¾ÊÀ½ |
|---|
| 102 | */ |
|---|
| 103 | eDMG_CMD_ON_MENU_ENTER, |
|---|
| 104 | eDMG_CMD_ON_MENU_ACTIVE, |
|---|
| 105 | eDMG_CMD_ON_MENU_INACTIVE, |
|---|
| 106 | eDMG_CMD_ON_MENU_INVISIBLE, |
|---|
| 107 | eDMG_CMD_ON_MENU_EXIT, |
|---|
| 108 | eDMG_CMD_ON_MENU_UPDATE, |
|---|
| 109 | |
|---|
| 110 | /* ÇÁ·¹ÀÓ USER PROC¿¡¸¸ Àü´ÞµÊ. param1 : menu Æ÷ÀÎÅÍ , param2 : frame Æ÷ÀÎÅÍ |
|---|
| 111 | */ |
|---|
| 112 | eDMG_CMD_ON_FRAME_ACTIVE, /* frame activeµÉ ¶§*/ |
|---|
| 113 | eDMG_CMD_ON_FRAME_INACTIVE, /* frame inactiveµÉ ¶§*/ |
|---|
| 114 | eDMG_CMD_ON_FRAME_INVISIBLE, /* frame invisibleµÉ ¶§*/ |
|---|
| 115 | eDMG_CMD_ON_FRAME_EXIT, /* ¸Þ´º°¡ exitµÉ ¶§*/ |
|---|
| 116 | |
|---|
| 117 | /* ȸéÀ» »õ·Ó°Ô ±×¸². |
|---|
| 118 | ¸ÕÀú Menu User ProcÀ» È£ÃâÇϰí, ¸®ÅϰªÀÌ falseÀÏ °æ¿ì, |
|---|
| 119 | Ȱ¼ºÈµÈ frameÀÇ user procÀ» È£ÃâÇÔ. |
|---|
| 120 | param1¿¡´Â menu Æ÷ÀÎÅÍ, param2¿¡´Â frame Æ÷ÀÎÅÍ °ªÀÌ µé¾î°¨ |
|---|
| 121 | */ |
|---|
| 122 | eDMG_CMD_ON_REDRAW, |
|---|
| 123 | |
|---|
| 124 | /* ¸ÕÀú menu¿¡ Àü´ÞµÇ°í, 󸮵ÇÁö ¾ÊÀ¸¸é 󸮵ɶ§±îÁö ¸Þ´º ¾ÈÀÇ ¸ðµç frame¿¡ Àü´ÞµÊ |
|---|
| 125 | param1 : timer id, param2 : elapsed time |
|---|
| 126 | */ |
|---|
| 127 | eDMG_CMD_ON_TIME, |
|---|
| 128 | |
|---|
| 129 | /* ¸ÕÀú menu¿¡ Àü´ÞµÇ°í, 󸮵ÇÁö ¾ÊÀ¸¸é Ȱ¼ºÈµÈ frame¿¡ Àü´ÞµÊ |
|---|
| 130 | param1 : elapsed time |
|---|
| 131 | */ |
|---|
| 132 | eDMG_CMD_ON_TIMEOUT, |
|---|
| 133 | |
|---|
| 134 | /* ¸ÕÀú menu¿¡ Àü´ÞµÇ°í, 󸮵ÇÁö ¾ÊÀ¸¸é Ȱ¼ºÈµÈ frame¿¡ Àü´ÞµÊ |
|---|
| 135 | param1 : menu Æ÷ÀÎÅÍ, param2 : key code |
|---|
| 136 | */ |
|---|
| 137 | eDMG_CMD_ON_KEY, |
|---|
| 138 | |
|---|
| 139 | eDMG_CMD_ON_USER_DEFINED, |
|---|
| 140 | |
|---|
| 141 | |
|---|
| 142 | |
|---|
| 143 | |
|---|
| 144 | /* param1 : key code */ |
|---|
| 145 | eDMG_CMD_SET_KEY=0x40, |
|---|
| 146 | |
|---|
| 147 | /* param1 : id, opt : opt, param2 : duration */ |
|---|
| 148 | eDMG_CMD_SET_TIMER=0x80, |
|---|
| 149 | |
|---|
| 150 | /* param1 : id */ |
|---|
| 151 | eDMG_CMD_SET_MENU_START, |
|---|
| 152 | eDMG_CMD_SET_MENU_EXIT, |
|---|
| 153 | |
|---|
| 154 | /* param1 : menu id, param2 : frame id */ |
|---|
| 155 | eDMG_CMD_SET_FRAME_ACTIVE, |
|---|
| 156 | eDMG_CMD_SET_FRAME_INACTIVE, |
|---|
| 157 | |
|---|
| 158 | eDMG_CMD_SET_SYNC, |
|---|
| 159 | |
|---|
| 160 | eDMG_CMD_SET_REDRAW, |
|---|
| 161 | |
|---|
| 162 | eDMG_CMD_SET_USER_DEFINE, /* »ç¿ëÀÚ Á¤ÀÇ */ |
|---|
| 163 | |
|---|
| 164 | eDMG_CMD_SET_MENU_PARAM1, |
|---|
| 165 | eDMG_CMD_SET_MENU_PARAM2, |
|---|
| 166 | |
|---|
| 167 | |
|---|
| 168 | } tDMG_CMD; |
|---|
| 169 | |
|---|
| 170 | |
|---|
| 171 | /* |
|---|
| 172 | ¾Æ·¡ ÄÚµåÀÇ Å©±â°¡ ³Ê¹« Ä¿Áö¹Ç·Î macro°¡ ¾Æ´Ñ functionÀ¸·Î »ç¿ëµÇ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÔ. |
|---|
| 173 | */ |
|---|
| 174 | #ifdef __DEFINE_DMG_STR__ |
|---|
| 175 | #define __DMG_CMD_STR(cmd) \ |
|---|
| 176 | cmd==eDMG_CMD_ON_MENU_ENTER?"on menu enter":\ |
|---|
| 177 | cmd==eDMG_CMD_ON_MENU_ACTIVE?"on menu active":\ |
|---|
| 178 | cmd==eDMG_CMD_ON_MENU_INACTIVE?"on menu inactive":\ |
|---|
| 179 | cmd==eDMG_CMD_ON_MENU_INVISIBLE?"on menu invisible":\ |
|---|
| 180 | cmd==eDMG_CMD_ON_MENU_EXIT?"on menu exit":\ |
|---|
| 181 | cmd==eDMG_CMD_ON_MENU_UPDATE?"on menu update":\ |
|---|
| 182 | cmd==eDMG_CMD_ON_FRAME_ACTIVE?"on frame active":\ |
|---|
| 183 | cmd==eDMG_CMD_ON_FRAME_INACTIVE?"on frame inactive":\ |
|---|
| 184 | cmd==eDMG_CMD_ON_FRAME_INVISIBLE?"on frame invisible":\ |
|---|
| 185 | cmd==eDMG_CMD_ON_FRAME_EXIT?"on frame exit":\ |
|---|
| 186 | cmd==eDMG_CMD_ON_REDRAW?"on redraw":\ |
|---|
| 187 | cmd==eDMG_CMD_ON_TIME?"on time":\ |
|---|
| 188 | cmd==eDMG_CMD_ON_TIMEOUT?"on timeout":\ |
|---|
| 189 | cmd==eDMG_CMD_ON_KEY?"on key":\ |
|---|
| 190 | cmd==eDMG_CMD_ON_USER_DEFINED?"on user define":\ |
|---|
| 191 | cmd==eDMG_CMD_SET_KEY?"set key":\ |
|---|
| 192 | cmd==eDMG_CMD_SET_TIMER?"set timer":\ |
|---|
| 193 | cmd==eDMG_CMD_SET_MENU_START?"set menu start":\ |
|---|
| 194 | cmd==eDMG_CMD_SET_MENU_EXIT?"set menu exit":\ |
|---|
| 195 | cmd==eDMG_CMD_SET_FRAME_ACTIVE?"set frame active":\ |
|---|
| 196 | cmd==eDMG_CMD_SET_FRAME_INACTIVE?"set frame inactive":\ |
|---|
| 197 | cmd==eDMG_CMD_SET_SYNC?"set sync":\ |
|---|
| 198 | cmd==eDMG_CMD_SET_REDRAW?"set redraw":\ |
|---|
| 199 | cmd==eDMG_CMD_SET_USER_DEFINE?"set user define":\ |
|---|
| 200 | cmd==eDMG_CMD_SET_MENU_PARAM1?"set menu param1":\ |
|---|
| 201 | cmd==eDMG_CMD_SET_MENU_PARAM2?"set menu param2":\ |
|---|
| 202 | "unknown" |
|---|
| 203 | /* function definition */ |
|---|
| 204 | const char *DMG_CMD_STR(tDMG_CMD cmd) |
|---|
| 205 | { return __DMG_CMD_STR(cmd); } |
|---|
| 206 | |
|---|
| 207 | #else |
|---|
| 208 | /* function declaration only */ |
|---|
| 209 | const char *DMG_CMD_STR(tDMG_CMD cmd); |
|---|
| 210 | #endif |
|---|
| 211 | |
|---|
| 212 | |
|---|
| 213 | /* command optionÀº »óÀ§ 2byte¸¦ »ç¿ëÇÔ. ÇÏÀ§ 2byte´Â user optionµéÀÓ */ |
|---|
| 214 | typedef enum { |
|---|
| 215 | eDMG_CMD_OPT_TIMER_ONESHOT=0x10000, |
|---|
| 216 | eDMG_CMD_OPT_TIMER_LOCAL1=0x20000, /* menu¿¡¼¸¸ »ç¿ëÇÔ, menuÀÌ ¹Ù²î¸é ÀÚµ¿ reset*/ |
|---|
| 217 | eDMG_CMD_OPT_TIMER_LOCAL2=0x40000, /* frame¿¡¼¸¸ »ç¿ëÇÔ, menu°¡ ¹Ù²î¸é ÀÚµ¿ reset*/ |
|---|
| 218 | eDMG_CMD_OPT_SYNC=0x100000, |
|---|
| 219 | eDMG_CMD_OPT_USER_KEY=0x200000, /* RCU°¡ ¾Æ´Ï¶ó, »ç¿ëÀÚ¿¡ ÀÇÇØ »ý¼ºµÈ Ű.*/ |
|---|
| 220 | eDMG_CMD_OPT_MENU_UPDATE=0x400000, /* menu start¿¡¼ »ç¿ëµÇ´Â opt·Î update ¸ðµå·Î µ¿ÀÛÇÔ */ |
|---|
| 221 | eDMG_CMD_OPT_URGENT=0x800000 /* urgent, inner msgq¿¡¼ ó¸®µÊ */ |
|---|
| 222 | } tDMG_CmdOpt; |
|---|
| 223 | |
|---|
| 224 | |
|---|
| 225 | typedef enum { |
|---|
| 226 | eDMG_STATUS_EXIT=0, /* ¸Þ´ºÀÇ Ãʱ⠻óÅÂ, MenuStart¸¦ È£ÃâÇϸé INITED »óÅ·ΠÀüÀÌµÊ */ |
|---|
| 227 | eDMG_STATUS_ACTIVE, /* ¸Þ´º°¡ ÃÖ»óÀ§¿¡ ¶° ÀÖÀ½ */ |
|---|
| 228 | eDMG_STATUS_INACTIVE, /* ¸Þ´º°¡ ¶° ÀÖ±ä ÇÏÁö¸¸, »óÀ§ ¸Þ´º¿¡ ÀÇÇØ °¡·ÁÁü */ |
|---|
| 229 | eDMG_STATUS_INVISIBLE /* »óÀ§ ¸Þ´º ¶§¹®¿¡ ¸Þ´º°¡ ¾Æ¹« °Íµµ º¸ÀÌÁö ¾ÊÀ½ */ |
|---|
| 230 | } tDMG_Status; |
|---|
| 231 | |
|---|
| 232 | |
|---|
| 233 | typedef enum { |
|---|
| 234 | |
|---|
| 235 | /* menu manage - start */ |
|---|
| 236 | eDMG_MENU_MANAGE_DENY=0, /* »õ·Î¿î ¸Þ´º¸¦ ¶ç¿ìÁö ¾ÊÀ½ */ |
|---|
| 237 | |
|---|
| 238 | eDMG_MENU_MANAGE_DENY_BUT_INACTIVE, /* »õ·Î¿î ¸Þ´º¸¦ ¶ç¿ìÁö ¾ÊÀ¸³ª, INACTIVE »óÅ·ΠÀüÀÌÇÔ */ |
|---|
| 239 | eDMG_MENU_MANAGE_DENY_BUT_HIDE, /* »õ·Î¿î ¸Þ´º¸¦ ¶ç¿ìÁö ¾ÊÀ¸³ª, INVISIBLE »óÅ·ΠÀüÀÌÇÔ */ |
|---|
| 240 | |
|---|
| 241 | eDMG_MENU_MANAGE_INACTIVE_AND_DRAW, /* ±âÁ¸ ¸Þ´º¸¦ ±×´ë·Î µÎ°í ±× À§¿¡ »õ·Î¿î ¸Þ´º¸¦ ±×¸² */ |
|---|
| 242 | eDMG_MENU_MANAGE_HIDE_PREV_AND_DRAW, /* ±âÁ¸ ¸Þ´º¸¦ HIDEÇÏ°í »õ·Î¿î ¸Þ´º¸¦ ±×¸² */ |
|---|
| 243 | eDMG_MENU_MANAGE_HIDE_ALL_AND_DRAW, |
|---|
| 244 | eDMG_MENU_MANAGE_EXIT_PREV_AND_DRAW, /* ±âÁ¸ ÃÖ»óÀ§ ¸Þ´º EXIT ÈÄ »õ·Î¿î ¸Þ´º¸¦ ±×¸² */ |
|---|
| 245 | eDMG_MENU_MANAGE_EXIT_ALL_AND_DRAW, /* ±âÁ¸ ¸Þ´º EXIT ÈÄ »õ·Î¿î ¸Þ´º¸¦ ±×¸² */ |
|---|
| 246 | |
|---|
| 247 | |
|---|
| 248 | /* menu manange - exit */ |
|---|
| 249 | eDMG_MENU_MANAGE_EXIT, /* ÀϹÝÀûÀÎ Á¾·á */ |
|---|
| 250 | eDMG_MENU_MANAGE_EXIT_SILENT, /* ÇØ´ç ¸Þ´º¿¡ EXIT¸¦ º¸³»Áö ¾Ê°í Á¾·áÇÔ */ |
|---|
| 251 | |
|---|
| 252 | } tDMG_MenuManange; |
|---|
| 253 | |
|---|
| 254 | |
|---|
| 255 | typedef struct { |
|---|
| 256 | |
|---|
| 257 | BOOL is_start; |
|---|
| 258 | |
|---|
| 259 | tDMG_MenuId active_id; |
|---|
| 260 | |
|---|
| 261 | tDMG_MenuId action_id; /* is_start°¡ trueÀÏ °æ¿ì new active id, falseÀÏ °æ¿ì delete menu id */ |
|---|
| 262 | tDMG_MenuId new_active_id; /* ¸¸ÀÏ is_start°¡ false¶ó¸é new_active_id¿¡ menu¸¦ ³Ö¾îÁÜ */ |
|---|
| 263 | |
|---|
| 264 | tDMG_MenuList inactive_list; |
|---|
| 265 | tDMG_MenuList invisible_list; |
|---|
| 266 | |
|---|
| 267 | } tDMG_MenuManageParam; |
|---|
| 268 | |
|---|
| 269 | |
|---|
| 270 | typedef BOOL (*tDMG_UserProc)(tDMG_CMD cmd, UINT32 opt, UINT32 param1, UINT32 param2); |
|---|
| 271 | /* TRUEÀ̸é 󸮵Ê, FALSEÀ̸é menu¿¡¼ ó¸®ÇÔ. */ |
|---|
| 272 | |
|---|
| 273 | typedef tDMG_MenuManange (*tDMG_MenuManageProc)(tDMG_MenuManageParam *pmanage_param); |
|---|
| 274 | |
|---|
| 275 | |
|---|
| 276 | |
|---|
| 277 | typedef struct { |
|---|
| 278 | tDMG_FrameId id; |
|---|
| 279 | char *name; |
|---|
| 280 | |
|---|
| 281 | UINT16 cur_item_id; /*ÇöÀç ¼±ÅÃµÈ item id.*/ |
|---|
| 282 | UINT16 num_item; /* itemÀÇ °¹¼ö */ |
|---|
| 283 | UINT32 param1; /* »ç¿ëÀÚ°¡ Á¤ÀÇÇØ¼ »ç¿ëÇÔ */ |
|---|
| 284 | UINT32 param2; /* »ç¿ëÀÚ°¡ Á¤ÀÇÇØ¼ »ç¿ëÇÔ */ |
|---|
| 285 | |
|---|
| 286 | UINT32 timeout_ms; |
|---|
| 287 | |
|---|
| 288 | tDMG_UserProc user_proc; |
|---|
| 289 | } tDMG_Frame; |
|---|
| 290 | |
|---|
| 291 | |
|---|
| 292 | typedef struct _tDMG_Menu { |
|---|
| 293 | tDMG_MenuId id; |
|---|
| 294 | /* menu id 0Àº »ç¿ë ºÒ°¡ -> Ưº°ÇÑ ¿ëµµ·Î »ç¿ëÇÔ, |
|---|
| 295 | MID´Â menu°¡ invisible »óÅ¿¡ ÀÖÀ» ¶§ ÀÏÁ¾ÀÇ priority ¿ªÇÒÀ» ÇÔ |
|---|
| 296 | Áï priority°¡ ³ôÀº °Í(0¿¡ °¡±î¿î °Í)ÀÌ ¿ì¼± ¼øÀ§¸¦ °¡Áü |
|---|
| 297 | 1-31»çÀÌÀÇ °ªÀ» »ç¿ëÇÒ °Í |
|---|
| 298 | */ |
|---|
| 299 | char *name; |
|---|
| 300 | |
|---|
| 301 | tDMG_Status status; |
|---|
| 302 | |
|---|
| 303 | UINT32 priority; |
|---|
| 304 | |
|---|
| 305 | DHL_OS_TASK_ID task_id; |
|---|
| 306 | |
|---|
| 307 | tDMG_Frame *pcur_frame; |
|---|
| 308 | |
|---|
| 309 | tDMG_Frame *pframe_list[MAX_NUM_FRAME]; |
|---|
| 310 | |
|---|
| 311 | UINT32 timeout_ms; |
|---|
| 312 | |
|---|
| 313 | struct _tDMG_Menu *pbelow; |
|---|
| 314 | |
|---|
| 315 | UINT32 param1; /* »ç¿ëÀÚ°¡ Á¤ÀÇÇØ¼ »ç¿ëÇÔ */ |
|---|
| 316 | UINT32 param2; |
|---|
| 317 | |
|---|
| 318 | tDMG_UserProc user_proc; |
|---|
| 319 | |
|---|
| 320 | } tDMG_Menu; |
|---|
| 321 | |
|---|
| 322 | |
|---|
| 323 | typedef struct { |
|---|
| 324 | tDMG_CMD cmd; |
|---|
| 325 | UINT32 opt; |
|---|
| 326 | UINT32 param1; |
|---|
| 327 | UINT32 param2; |
|---|
| 328 | } tDMG_Message; |
|---|
| 329 | |
|---|
| 330 | |
|---|
| 331 | typedef struct { |
|---|
| 332 | tDMG_Menu *pcur_menu; |
|---|
| 333 | tDMG_Menu *pprev_menu; |
|---|
| 334 | |
|---|
| 335 | tDMG_Frame *pcur_frame; |
|---|
| 336 | tDMG_Frame *pprev_frame; |
|---|
| 337 | |
|---|
| 338 | UINT32 ms_last_key; /* ¸¶Áö¸·À¸·Î ۰¡ ´·ÁÁø ¶§ */ |
|---|
| 339 | tDMG_CMD last_cmd; /* not used */ |
|---|
| 340 | |
|---|
| 341 | |
|---|
| 342 | } tDMG_MenuInfo; |
|---|
| 343 | |
|---|
| 344 | |
|---|
| 345 | BOOL DMG_GetMenuStatus(tDMG_MenuId menu_id); |
|---|
| 346 | |
|---|
| 347 | void DMG_SendMessage(tDMG_CMD cmd, UINT32 opt, UINT32 param1, UINT32 param2); |
|---|
| 348 | |
|---|
| 349 | tDMG_Menu *DMG_CreateMenu(tDMG_MenuId id, char *name, UINT32 timeout_ms, tDMG_UserProc user_proc); |
|---|
| 350 | |
|---|
| 351 | tDMG_Frame *DMG_CreateFrame(tDMG_Menu *pmenu, tDMG_FrameId id, char *name, |
|---|
| 352 | UINT32 num_item, tDMG_UserProc user_proc); |
|---|
| 353 | |
|---|
| 354 | tDMG_Frame *DMG_AttachFrame(tDMG_Menu *pmenu, tDMG_Frame *pframe); |
|---|
| 355 | |
|---|
| 356 | tDMG_Menu *DMG_GetMenu(tDMG_MenuId menu_id); |
|---|
| 357 | tDMG_Frame *DMG_GetFrame(tDMG_MenuId menu_id, tDMG_FrameId frame_id); |
|---|
| 358 | |
|---|
| 359 | tDMG_Menu *DMG_GetCurMenu(void); |
|---|
| 360 | tDMG_Frame *DMG_GetCurFrame(void); |
|---|
| 361 | |
|---|
| 362 | void DMG_SetFrame(tDMG_CMD cmd, tDMG_MenuId menu_id, tDMG_FrameId frame_id, BOOL buse_msgq); |
|---|
| 363 | |
|---|
| 364 | void DMG_SetRedraw(BOOL buse_msgq); |
|---|
| 365 | |
|---|
| 366 | void DMG_SetTimer(UINT32 timer_id, UINT32 duration, UINT32 opt); |
|---|
| 367 | |
|---|
| 368 | void DMG_KillTimer(UINT32 timer_id); |
|---|
| 369 | |
|---|
| 370 | void DMG_SetKeyInput(UINT32 key_code); |
|---|
| 371 | |
|---|
| 372 | /* RCU¿¡ ÀÇÇÑ Å° ¹ß»ýÀÌ ¾Æ´Ï¶ó ³»ºÎÀûÀΠŰ ¹ß»ý ½Ã »ç¿ë */ |
|---|
| 373 | void DMG_SetUserKeyInput(UINT32 key_code); |
|---|
| 374 | |
|---|
| 375 | void DMG_SetUserDefined(UINT32 id, UINT32 param1, UINT32 param2); |
|---|
| 376 | |
|---|
| 377 | void DMG_SetMenuTimeout(tDMG_MenuId id, UINT32 timeout); |
|---|
| 378 | void DMG_SetFrameTimeout(tDMG_MenuId menu_id, tDMG_FrameId id, UINT32 timeout); |
|---|
| 379 | |
|---|
| 380 | void DMG_SetMenuParam1(tDMG_MenuId id, UINT32 param); |
|---|
| 381 | void DMG_SetMenuParam2(tDMG_MenuId id, UINT32 param); |
|---|
| 382 | |
|---|
| 383 | void DMG_SetFrameParam1(tDMG_MenuId menu_id, tDMG_FrameId frame_id, UINT32 param); |
|---|
| 384 | void DMG_SetFrameParam2(tDMG_MenuId menu_id, tDMG_FrameId frame_id, UINT32 param); |
|---|
| 385 | |
|---|
| 386 | UINT32 DMG_GetKeyInput(UINT32 time_ms); |
|---|
| 387 | |
|---|
| 388 | void DMG_GetMenuInfo(tDMG_MenuInfo *pinfo); |
|---|
| 389 | |
|---|
| 390 | BOOL DMG_IsMenuOn(tDMG_MenuId menu_id); |
|---|
| 391 | |
|---|
| 392 | void DMG_MenuStart(tDMG_MenuId menu_id); |
|---|
| 393 | void DMG_MenuUpdate(tDMG_MenuId menu_id, UINT32 param); |
|---|
| 394 | |
|---|
| 395 | void DMG_MenuExit(tDMG_MenuId menu_id); |
|---|
| 396 | void DMG_MenuExit_ActiveAll(void); |
|---|
| 397 | |
|---|
| 398 | void DMG_MenuInit(tDMG_MenuManageProc menu_manage_proc); |
|---|
| 399 | |
|---|
| 400 | |
|---|
| 401 | |
|---|
| 402 | |
|---|
| 403 | |
|---|
| 404 | #endif /* __GRP_MENU_H__ */ |
|---|