irrca1_map.c 24 KB

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