iraoc_map.c 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646
  1. /********************************************************************
  2. ** File Name: iraoc_map.c (iraoc)
  3. **
  4. ** File Description: this file is sunplus ir Sis 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 "iraoc_map.h"
  13. #include "app_event.h"
  14. #include "sysapp_table.h"
  15. #include "main_app.h"
  16. #include "sysapp_if.h"
  17. #include "app_guiobj_popmsg.h"
  18. #include "app_menumgr.h"
  19. #include "app_guiobj_adjust.h"
  20. #ifdef CONFIG_ATV_SUPPORT
  21. #include "atv_guiobj_table.h"
  22. #ifdef CONFIG_SUPPORT_IR_TX
  23. #include "ir_tx_mapping_table.h"
  24. #include "board_config.h"
  25. #endif
  26. #include "app_guiobj_source.h"
  27. #include "umf_cec.h"
  28. #endif
  29. #ifdef CONFIG_DTV_SUPPORT
  30. #if defined(CONFIG_DVB_SYSTEM) || defined(CONFIG_AUS_DVB_SYSTEM) || defined(CONFIG_DTMB_SYSTEM)
  31. #include "dvb_guiobj_table.h"
  32. #endif
  33. #ifdef CONFIG_ISDB_SYSTEM
  34. #include "app_guiobj_sbtvd_table.h"
  35. #endif
  36. #endif
  37. #ifdef CONFIG_MEDIA_ENABLE
  38. #include "MM_browser_gui.h"
  39. #endif
  40. #ifdef CONFIG_SUPPORT_PVR
  41. #include "mid_recorder.h"
  42. //#include "middlewares/dvb/dvb_tspl/mid_tspl.h"
  43. #endif
  44. #ifdef CONFIG_SUPPORT_ATV_SCAN_NTSCM_PALM_N
  45. #include "app_guiobj_source.h"
  46. #endif
  47. #include "ir_map.h"
  48. #ifdef CONFIG_SUPPORT_IR_TX
  49. typedef struct
  50. {
  51. AppGlobalEvent_t eRxEvent;
  52. IR_TX_EVENT eTxEvent;
  53. } IR_CONVERT_st, *pIR_CONVERT_st;
  54. IR_CONVERT_st stIRAOCTxConvertTable[] =
  55. {
  56. {UI_EVENT_0, IR_TX_NUM0},
  57. {UI_EVENT_1, IR_TX_NUM1},
  58. {UI_EVENT_2, IR_TX_NUM2},
  59. {UI_EVENT_3, IR_TX_NUM3},
  60. {UI_EVENT_4, IR_TX_NUM4},
  61. {UI_EVENT_5, IR_TX_NUM5},
  62. {UI_EVENT_6, IR_TX_NUM6},
  63. {UI_EVENT_7, IR_TX_NUM7},
  64. {UI_EVENT_8, IR_TX_NUM8},
  65. {UI_EVENT_9, IR_TX_NUM9},
  66. {UI_EVENT_10, IR_TX_ADD10},
  67. {UI_EVENT_AUDIO, IR_TX_AUDIO},
  68. {UI_EVENT_PLAY, IR_TX_PLAY},
  69. {UI_EVENT_PAUSE, IR_TX_PAUSE},
  70. {UI_EVENT_PLAY_PAUSE, IR_TX_PLAY_PAUSE},
  71. {UI_EVENT_STOP, IR_TX_STOP},
  72. {UI_EVENT_NEXT, IR_TX_NEXT},
  73. {UI_EVENT_PREV, IR_TX_PREV},
  74. {UI_EVENT_FF, IR_TX_FF},
  75. {UI_EVENT_FR, IR_TX_FR},
  76. {UI_EVENT_UP, IR_TX_UP},
  77. {UI_EVENT_DOWN, IR_TX_DOWN},
  78. {UI_EVENT_LEFT, IR_TX_LEFT},
  79. {UI_EVENT_RIGHT, IR_TX_RIGHT},
  80. {UI_EVENT_RETURN, IR_TX_RETURN},
  81. {UI_EVENT_ENTER, IR_TX_PLAY_ENTER},
  82. {UI_EVENT_EXIT, IR_TX_EXIT},
  83. {UI_EVENT_SUBTITLE, IR_TX_SUB_TITLE},
  84. {UI_EVENT_DISPLAY, IR_TX_DISPLAY},
  85. {UI_EVENT_SRC_USB, IR_TX_USB_CARD},
  86. {UI_EVENT_CHLIST, IR_TX_SETUP},
  87. #ifdef CELLO_REMOTE_KEY
  88. {UI_EVENT_DVD, IR_TX_SETUP},
  89. #endif
  90. };
  91. UINT8 bIRAOCConvertTableSize = sizeof(stIRAOCTxConvertTable)/sizeof(IR_CONVERT_st);
  92. static void _TX_IRAOC_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  93. {
  94. INT32 dObjectID;
  95. sys_app_errorcode_t ret = SYSTEM_APP_SUCCESS;
  96. IR_TX_EVENT eEvent = IR_TX_MAX;
  97. pIR_CONVERT_st pIRConvertTable = stIRAOCTxConvertTable;
  98. UINT8 bIndex = 0;
  99. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  100. if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  101. {
  102. while(bIndex < bIRAOCConvertTableSize)
  103. {
  104. if (pIRConvertTable[bIndex].eRxEvent == *pbEvent)
  105. {
  106. eEvent = pIRConvertTable[bIndex].eTxEvent;
  107. if (TRUE == APP_Ir_Tx_SendEvent(eEvent))
  108. {
  109. *pbEvent = UI_EVENT_NULL;
  110. }
  111. break;
  112. }
  113. bIndex++;
  114. }
  115. }
  116. }
  117. #endif
  118. UINT8 IRAOC_GetKeyCodeEvent(UINT32 cid, UINT8 u8Keycode, UINT32 * u32Event)
  119. {
  120. UINT8 i;
  121. UINT32 j = 0;
  122. if (u32Event == NULL)
  123. {
  124. return FALSE;
  125. }
  126. while (j < dIR_map_size)
  127. {
  128. if (strncmp((char *) (stIR_map[j].IRName), "IRAOC", strlen((char *) (stIR_map[j].IRName))) == 0)
  129. {
  130. for (i = 0; i < stIR_map[j].IR_Count; i++)
  131. {
  132. if (stIR_map[j].pdIR_Map[i].Keycode == u8Keycode && stIR_map[j].pdIR_Map[i].CusCode == cid)
  133. {
  134. *u32Event = stIR_map[j].pdIR_Map[i].Event;
  135. return TRUE;
  136. }
  137. }
  138. }
  139. j++;
  140. }
  141. return FALSE;
  142. }
  143. #ifdef CONFIG_ATV_SUPPORT
  144. static void _ATV_IRAOC_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  145. {
  146. INT32 dObjectID;
  147. sys_app_errorcode_t ret = SYSTEM_APP_SUCCESS;
  148. PopmsgType_t eType;
  149. #if defined(SUPPORT_CEC_TV) || defined(CONFIG_SUPPORT_IR_TX)
  150. APP_Source_Type_t eSourceType = APP_SOURCE_MAX;
  151. APP_GUIOBJ_Source_GetCurrSource(&eSourceType);
  152. #endif
  153. #ifdef CONFIG_SUPPORT_IR_TX
  154. if (APP_SOURCE_DVD == eSourceType)
  155. {
  156. _TX_IRAOC_Event_convert(dSystemAppIndex, pbEvent);
  157. }
  158. #endif
  159. switch(*pbEvent)
  160. {
  161. case UI_EVENT_MENU:
  162. if ((SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID) == SYSTEM_APP_SUCCESS) &&
  163. (dObjectID != APP_GUIOBJ_BANNER) &&
  164. (dObjectID != ATV_GUIOBJ_INPUTINFO) &&
  165. (dObjectID != ATV_GUIOBJ_PROGNUM) &&
  166. #ifdef CONFIG_SUPPORT_PVR
  167. (dObjectID != DVB_GUIOBJ_SUBTITLEMENU)&&
  168. #endif
  169. #ifdef SUPPORT_CEC_TV
  170. (dObjectID != APP_GUIOBJ_AMPLIFIERVOLUME) &&
  171. #endif
  172. #ifdef CONFIG_SUPPORT_TTX
  173. (dObjectID != ATV_GUIOBJ_TTX) &&
  174. #endif
  175. (!((dObjectID == ATV_GUIOBJ_POPMSG) && (!APP_MenuMgr_Exist_Main_Menu()))) &&
  176. (!((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)))
  177. && (dObjectID != APP_GUIOBJ_SOURCE)
  178. //&&(dObjectID != ATV_GUIOBJ_FAVLIST)
  179. //&&(dObjectID != ATV_GUIOBJ_CHNLIST)
  180. )
  181. {
  182. *pbEvent = UI_EVENT_RETURN;
  183. }
  184. break;
  185. case UI_EVENT_KEYPAD_LEFT:
  186. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  187. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  188. if (ret == SYSTEM_APP_SUCCESS)
  189. {
  190. if ((dObjectID == ATV_GUIOBJ_INPUTINFO) ||
  191. (dObjectID == ATV_GUIOBJ_PROGNUM) ||
  192. (dObjectID == APP_GUIOBJ_BANNER) ||
  193. #ifdef SUPPORT_CEC_TV
  194. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  195. #endif
  196. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  197. ((dObjectID == ATV_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  198. {
  199. *pbEvent = UI_EVENT_VOL_DN;
  200. }
  201. else
  202. {
  203. *pbEvent = UI_EVENT_LEFT;
  204. }
  205. }
  206. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  207. {
  208. *pbEvent = UI_EVENT_VOL_DN;
  209. }
  210. break;
  211. case UI_EVENT_KEYPAD_RIGHT:
  212. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  213. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  214. if (ret == SYSTEM_APP_SUCCESS)
  215. {
  216. if ((dObjectID == ATV_GUIOBJ_INPUTINFO) ||
  217. (dObjectID == ATV_GUIOBJ_PROGNUM) ||
  218. (dObjectID == APP_GUIOBJ_BANNER) ||
  219. #ifdef SUPPORT_CEC_TV
  220. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  221. #endif
  222. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  223. ((dObjectID == ATV_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  224. {
  225. *pbEvent = UI_EVENT_VOL_UP;
  226. }
  227. else
  228. {
  229. *pbEvent = UI_EVENT_RIGHT;
  230. }
  231. }
  232. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  233. {
  234. *pbEvent = UI_EVENT_VOL_UP;
  235. }
  236. break;
  237. case UI_EVENT_KEYPAD_UP:
  238. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  239. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  240. if (ret == SYSTEM_APP_SUCCESS)
  241. {
  242. if ((dObjectID == ATV_GUIOBJ_INPUTINFO) ||
  243. (dObjectID == ATV_GUIOBJ_PROGNUM) ||
  244. (dObjectID == APP_GUIOBJ_BANNER) ||
  245. ((dObjectID == ATV_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  246. {
  247. *pbEvent = UI_EVENT_CH_UP;
  248. }
  249. else
  250. {
  251. *pbEvent = UI_EVENT_UP;
  252. }
  253. }
  254. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  255. {
  256. *pbEvent = UI_EVENT_CH_UP;
  257. }
  258. break;
  259. case UI_EVENT_KEYPAD_DOWN:
  260. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  261. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  262. if (ret == SYSTEM_APP_SUCCESS)
  263. {
  264. if ((dObjectID == ATV_GUIOBJ_INPUTINFO) ||
  265. (dObjectID == ATV_GUIOBJ_PROGNUM) ||
  266. (dObjectID == APP_GUIOBJ_BANNER) ||
  267. ((dObjectID == ATV_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  268. {
  269. *pbEvent = UI_EVENT_CH_DN;
  270. }
  271. else
  272. {
  273. *pbEvent = UI_EVENT_DOWN;
  274. }
  275. }
  276. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  277. {
  278. *pbEvent = UI_EVENT_CH_DN;
  279. }
  280. break;
  281. case UI_EVENT_KEYPAD_SOURCE:
  282. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  283. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  284. if (ret == SYSTEM_APP_SUCCESS)
  285. {
  286. if ((dObjectID == ATV_GUIOBJ_POPMSG) && (eType == POPMSG_TYPE_CONFIRM))
  287. {
  288. *pbEvent = UI_EVENT_ENTER;
  289. }
  290. else
  291. {
  292. *pbEvent = UI_EVENT_SOURCE;
  293. }
  294. }
  295. else
  296. {
  297. *pbEvent = UI_EVENT_SOURCE;
  298. }
  299. break;
  300. #ifdef SUPPORT_CEC_TV
  301. case UI_EVENT_RED:
  302. if (CECTV_GetCECEnable() == CECTV_ENABLE)
  303. {
  304. if ((eSourceType == APP_SOURCE_HDMI) ||
  305. (eSourceType == APP_SOURCE_HDMI1) ||
  306. (eSourceType == APP_SOURCE_HDMI2))
  307. {
  308. *pbEvent = UI_EVENT_PREV;
  309. }
  310. }
  311. break;
  312. case UI_EVENT_GREEN:
  313. if (CECTV_GetCECEnable() == CECTV_ENABLE)
  314. {
  315. if ((eSourceType == APP_SOURCE_HDMI) ||
  316. (eSourceType == APP_SOURCE_HDMI1) ||
  317. (eSourceType == APP_SOURCE_HDMI2))
  318. {
  319. *pbEvent = UI_EVENT_PLAY_PAUSE;
  320. }
  321. }
  322. break;
  323. case UI_EVENT_YELLOW:
  324. if (CECTV_GetCECEnable() == CECTV_ENABLE)
  325. {
  326. if ((eSourceType == APP_SOURCE_HDMI) ||
  327. (eSourceType == APP_SOURCE_HDMI1) ||
  328. (eSourceType == APP_SOURCE_HDMI2))
  329. {
  330. *pbEvent = UI_EVENT_STOP;
  331. }
  332. }
  333. break;
  334. case UI_EVENT_BLUE:
  335. if (CECTV_GetCECEnable() == CECTV_ENABLE)
  336. {
  337. if ((eSourceType == APP_SOURCE_HDMI) ||
  338. (eSourceType == APP_SOURCE_HDMI1) ||
  339. (eSourceType == APP_SOURCE_HDMI2))
  340. {
  341. *pbEvent = UI_EVENT_NEXT;
  342. }
  343. }
  344. break;
  345. #endif
  346. default:
  347. break;
  348. }
  349. }
  350. #endif
  351. #ifdef CONFIG_DTV_SUPPORT
  352. static void _DVB_IRAOC_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  353. {
  354. INT32 dObjectID;
  355. sys_app_errorcode_t ret = SYSTEM_APP_SUCCESS;
  356. PopmsgType_t eType;
  357. switch(*pbEvent)
  358. {
  359. #ifdef CONFIG_SUPPORT_MHEG5
  360. case UI_EVENT_EXIT:
  361. case UI_EVENT_UP:
  362. case UI_EVENT_DOWN:
  363. case UI_EVENT_LEFT:
  364. case UI_EVENT_RIGHT:
  365. case UI_EVENT_RED:
  366. case UI_EVENT_GREEN:
  367. case UI_EVENT_BLUE:
  368. case UI_EVENT_YELLOW:
  369. {
  370. int sdRet = 0;
  371. if(SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, DVB_GUIOBJ_MHEG5))
  372. {
  373. if (SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID) != SYSTEM_APP_SUCCESS)
  374. {
  375. SYSAPP_GOBJ_SendMsgToSingleGUIObject(dSystemAppIndex, DVB_GUIOBJ_MHEG5, *pbEvent, (UINT32)&sdRet);
  376. }
  377. }
  378. break;
  379. }
  380. #endif
  381. case UI_EVENT_MENU:
  382. if ((SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID) == SYSTEM_APP_SUCCESS) &&
  383. (dObjectID != APP_GUIOBJ_BANNER) &&
  384. (dObjectID != DVB_GUIOBJ_PROGINFO) &&
  385. (dObjectID != DVB_GUIOBJ_PROGNUM) &&
  386. #ifdef SUPPORT_CEC_TV
  387. (dObjectID != APP_GUIOBJ_AMPLIFIERVOLUME) &&
  388. #endif
  389. (dObjectID != DVB_GUIOBJ_EPG) &&
  390. #ifdef CONFIG_SUPPORT_TTX
  391. (dObjectID != DVB_GUIOBJ_TTX) &&
  392. #endif
  393. (!((dObjectID == DVB_GUIOBJ_POPMSG) && (!APP_MenuMgr_Exist_Main_Menu()))) &&
  394. (!((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)))
  395. #ifdef CONFIG_SUPPORT_PVR
  396. && (dObjectID != DVB_GUIOBJ_PVR_REC)
  397. //&& (dObjectID != DVB_GUIOBJ_PVR_TIMESHIFT_NEW)
  398. #endif
  399. && (dObjectID != APP_GUIOBJ_SOURCE)
  400. //&&(dObjectID != DVB_GUIOBJ_SUBTITLEMENU)
  401. &&(dObjectID != DVB_GUIOBJ_MULTIAUD)
  402. //&&(dObjectID != DVB_GUIOBJ_FAVLIST)
  403. //&&(dObjectID != DVB_GUIOBJ_CHNLIST)
  404. )
  405. {
  406. *pbEvent = UI_EVENT_RETURN;
  407. }
  408. break;
  409. case UI_EVENT_KEYPAD_LEFT:
  410. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  411. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  412. if (ret == SYSTEM_APP_SUCCESS)
  413. {
  414. if ((dObjectID == DVB_GUIOBJ_PROGINFO) ||
  415. (dObjectID == DVB_GUIOBJ_PROGNUM) ||
  416. (dObjectID == APP_GUIOBJ_BANNER) ||
  417. #ifdef SUPPORT_CEC_TV
  418. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  419. #endif
  420. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  421. ((dObjectID == DVB_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  422. {
  423. *pbEvent = UI_EVENT_VOL_DN;
  424. }
  425. else
  426. {
  427. *pbEvent = UI_EVENT_LEFT;
  428. }
  429. }
  430. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  431. {
  432. *pbEvent = UI_EVENT_VOL_DN;
  433. }
  434. break;
  435. case UI_EVENT_KEYPAD_RIGHT:
  436. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  437. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  438. if (ret == SYSTEM_APP_SUCCESS)
  439. {
  440. if ((dObjectID == DVB_GUIOBJ_PROGINFO) ||
  441. (dObjectID == DVB_GUIOBJ_PROGNUM) ||
  442. (dObjectID == APP_GUIOBJ_BANNER) ||
  443. #ifdef SUPPORT_CEC_TV
  444. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  445. #endif
  446. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  447. ((dObjectID == DVB_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  448. {
  449. *pbEvent = UI_EVENT_VOL_UP;
  450. }
  451. else
  452. {
  453. *pbEvent = UI_EVENT_RIGHT;
  454. }
  455. }
  456. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  457. {
  458. *pbEvent = UI_EVENT_VOL_UP;
  459. }
  460. break;
  461. case UI_EVENT_KEYPAD_UP:
  462. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  463. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  464. if (ret == SYSTEM_APP_SUCCESS)
  465. {
  466. if ((dObjectID == DVB_GUIOBJ_PROGINFO) ||
  467. //(dObjectID == DVB_GUIOBJ_INFONUM) ||
  468. (dObjectID == DVB_GUIOBJ_PROGNUM) ||
  469. (dObjectID == APP_GUIOBJ_BANNER) ||
  470. ((dObjectID == DVB_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  471. {
  472. *pbEvent = UI_EVENT_CH_UP;
  473. }
  474. else
  475. {
  476. *pbEvent = UI_EVENT_UP;
  477. }
  478. }
  479. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  480. {
  481. *pbEvent = UI_EVENT_CH_UP;
  482. }
  483. break;
  484. case UI_EVENT_KEYPAD_DOWN:
  485. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  486. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  487. if (ret == SYSTEM_APP_SUCCESS)
  488. {
  489. if ((dObjectID == DVB_GUIOBJ_PROGINFO) ||
  490. //(dObjectID == DVB_GUIOBJ_INFONUM) ||
  491. (dObjectID == DVB_GUIOBJ_PROGNUM) ||
  492. (dObjectID == APP_GUIOBJ_BANNER) ||
  493. ((dObjectID == DVB_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  494. {
  495. *pbEvent = UI_EVENT_CH_DN;
  496. }
  497. else
  498. {
  499. *pbEvent = UI_EVENT_DOWN;
  500. }
  501. }
  502. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  503. {
  504. *pbEvent = UI_EVENT_CH_DN;
  505. }
  506. break;
  507. case UI_EVENT_STOP:
  508. #ifdef CONFIG_SUPPORT_PVR
  509. if(APP_MenuMgr_Exist_Main_Menu() && (MID_RecorderState() != MID_REC_STATUS_STOP))
  510. {
  511. *pbEvent |= PASS_TO_SYSAPP;
  512. }
  513. #endif
  514. break;
  515. case UI_EVENT_KEYPAD_SOURCE:
  516. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  517. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  518. if (ret == SYSTEM_APP_SUCCESS)
  519. {
  520. if ((dObjectID == DVB_GUIOBJ_POPMSG) && (eType == POPMSG_TYPE_CONFIRM))
  521. {
  522. *pbEvent = UI_EVENT_ENTER;
  523. }
  524. else
  525. {
  526. *pbEvent = UI_EVENT_SOURCE;
  527. }
  528. }
  529. else
  530. {
  531. *pbEvent = UI_EVENT_SOURCE;
  532. }
  533. break;
  534. default:
  535. break;
  536. }
  537. }
  538. #endif
  539. #ifdef CONFIG_MEDIA_ENABLE
  540. static void _FILE_Player_IRAOC_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  541. {
  542. switch(*pbEvent)
  543. {
  544. case UI_EVENT_MENU:
  545. #if 0
  546. if ((APP_MenuMgr_Need_Change_MenuKey()) ||
  547. (APP_MenuMgr_Exist_Factory_Menu()) ||
  548. #ifdef CONFIG_SUPPORT_FIRST_TIME_SETUP
  549. #ifndef CONFIG_ISDB_SYSTEM
  550. (SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, APP_GUIOBJ_INITINSTALL)) ||
  551. #endif
  552. #endif
  553. #ifdef SUPPORT_CEC_TV
  554. (SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, APP_GUIOBJ_AMPLIFIERVOLUME)) ||
  555. #endif
  556. ((SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, APP_GUIOBJ_ADJUST)) &&
  557. (APP_GUIOBJ_Adjust_GetType() != ADJUST_VOLUME) &&
  558. (APP_GUIOBJ_Adjust_GetType() != ADJUST_HDMICEC_AMPVOLUME)))
  559. {
  560. *pbEvent = UI_EVENT_RETURN;
  561. }
  562. #endif
  563. if (((SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, MEDIA_GUIOBJ_PHOTO_PLAYBACK))
  564. || (SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, MEDIA_GUIOBJ_MUSIC_PLAYBACK))
  565. || (SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, MEDIA_GUIOBJ_MOVIE_PLAYBACK))
  566. || (SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, MEDIA_GUIOBJ_EBOOK_PLAYBACK)))
  567. && (*pbEvent == UI_EVENT_MENU))
  568. {
  569. *pbEvent = UI_EVENT_MENU;
  570. }
  571. else
  572. {
  573. *pbEvent = UI_EVENT_NULL;
  574. }
  575. break;
  576. case UI_EVENT_RED:
  577. *pbEvent = UI_EVENT_PREV;
  578. break;
  579. case UI_EVENT_GREEN:
  580. *pbEvent = UI_EVENT_PLAY_PAUSE;
  581. break;
  582. case UI_EVENT_YELLOW:
  583. *pbEvent = UI_EVENT_STOP;
  584. break;
  585. case UI_EVENT_BLUE:
  586. *pbEvent = UI_EVENT_NEXT;
  587. break;
  588. case UI_EVENT_CH_UP:
  589. *pbEvent = UI_EVENT_PREV;
  590. break;
  591. case UI_EVENT_CH_DN:
  592. *pbEvent = UI_EVENT_NEXT;
  593. break;
  594. default:
  595. break;
  596. }
  597. }
  598. #endif
  599. void IRAOC_EventConvert(UINT32 *pbEvent)
  600. {
  601. UINT32 dSystemAppIndex;
  602. if (MAINAPP_GetActiveSystemAppIndex(&dSystemAppIndex) == MAIN_APP_SUCCESS)
  603. {
  604. switch(dSystemAppIndex)
  605. {
  606. #ifdef CONFIG_ATV_SUPPORT
  607. case SYS_APP_ATV:
  608. _ATV_IRAOC_Event_convert(dSystemAppIndex, pbEvent);
  609. break;
  610. #endif
  611. #ifdef CONFIG_DTV_SUPPORT
  612. case SYS_APP_DVB:
  613. _DVB_IRAOC_Event_convert(dSystemAppIndex, pbEvent);
  614. break;
  615. #endif
  616. #ifdef CONFIG_MEDIA_ENABLE
  617. case SYS_APP_FILE_PLAYER:
  618. _FILE_Player_IRAOC_Event_convert(dSystemAppIndex, pbEvent);
  619. break;
  620. #endif
  621. #ifdef CONFIG_SUPPORT_NETAPP
  622. case SYS_APP_NETWORK:
  623. break;
  624. #endif
  625. default:
  626. break;
  627. }
  628. }
  629. }