irsonic8_map.c 18 KB

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