irkk_map.c 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787
  1. /********************************************************************
  2. ** File Name: IRKK_map.c (IRKK)
  3. **
  4. ** File Description: this file is sunplus ir KK mapping table
  5. **
  6. ** Copyright(c) 2010 Sunplus Technologies - All Rights Reserved
  7. **
  8. ** History Information Description
  9. ** Date Author Modification
  10. ** 2009/02/17 wangdanping create
  11. ********************************************************************/
  12. #include "irkk_map.h"
  13. #include "app_event.h"
  14. #include "sysapp_table.h"
  15. #include "main_app.h"
  16. #include "gobj_mgr.h"
  17. #include "sysapp_if.h"
  18. #include "app_guiobj_popmsg.h"
  19. #include "app_menumgr.h"
  20. #include "app_guiobj_adjust.h"
  21. #include "atv_guiobj_table.h"
  22. #ifdef CONFIG_SUPPORT_IR_TX
  23. #include "ir_tx_mapping_table.h"
  24. #endif
  25. #ifdef CONFIG_SMART_MODULE_SUPPORT
  26. #include "app_smart.h"
  27. #endif
  28. #include "board_config.h"
  29. #include "app_guiobj_source.h"
  30. #ifdef CONFIG_DTV_SUPPORT
  31. #if defined(CONFIG_DVB_SYSTEM) || defined(CONFIG_AUS_DVB_SYSTEM) || defined(CONFIG_DTMB_SYSTEM)
  32. #include "dvb_guiobj_table.h"
  33. #endif
  34. #ifdef CONFIG_ISDB_SYSTEM
  35. #include "app_guiobj_sbtvd_table.h"
  36. #endif
  37. #endif
  38. #ifdef CONFIG_MEDIA_ENABLE
  39. #include "MM_browser_gui.h"
  40. #endif
  41. #ifdef CONFIG_SUPPORT_PVR
  42. #include "mid_recorder.h"
  43. #endif
  44. #include "ir_map.h"
  45. #ifdef CONFIG_SUPPORT_IR_TX
  46. typedef struct
  47. {
  48. AppGlobalEvent_t eRxEvent;
  49. IR_TX_EVENT eTxEvent;
  50. } IR_CONVERT_st, *pIR_CONVERT_st;
  51. IR_CONVERT_st stIRKKTxConvertTable[] =
  52. {
  53. {UI_EVENT_0, IR_TX_NUM0},
  54. {UI_EVENT_1, IR_TX_NUM1},
  55. {UI_EVENT_2, IR_TX_NUM2},
  56. {UI_EVENT_3, IR_TX_NUM3},
  57. {UI_EVENT_4, IR_TX_NUM4},
  58. {UI_EVENT_5, IR_TX_NUM5},
  59. {UI_EVENT_6, IR_TX_NUM6},
  60. {UI_EVENT_7, IR_TX_NUM7},
  61. {UI_EVENT_8, IR_TX_NUM8},
  62. {UI_EVENT_9, IR_TX_NUM9},
  63. {UI_EVENT_10, IR_TX_ADD10},
  64. {UI_EVENT_AUDIO, IR_TX_AUDIO},
  65. {UI_EVENT_PLAY, IR_TX_PLAY},
  66. {UI_EVENT_PAUSE, IR_TX_PAUSE},
  67. {UI_EVENT_PLAY_PAUSE, IR_TX_PLAY_PAUSE},
  68. {UI_EVENT_STOP, IR_TX_STOP},
  69. {UI_EVENT_NEXT, IR_TX_NEXT},
  70. {UI_EVENT_PREV, IR_TX_PREV},
  71. {UI_EVENT_FF, IR_TX_FF},
  72. {UI_EVENT_FR, IR_TX_FR},
  73. {UI_EVENT_UP, IR_TX_UP},
  74. {UI_EVENT_DOWN, IR_TX_DOWN},
  75. {UI_EVENT_LEFT, IR_TX_LEFT},
  76. {UI_EVENT_RIGHT, IR_TX_RIGHT},
  77. {UI_EVENT_RETURN, IR_TX_RETURN},
  78. {UI_EVENT_ENTER, IR_TX_PLAY_ENTER},
  79. {UI_EVENT_EXIT, IR_TX_EXIT},
  80. {UI_EVENT_SUBTITLE, IR_TX_SUB_TITLE},
  81. {UI_EVENT_DISPLAY, IR_TX_DISPLAY},
  82. {UI_EVENT_SRC_USB, IR_TX_USB_CARD},
  83. {UI_EVENT_CHLIST, IR_TX_SETUP},
  84. #ifdef CELLO_REMOTE_KEY
  85. {UI_EVENT_DVD, IR_TX_SETUP},
  86. #endif
  87. #if 0
  88. {UI_EVENT_NULL, IR_TX_TITLE_MENU},
  89. {UI_EVENT_NULL, IR_TX_PBC},
  90. {UI_EVENT_NULL, IR_TX_MENU_PBC},
  91. {UI_EVENT_NULL, IR_TX_PROGRAM},
  92. {UI_EVENT_NULL, IR_TX_CLEAR},
  93. {UI_EVENT_NULL, IR_TX_WIDE},
  94. {UI_EVENT_NULL, IR_TX_PAL_NTSC},
  95. {UI_EVENT_NULL, IR_TX_SET_A},
  96. {UI_EVENT_NULL, IR_TX_REPEAT},
  97. {UI_EVENT_NULL, IR_TX_FORMAT},
  98. {UI_EVENT_NULL, IR_TX_ANGLE},
  99. {UI_EVENT_NULL, IR_TX_DIGEST},
  100. {UI_EVENT_NULL, IR_TX_SF},
  101. {UI_EVENT_NULL, IR_TX_STEP},
  102. {UI_EVENT_NULL, IR_TX_ZOOM_IN},
  103. {UI_EVENT_NULL, IR_TX_RANDOM},
  104. {UI_EVENT_NULL, IR_TX_EJECT},
  105. #endif
  106. };
  107. UINT8 bIRKKConvertTableSize = sizeof(stIRKKTxConvertTable)/sizeof(IR_CONVERT_st);
  108. static void _TX_IRKK_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  109. {
  110. INT32 dObjectID;
  111. sys_app_errorcode_t ret = SYSTEM_APP_SUCCESS;
  112. IR_TX_EVENT eEvent = IR_TX_MAX;
  113. pIR_CONVERT_st pIRConvertTable = stIRKKTxConvertTable;
  114. UINT8 bIndex = 0;
  115. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  116. if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  117. {
  118. while(bIndex < bIRKKConvertTableSize)
  119. {
  120. if (pIRConvertTable[bIndex].eRxEvent == *pbEvent)
  121. {
  122. eEvent = pIRConvertTable[bIndex].eTxEvent;
  123. if (TRUE == APP_Ir_Tx_SendEvent(eEvent))
  124. {
  125. *pbEvent = UI_EVENT_NULL;
  126. }
  127. break;
  128. }
  129. bIndex++;
  130. }
  131. }
  132. }
  133. #endif
  134. #ifdef CONFIG_SMART_MODULE_SUPPORT
  135. static void _SMART_IRKK_EVENT(UINT32 *pbEvent)
  136. {
  137. if(SMART_SUCCESS == APP_Smart_Set_Smart_IRKey(*pbEvent))
  138. {
  139. *pbEvent = UI_EVENT_NULL;
  140. }
  141. }
  142. #endif
  143. UINT8 IRKK_GetKeyCodeEvent(UINT32 cid, UINT8 u8Keycode, UINT32 * u32Event)
  144. {
  145. UINT8 i;
  146. UINT32 j = 0;
  147. if (u32Event == NULL)
  148. {
  149. return FALSE;
  150. }
  151. while (j < dIR_map_size)
  152. {
  153. if (strncmp((char *) (stIR_map[j].IRName), "IRKK", strlen((char *) (stIR_map[j].IRName))) == 0)
  154. {
  155. for (i = 0; i < stIR_map[j].IR_Count; i++)
  156. {
  157. if (stIR_map[j].pdIR_Map[i].Keycode == u8Keycode && stIR_map[j].pdIR_Map[i].CusCode == cid)
  158. {
  159. *u32Event = stIR_map[j].pdIR_Map[i].Event;
  160. return TRUE;
  161. }
  162. }
  163. }
  164. j++;
  165. }
  166. return FALSE;
  167. }
  168. static void _ATV_IRKK_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  169. {
  170. INT32 dObjectID;
  171. sys_app_errorcode_t ret = SYSTEM_APP_SUCCESS;
  172. PopmsgType_t eType;
  173. #if defined(CONFIG_SUPPORT_IR_TX) || defined(CONFIG_SMART_MODULE_SUPPORT)
  174. APP_Source_Type_t eSourceType = APP_SOURCE_MAX;
  175. APP_GUIOBJ_Source_GetCurrSource(&eSourceType);
  176. #ifdef CONFIG_SUPPORT_IR_TX
  177. if (APP_SOURCE_DVD == eSourceType)
  178. {
  179. _TX_IRKK_Event_convert(dSystemAppIndex, pbEvent);
  180. }
  181. #endif
  182. #ifdef CONFIG_SMART_MODULE_SUPPORT
  183. if((APP_SOURCE_HDMI + CONFIG_HDMI_SMART_PORT) == eSourceType)
  184. {
  185. _SMART_IRKK_EVENT(pbEvent);
  186. }
  187. #endif
  188. #endif
  189. switch(*pbEvent)
  190. {
  191. case UI_EVENT_MENU:
  192. if ((SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID) == SYSTEM_APP_SUCCESS) &&
  193. (dObjectID != APP_GUIOBJ_BANNER) &&
  194. #ifndef CONFIG_SUPPORT_MONITOR
  195. (dObjectID != ATV_GUIOBJ_INPUTINFO) &&
  196. (dObjectID != APP_GUIOBJ_AMPLIFIERVOLUME) &&
  197. #endif
  198. (!((dObjectID == ATV_GUIOBJ_POPMSG) && (!APP_MenuMgr_Exist_Main_Menu()))) &&
  199. (!((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME
  200. #ifndef CONFIG_SUPPORT_MONITOR
  201. || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME
  202. #endif
  203. )))
  204. )
  205. {
  206. *pbEvent = UI_EVENT_RETURN;
  207. }
  208. break;
  209. case UI_EVENT_KEYPAD_LEFT:
  210. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  211. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  212. if (ret == SYSTEM_APP_SUCCESS)
  213. {
  214. if ((dObjectID == APP_GUIOBJ_BANNER) ||
  215. #ifndef CONFIG_SUPPORT_MONITOR
  216. (dObjectID == ATV_GUIOBJ_INPUTINFO) ||
  217. (dObjectID == ATV_GUIOBJ_PROGNUM) ||
  218. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  219. #endif
  220. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME
  221. #ifndef CONFIG_SUPPORT_MONITOR
  222. || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME
  223. #endif
  224. )) || ((dObjectID == ATV_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  225. {
  226. *pbEvent = UI_EVENT_VOL_DN;
  227. }
  228. else
  229. {
  230. *pbEvent = UI_EVENT_LEFT;
  231. }
  232. }
  233. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  234. {
  235. *pbEvent = UI_EVENT_VOL_DN;
  236. }
  237. break;
  238. case UI_EVENT_KEYPAD_RIGHT:
  239. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  240. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  241. if (ret == SYSTEM_APP_SUCCESS)
  242. {
  243. if ((dObjectID == APP_GUIOBJ_BANNER) ||
  244. #ifndef CONFIG_SUPPORT_MONITOR
  245. (dObjectID == ATV_GUIOBJ_INPUTINFO) ||
  246. (dObjectID == ATV_GUIOBJ_PROGNUM) ||
  247. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  248. #endif
  249. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME
  250. #ifndef CONFIG_SUPPORT_MONITOR
  251. || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME
  252. #endif
  253. )) || ((dObjectID == ATV_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  254. {
  255. *pbEvent = UI_EVENT_VOL_UP;
  256. }
  257. else
  258. {
  259. *pbEvent = UI_EVENT_RIGHT;
  260. }
  261. }
  262. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  263. {
  264. *pbEvent = UI_EVENT_VOL_UP;
  265. }
  266. break;
  267. case UI_EVENT_KEYPAD_UP:
  268. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  269. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  270. if (ret == SYSTEM_APP_SUCCESS)
  271. {
  272. if ((dObjectID == APP_GUIOBJ_BANNER) ||
  273. #ifndef CONFIG_SUPPORT_MONITOR
  274. (dObjectID == ATV_GUIOBJ_INPUTINFO) ||
  275. (dObjectID == ATV_GUIOBJ_PROGNUM) ||
  276. #endif
  277. ((dObjectID == ATV_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  278. {
  279. *pbEvent = UI_EVENT_CH_UP;
  280. }
  281. else
  282. {
  283. *pbEvent = UI_EVENT_UP;
  284. }
  285. }
  286. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  287. {
  288. *pbEvent = UI_EVENT_CH_UP;
  289. }
  290. break;
  291. case UI_EVENT_KEYPAD_DOWN:
  292. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  293. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  294. if (ret == SYSTEM_APP_SUCCESS)
  295. {
  296. if ((dObjectID == APP_GUIOBJ_BANNER) ||
  297. #ifndef CONFIG_SUPPORT_MONITOR
  298. (dObjectID == ATV_GUIOBJ_INPUTINFO) ||
  299. (dObjectID == ATV_GUIOBJ_PROGNUM) ||
  300. #endif
  301. ((dObjectID == ATV_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  302. {
  303. *pbEvent = UI_EVENT_CH_DN;
  304. }
  305. else
  306. {
  307. *pbEvent = UI_EVENT_DOWN;
  308. }
  309. }
  310. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  311. {
  312. *pbEvent = UI_EVENT_CH_DN;
  313. }
  314. break;
  315. case UI_EVENT_KEYPAD_SOURCE:
  316. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  317. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  318. if (ret == SYSTEM_APP_SUCCESS)
  319. {
  320. if ((dObjectID == ATV_GUIOBJ_POPMSG) && (eType == POPMSG_TYPE_CONFIRM))
  321. {
  322. *pbEvent = UI_EVENT_ENTER;
  323. }
  324. else
  325. {
  326. *pbEvent = UI_EVENT_SOURCE;
  327. }
  328. }
  329. else
  330. {
  331. *pbEvent = UI_EVENT_SOURCE;
  332. }
  333. break;
  334. default:
  335. break;
  336. }
  337. }
  338. #ifdef CONFIG_DTV_SUPPORT
  339. static void _DVB_IRKK_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  340. {
  341. INT32 dObjectID;
  342. sys_app_errorcode_t ret = SYSTEM_APP_SUCCESS;
  343. PopmsgType_t eType;
  344. #ifdef CONFIG_SUPPORT_MHEG5
  345. if(SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, DVB_GUIOBJ_MHEG5))
  346. {
  347. int sdRet = 0;
  348. if (SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID) != SYSTEM_APP_SUCCESS)
  349. {
  350. switch(*pbEvent)
  351. {
  352. case UI_EVENT_PLAY_PAUSE:
  353. case UI_EVENT_PLAY:
  354. case UI_EVENT_PAUSE:
  355. SYSAPP_GOBJ_SendMsgToSingleGUIObject(dSystemAppIndex, DVB_GUIOBJ_MHEG5, *pbEvent, (UINT32)&sdRet);
  356. return;
  357. default:
  358. break;
  359. }
  360. }
  361. }
  362. #endif
  363. switch(*pbEvent)
  364. {
  365. #ifdef CONFIG_SUPPORT_MHEG5
  366. case UI_EVENT_EXIT:
  367. case UI_EVENT_UP:
  368. case UI_EVENT_DOWN:
  369. case UI_EVENT_LEFT:
  370. case UI_EVENT_RIGHT:
  371. case UI_EVENT_RED:
  372. case UI_EVENT_GREEN:
  373. case UI_EVENT_BLUE:
  374. case UI_EVENT_YELLOW:
  375. {
  376. int sdRet = 0;
  377. if(SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, DVB_GUIOBJ_MHEG5))
  378. {
  379. if (SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID) != SYSTEM_APP_SUCCESS)
  380. {
  381. SYSAPP_GOBJ_SendMsgToSingleGUIObject(dSystemAppIndex, DVB_GUIOBJ_MHEG5, *pbEvent, (UINT32)&sdRet);
  382. }
  383. }
  384. break;
  385. }
  386. #endif
  387. #ifdef CONFIG_SUPPORT_3D_EN
  388. case UI_EVENT_PIP_MENU:
  389. *pbEvent = UI_EVENT_3D;
  390. break;
  391. #endif
  392. case UI_EVENT_TTX_INDEX:
  393. #ifdef CONFIG_SUPPORT_TTX
  394. if ((SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID) == SYSTEM_APP_SUCCESS) &&
  395. (dObjectID == DVB_GUIOBJ_TTX)
  396. )
  397. {
  398. break;
  399. }
  400. else
  401. #endif
  402. *pbEvent = UI_EVENT_CHLIST;
  403. break;
  404. #ifdef CONFIG_SUPPORT_TTX
  405. case UI_EVENT_10:
  406. if ((SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID) == SYSTEM_APP_SUCCESS) &&
  407. (dObjectID == DVB_GUIOBJ_TTX)
  408. )
  409. {
  410. *pbEvent = UI_EVENT_TTX_CANCEL;
  411. }
  412. break;
  413. case UI_EVENT_TVRADIO:
  414. if ((SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID) == GUI_OBJMGR_SUCCESS) &&
  415. (dObjectID == DVB_GUIOBJ_TTX)
  416. )
  417. {
  418. *pbEvent = UI_EVENT_TTX_HOLD;
  419. }
  420. break;
  421. #endif
  422. case UI_EVENT_MENU:
  423. if ((SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID) == SYSTEM_APP_SUCCESS) &&
  424. (dObjectID != APP_GUIOBJ_BANNER) &&
  425. (dObjectID != DVB_GUIOBJ_PROGINFO) &&
  426. (dObjectID != DVB_GUIOBJ_PROGNUM) &&
  427. (dObjectID != APP_GUIOBJ_AMPLIFIERVOLUME) &&
  428. #ifdef CONFIG_SUPPORT_TTX
  429. (dObjectID != DVB_GUIOBJ_TTX) &&
  430. #endif
  431. (!((dObjectID == DVB_GUIOBJ_POPMSG) && (!APP_MenuMgr_Exist_Main_Menu()))) &&
  432. (!((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)))
  433. #ifdef CONFIG_SUPPORT_PVR
  434. && (dObjectID != DVB_GUIOBJ_PVR_PLAYINFO)
  435. && (dObjectID != DVB_GUIOBJ_PVR_FILEPLAY)
  436. #endif
  437. )
  438. {
  439. *pbEvent = UI_EVENT_RETURN;
  440. }
  441. break;
  442. case UI_EVENT_PLAY_PAUSE:
  443. #ifdef CONFIG_SUPPORT_PVR
  444. if(SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, DVB_GUIOBJ_RECORDLIST)
  445. || SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, DVB_GUIOBJ_PVR_FILEPLAY)
  446. || (MID_RecorderState() != MID_REC_STATUS_STOP))
  447. {
  448. break;
  449. }
  450. else
  451. {
  452. *pbEvent = UI_EVENT_TIMESHIFT;
  453. }
  454. #endif
  455. break;
  456. case UI_EVENT_ASPECT:
  457. #ifdef CONFIG_SUPPORT_PVR
  458. /*if (MID_TSPLParser_GetThreadState() == TRUE)
  459. {
  460. UINT32 u32PEState = PE_STATE_IDLE;
  461. MID_TSPLParser_GetPlayState(&u32PEState, NULL);
  462. if (u32PEState == PE_STATE_PAUSE)
  463. {
  464. *pbEvent = UI_EVENT_NULL;
  465. }
  466. }*/
  467. #endif
  468. break;
  469. case UI_EVENT_KEYPAD_LEFT:
  470. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  471. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  472. if (ret == SYSTEM_APP_SUCCESS)
  473. {
  474. if ((dObjectID == DVB_GUIOBJ_PROGINFO) ||
  475. (dObjectID == DVB_GUIOBJ_PROGNUM) ||
  476. (dObjectID == APP_GUIOBJ_BANNER) ||
  477. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  478. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  479. ((dObjectID == DVB_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  480. {
  481. *pbEvent = UI_EVENT_VOL_DN;
  482. }
  483. else
  484. {
  485. *pbEvent = UI_EVENT_LEFT;
  486. }
  487. }
  488. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  489. {
  490. *pbEvent = UI_EVENT_VOL_DN;
  491. }
  492. break;
  493. case UI_EVENT_KEYPAD_RIGHT:
  494. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  495. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  496. if (ret == SYSTEM_APP_SUCCESS)
  497. {
  498. if ((dObjectID == DVB_GUIOBJ_PROGINFO) ||
  499. (dObjectID == DVB_GUIOBJ_PROGNUM) ||
  500. (dObjectID == APP_GUIOBJ_BANNER) ||
  501. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  502. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  503. ((dObjectID == DVB_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  504. {
  505. *pbEvent = UI_EVENT_VOL_UP;
  506. }
  507. else
  508. {
  509. *pbEvent = UI_EVENT_RIGHT;
  510. }
  511. }
  512. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  513. {
  514. *pbEvent = UI_EVENT_VOL_UP;
  515. }
  516. break;
  517. case UI_EVENT_KEYPAD_UP:
  518. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  519. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  520. if (ret == SYSTEM_APP_SUCCESS)
  521. {
  522. if ((dObjectID == DVB_GUIOBJ_PROGINFO) ||
  523. (dObjectID == DVB_GUIOBJ_PROGNUM) ||
  524. (dObjectID == APP_GUIOBJ_BANNER) ||
  525. ((dObjectID == DVB_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  526. {
  527. *pbEvent = UI_EVENT_CH_UP;
  528. }
  529. else
  530. {
  531. *pbEvent = UI_EVENT_UP;
  532. }
  533. }
  534. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  535. {
  536. *pbEvent = UI_EVENT_CH_UP;
  537. }
  538. break;
  539. case UI_EVENT_KEYPAD_DOWN:
  540. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  541. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  542. if (ret == SYSTEM_APP_SUCCESS)
  543. {
  544. if ((dObjectID == DVB_GUIOBJ_PROGINFO) ||
  545. (dObjectID == DVB_GUIOBJ_PROGNUM) ||
  546. (dObjectID == APP_GUIOBJ_BANNER) ||
  547. ((dObjectID == DVB_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  548. {
  549. *pbEvent = UI_EVENT_CH_DN;
  550. }
  551. else
  552. {
  553. *pbEvent = UI_EVENT_DOWN;
  554. }
  555. }
  556. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  557. {
  558. *pbEvent = UI_EVENT_CH_DN;
  559. }
  560. break;
  561. case UI_EVENT_KEYPAD_SOURCE:
  562. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  563. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  564. if (ret == SYSTEM_APP_SUCCESS)
  565. {
  566. if ((dObjectID == DVB_GUIOBJ_POPMSG) && (eType == POPMSG_TYPE_CONFIRM))
  567. {
  568. *pbEvent = UI_EVENT_ENTER;
  569. }
  570. else
  571. {
  572. *pbEvent = UI_EVENT_SOURCE;
  573. }
  574. }
  575. else
  576. {
  577. *pbEvent = UI_EVENT_SOURCE;
  578. }
  579. break;
  580. case UI_EVENT_KEYPAD_POWER:
  581. /*AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER, 0,
  582. sizeof(APP_SETTING_FactoryUser_t), &(g_stFactoryUserData));
  583. if(g_stFactoryUserData.n_FactSet_BurningMode == 1)
  584. {
  585. break;
  586. }
  587. *pbEvent = UI_EVENT_POWER;*/
  588. break;
  589. #if defined(CONFIG_DVB_SYSTEM) || defined(CONFIG_AUS_DVB_SYSTEM)
  590. case UI_EVENT_AD:
  591. *pbEvent = UI_EVENT_MultiPanelIndex;
  592. break;
  593. #endif
  594. default:
  595. break;
  596. }
  597. }
  598. #endif
  599. #ifdef CONFIG_MEDIA_ENABLE
  600. static void _FILE_Player_IRKK_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  601. {
  602. INT32 dObjectID;
  603. sys_app_errorcode_t ret = SYSTEM_APP_SUCCESS;
  604. PopmsgType_t eType;
  605. switch(*pbEvent)
  606. {
  607. case UI_EVENT_MENU:
  608. if ((APP_MenuMgr_Exist_Main_Menu()) ||
  609. (APP_MenuMgr_Exist_Factory_Menu()) ||
  610. //#ifndef CONFIG_ISDB_SYSTEM
  611. (SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, APP_GUIOBJ_INITINSTALL)) ||
  612. //#endif
  613. (SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, APP_GUIOBJ_AMPLIFIERVOLUME)) ||
  614. ((SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, APP_GUIOBJ_ADJUST)) &&
  615. (APP_GUIOBJ_Adjust_GetType() != ADJUST_VOLUME) &&
  616. (APP_GUIOBJ_Adjust_GetType() != ADJUST_HDMICEC_AMPVOLUME)))
  617. {
  618. *pbEvent = UI_EVENT_RETURN;
  619. }
  620. break;
  621. #ifdef CONFIG_SUPPORT_3D_EN
  622. case UI_EVENT_PIP_MENU:
  623. *pbEvent = UI_EVENT_3D;
  624. break;
  625. #endif
  626. case UI_EVENT_KEYPAD_LEFT:
  627. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  628. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  629. if (ret == SYSTEM_APP_SUCCESS)
  630. {
  631. if ((dObjectID == MEDIA_GUIOBJ_MOVIE_PLAYBACK) ||
  632. (dObjectID == MEDIA_GUIOBJ_PHOTO_PLAYBACK) ||
  633. (dObjectID == APP_GUIOBJ_BANNER) ||
  634. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  635. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  636. //((dObjectID == MEDIA_GUIOBJ_HOMEPAGE) && (dvb_FileBrowser_GetAudioPlayState() != MEDIA_STATE_STOP)) ||
  637. ((dObjectID == MEDIA_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  638. {
  639. *pbEvent = UI_EVENT_VOL_DN;
  640. }
  641. else
  642. {
  643. *pbEvent = UI_EVENT_LEFT;
  644. }
  645. }
  646. break;
  647. case UI_EVENT_KEYPAD_RIGHT:
  648. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  649. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  650. if (ret == SYSTEM_APP_SUCCESS)
  651. {
  652. if ((dObjectID == MEDIA_GUIOBJ_MOVIE_PLAYBACK) ||
  653. (dObjectID == MEDIA_GUIOBJ_PHOTO_PLAYBACK) ||
  654. (dObjectID == APP_GUIOBJ_BANNER) ||
  655. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  656. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  657. //((dObjectID == MEDIA_GUIOBJ_HOMEPAGE) && (dvb_FileBrowser_GetAudioPlayState() != MEDIA_STATE_STOP)) ||
  658. ((dObjectID == MEDIA_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  659. {
  660. *pbEvent = UI_EVENT_VOL_UP;
  661. }
  662. else
  663. {
  664. *pbEvent = UI_EVENT_RIGHT;
  665. }
  666. }
  667. break;
  668. case UI_EVENT_KEYPAD_UP:
  669. *pbEvent = UI_EVENT_UP;
  670. break;
  671. case UI_EVENT_KEYPAD_DOWN:
  672. *pbEvent = UI_EVENT_DOWN;
  673. break;
  674. case UI_EVENT_KEYPAD_SOURCE:
  675. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  676. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  677. if (ret == SYSTEM_APP_SUCCESS)
  678. {
  679. if ((dObjectID == MEDIA_GUIOBJ_POPMSG) && (eType == POPMSG_TYPE_CONFIRM))
  680. {
  681. *pbEvent = UI_EVENT_ENTER;
  682. }
  683. else
  684. {
  685. *pbEvent = UI_EVENT_SOURCE;
  686. }
  687. }
  688. else
  689. {
  690. *pbEvent = UI_EVENT_SOURCE;
  691. }
  692. break;
  693. case UI_EVENT_KEYPAD_POWER:
  694. //*pbEvent = UI_EVENT_POWER;
  695. break;
  696. #if defined(CONFIG_DVB_SYSTEM) || defined(CONFIG_AUS_DVB_SYSTEM)
  697. case UI_EVENT_AD:
  698. *pbEvent = UI_EVENT_MultiPanelIndex;
  699. break;
  700. #endif
  701. default:
  702. break;
  703. }
  704. }
  705. #endif
  706. #ifdef NET_SUPPORT
  707. static void _Network_IRKK_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  708. {
  709. switch(*pbEvent)
  710. {
  711. case UI_EVENT_MENU:
  712. break;
  713. case UI_EVENT_KEYPAD_LEFT:
  714. *pbEvent = UI_EVENT_LEFT;
  715. break;
  716. case UI_EVENT_KEYPAD_RIGHT:
  717. *pbEvent = UI_EVENT_RIGHT;
  718. break;
  719. case UI_EVENT_KEYPAD_UP:
  720. *pbEvent = UI_EVENT_UP;
  721. break;
  722. case UI_EVENT_KEYPAD_DOWN:
  723. *pbEvent = UI_EVENT_DOWN;
  724. break;
  725. case UI_EVENT_KEYPAD_SOURCE:
  726. *pbEvent = UI_EVENT_SOURCE;
  727. break;
  728. case UI_EVENT_KEYPAD_POWER:
  729. *pbEvent = UI_EVENT_POWER;
  730. break;
  731. default:
  732. break;
  733. }
  734. }
  735. #endif
  736. void IRKK_EventConvert(UINT32 *pbEvent)
  737. {
  738. UINT32 dSystemAppIndex;
  739. if (MAINAPP_GetActiveSystemAppIndex(&dSystemAppIndex) == MAIN_APP_SUCCESS)
  740. {
  741. switch(dSystemAppIndex)
  742. {
  743. case SYS_APP_ATV:
  744. _ATV_IRKK_Event_convert(dSystemAppIndex, pbEvent);
  745. break;
  746. #ifdef CONFIG_DTV_SUPPORT
  747. case SYS_APP_DVB:
  748. _DVB_IRKK_Event_convert(dSystemAppIndex, pbEvent);
  749. break;
  750. #endif
  751. #ifdef CONFIG_MEDIA_ENABLE
  752. case SYS_APP_FILE_PLAYER:
  753. _FILE_Player_IRKK_Event_convert(dSystemAppIndex, pbEvent);
  754. break;
  755. #endif
  756. #ifdef CONFIG_SUPPORT_NETAPP
  757. case SYS_APP_NETWORK:
  758. _Network_IRKK_Event_convert(dSystemAppIndex, pbEvent);
  759. break;
  760. #endif
  761. default:
  762. break;
  763. }
  764. }
  765. }