keypad_mapping.c 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795
  1. /*******************************************************************************
  2. * @file keypad_mapping.c
  3. * @note Copyright (c) 2011 Sunplus-prof Technology Co., Ltd.
  4. * @log
  5. * Revision 0.1 2011/04/14
  6. * create
  7. *******************************************************************************/
  8. /*******************************************************************************
  9. * Header Files
  10. ******************************************************************************/
  11. #include "board_config.h"
  12. #include "sysapp_table.h"
  13. #include "main_app.h"
  14. #include "sysapp_if.h"
  15. #include "gobj_mgr.h"
  16. #include "app_guiobj_popmsg.h"
  17. #include "keypad_mapping_table.h"
  18. #include "app_menumgr.h"
  19. #include "app_guiobj_adjust.h"
  20. #ifdef CONFIG_ATV_SUPPORT
  21. #include "atv_guiobj_table.h"
  22. #endif
  23. #if defined(CONFIG_DVB_SYSTEM) || defined(CONFIG_AUS_DVB_SYSTEM) || defined(CONFIG_DTMB_SYSTEM)
  24. #include "dvb_guiobj_table.h"
  25. #endif
  26. #ifdef CONFIG_ISDB_SYSTEM
  27. #include "app_guiobj_sbtvd_table.h"
  28. #endif
  29. #ifdef CONFIG_MEDIA_ENABLE
  30. #include "MM_browser_gui.h"
  31. #include "MM_EBook_gui.h"
  32. #include "MM_music_playback_gui.h"
  33. #endif
  34. #ifdef SUPPORT_FACTORY_AUTO_TEST
  35. //#include "Debug_msg.h"
  36. #endif
  37. #include "app_data_setting.h"
  38. /*******************************************************************************
  39. * Global Variables
  40. ******************************************************************************/
  41. #define KEYPAD_SARADC_DEBAUCE_COUNT 1
  42. #define KEYPAD_SARADC_REPEAT_COUNT 5
  43. #define KEYPAD_GPIO_DEBAUCE_COUNT 3
  44. #define KEYPAD_GPIO_REPEAT_COUNT 3
  45. /*******************************************************************************
  46. * IC keypad Range setting rules
  47. * voltage range(keycode)
  48. * 0V ~ 0.33V 0x001
  49. * 0.33V ~ 0.66V 0x002
  50. * 0.66V ~ 0.99V 0x004
  51. * 0.99V ~ 1.32V 0x008
  52. * 1.32V ~ 1.65V 0x010
  53. * 1.65V ~ 1.98V 0x020
  54. * 1.98V ~ 2.31V 0x040
  55. * 2.31V ~ 2.64V 0x080
  56. * 2.64V ~ 2.97V 0x100
  57. * 2.97V ~ 3.3V none
  58. ******************************************************************************/
  59. KEYPAD_PARAM_t KeypadMap_final[keypadNum] = {{0},{0},{0},{0},{0},{0},{0},{0}};
  60. #ifdef SUPPORT_FACTORY_AUTO_TEST
  61. KEYPAD_PARAM_t KeypadMapFac_final[keypadNum] = {{0},{0},{0},{0},{0},{0},{0},{0}};
  62. #endif
  63. #ifdef CONFIG_ATV_SUPPORT
  64. static void _Keypad_ATV_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  65. {
  66. INT32 dObjectID;
  67. sys_app_errorcode_t ret = SYSTEM_APP_SUCCESS;
  68. PopmsgType_t eType;
  69. switch(*pbEvent)
  70. {
  71. case UI_EVENT_KEYPAD_MENU:
  72. if ((SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID) == SYSTEM_APP_SUCCESS) &&
  73. (dObjectID != APP_GUIOBJ_BANNER) &&
  74. (dObjectID != ATV_GUIOBJ_INPUTINFO) &&
  75. (dObjectID != ATV_GUIOBJ_PROGNUM) &&
  76. (dObjectID != ATV_GUIOBJ_SIF) &&
  77. (dObjectID != APP_GUIOBJ_AMPLIFIERVOLUME) &&
  78. (!((dObjectID == ATV_GUIOBJ_POPMSG) && (!APP_MenuMgr_Exist_Main_Menu()))) &&
  79. (!((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)))
  80. )
  81. {
  82. *pbEvent = UI_EVENT_RETURN;
  83. }
  84. else
  85. {
  86. *pbEvent = UI_EVENT_MENU;
  87. }
  88. break;
  89. case UI_EVENT_KEYPAD_LEFT:
  90. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  91. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  92. if (ret == SYSTEM_APP_SUCCESS)
  93. {
  94. if ((dObjectID == ATV_GUIOBJ_INPUTINFO) ||
  95. #ifdef CONFIG_SUPPORT_TTX
  96. (dObjectID == ATV_GUIOBJ_TTX)||
  97. #endif
  98. (dObjectID == ATV_GUIOBJ_PROGNUM) ||
  99. (dObjectID == APP_GUIOBJ_BANNER) ||
  100. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  101. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  102. ((dObjectID == ATV_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  103. {
  104. *pbEvent = UI_EVENT_VOL_DN;
  105. }
  106. else
  107. {
  108. *pbEvent = UI_EVENT_LEFT;
  109. }
  110. }
  111. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  112. {
  113. *pbEvent = UI_EVENT_VOL_DN;
  114. }
  115. break;
  116. case UI_EVENT_KEYPAD_RIGHT:
  117. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  118. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  119. if (ret == SYSTEM_APP_SUCCESS)
  120. {
  121. if ((dObjectID == ATV_GUIOBJ_INPUTINFO) ||
  122. #ifdef CONFIG_SUPPORT_TTX
  123. (dObjectID == ATV_GUIOBJ_TTX)||
  124. #endif
  125. (dObjectID == ATV_GUIOBJ_PROGNUM) ||
  126. (dObjectID == APP_GUIOBJ_BANNER) ||
  127. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  128. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  129. ((dObjectID == ATV_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  130. {
  131. *pbEvent = UI_EVENT_VOL_UP;
  132. }
  133. else if (dObjectID == APP_GUIOBJ_SOURCE)
  134. {
  135. *pbEvent = UI_EVENT_ENTER;
  136. }
  137. else
  138. {
  139. *pbEvent = UI_EVENT_RIGHT;
  140. }
  141. }
  142. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  143. {
  144. *pbEvent = UI_EVENT_VOL_UP;
  145. }
  146. break;
  147. case UI_EVENT_KEYPAD_UP:
  148. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  149. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  150. if (ret == SYSTEM_APP_SUCCESS)
  151. {
  152. if ((dObjectID == ATV_GUIOBJ_INPUTINFO) ||
  153. (dObjectID == ATV_GUIOBJ_PROGNUM) ||
  154. (dObjectID == APP_GUIOBJ_BANNER) ||
  155. ((dObjectID == ATV_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  156. {
  157. *pbEvent = UI_EVENT_CH_UP;
  158. }
  159. else
  160. {
  161. *pbEvent = UI_EVENT_UP;
  162. }
  163. }
  164. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  165. {
  166. *pbEvent = UI_EVENT_CH_UP;
  167. }
  168. break;
  169. case UI_EVENT_KEYPAD_DOWN:
  170. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  171. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  172. if (ret == SYSTEM_APP_SUCCESS)
  173. {
  174. if ((dObjectID == ATV_GUIOBJ_INPUTINFO) ||
  175. (dObjectID == ATV_GUIOBJ_PROGNUM) ||
  176. (dObjectID == APP_GUIOBJ_BANNER) ||
  177. ((dObjectID == ATV_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  178. {
  179. *pbEvent = UI_EVENT_CH_DN;
  180. }
  181. else
  182. {
  183. *pbEvent = UI_EVENT_DOWN;
  184. }
  185. }
  186. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  187. {
  188. *pbEvent = UI_EVENT_CH_DN;
  189. }
  190. break;
  191. case UI_EVENT_KEYPAD_SOURCE:
  192. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  193. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  194. if (ret == SYSTEM_APP_SUCCESS)
  195. {
  196. if ((dObjectID == ATV_GUIOBJ_POPMSG) && (eType == POPMSG_TYPE_CONFIRM))
  197. {
  198. *pbEvent = UI_EVENT_ENTER;
  199. }
  200. else
  201. {
  202. *pbEvent = UI_EVENT_SOURCE;
  203. }
  204. }
  205. else
  206. {
  207. *pbEvent = UI_EVENT_SOURCE;
  208. }
  209. break;
  210. case UI_EVENT_KEYPAD_POWER:
  211. *pbEvent = UI_EVENT_POWER;
  212. break;
  213. default:
  214. break;
  215. }
  216. }
  217. #else
  218. static void _Keypad_ATV_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  219. {
  220. INT32 dObjectID;
  221. sys_app_errorcode_t ret = SYSTEM_APP_SUCCESS;
  222. PopmsgType_t eType;
  223. switch(*pbEvent)
  224. {
  225. case UI_EVENT_KEYPAD_MENU:
  226. if ((SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID) == SYSTEM_APP_SUCCESS) &&
  227. ((dObjectID == APP_GUIOBJ_MAINMENU) || (dObjectID == APP_GUIOBJ_ADJUST) || (dObjectID == APP_GUIOBJ_SOURCE) || (dObjectID == APP_GUIOBJ_FM_FACTORYSETTING)))
  228. {
  229. *pbEvent = UI_EVENT_ENTER;
  230. }
  231. else
  232. {
  233. *pbEvent = UI_EVENT_MENU;
  234. }
  235. break;
  236. case UI_EVENT_KEYPAD_LEFT:
  237. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  238. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  239. if (ret == SYSTEM_APP_SUCCESS)
  240. {
  241. if (dObjectID == APP_GUIOBJ_FM_FACTORYSETTING)
  242. {
  243. *pbEvent = UI_EVENT_LEFT;
  244. }
  245. }
  246. break;
  247. case UI_EVENT_KEYPAD_RIGHT:
  248. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  249. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  250. if (ret == SYSTEM_APP_SUCCESS)
  251. {
  252. if (dObjectID == APP_GUIOBJ_FM_FACTORYSETTING)
  253. {
  254. *pbEvent = UI_EVENT_RIGHT;
  255. }
  256. }
  257. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  258. {
  259. *pbEvent = UI_EVENT_OPEN_FACTORY;
  260. }
  261. break;
  262. case UI_EVENT_KEYPAD_UP:
  263. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  264. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  265. if (ret == SYSTEM_APP_SUCCESS)
  266. {
  267. if (dObjectID == APP_GUIOBJ_MAINMENU || dObjectID == APP_GUIOBJ_SOURCE || dObjectID == APP_GUIOBJ_FM_FACTORYSETTING)
  268. {
  269. *pbEvent = UI_EVENT_UP;
  270. }
  271. else if(dObjectID == APP_GUIOBJ_BANNER || dObjectID == APP_GUIOBJ_ADJUST)
  272. {
  273. *pbEvent = UI_EVENT_RIGHT;
  274. }
  275. }
  276. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  277. {
  278. *pbEvent = UI_EVENT_PIC_MOD;
  279. }
  280. break;
  281. case UI_EVENT_KEYPAD_DOWN:
  282. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  283. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  284. if (ret == SYSTEM_APP_SUCCESS)
  285. {
  286. if((dObjectID == APP_GUIOBJ_MAINMENU) || (dObjectID == APP_GUIOBJ_ADJUST) || (dObjectID == APP_GUIOBJ_SOURCE) || (dObjectID == APP_GUIOBJ_BANNER) || (dObjectID == APP_GUIOBJ_FM_FACTORYSETTING))
  287. {
  288. *pbEvent = UI_EVENT_RETURN;
  289. }
  290. }
  291. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  292. {
  293. *pbEvent = UI_EVENT_PCAUTOADJ;
  294. }
  295. break;
  296. case UI_EVENT_KEYPAD_SOURCE:
  297. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  298. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  299. if (ret == SYSTEM_APP_SUCCESS)
  300. {
  301. if((dObjectID == APP_GUIOBJ_MAINMENU) || (dObjectID == APP_GUIOBJ_SOURCE) || (dObjectID == APP_GUIOBJ_FM_FACTORYSETTING))
  302. {
  303. *pbEvent = UI_EVENT_DOWN;
  304. }
  305. else if(dObjectID == APP_GUIOBJ_BANNER || dObjectID == APP_GUIOBJ_ADJUST)
  306. {
  307. *pbEvent = UI_EVENT_LEFT;
  308. }
  309. else
  310. {
  311. *pbEvent = UI_EVENT_SOURCE;
  312. }
  313. }
  314. else
  315. {
  316. *pbEvent = UI_EVENT_SOURCE;
  317. }
  318. break;
  319. case UI_EVENT_KEYPAD_POWER:
  320. *pbEvent = UI_EVENT_POWER;
  321. break;
  322. default:
  323. break;
  324. }
  325. }
  326. #endif
  327. #ifdef CONFIG_DTV_SUPPORT
  328. static void _Keypad_DVB_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  329. {
  330. INT32 dObjectID;
  331. sys_app_errorcode_t ret = SYSTEM_APP_SUCCESS;
  332. PopmsgType_t eType;
  333. switch(*pbEvent)
  334. {
  335. case UI_EVENT_KEYPAD_MENU:
  336. if ((SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID) == SYSTEM_APP_SUCCESS) &&
  337. (dObjectID != APP_GUIOBJ_BANNER) &&
  338. (dObjectID != DVB_GUIOBJ_PROGINFO) &&
  339. (dObjectID != DVB_GUIOBJ_PROGNUM) &&
  340. (dObjectID != APP_GUIOBJ_AMPLIFIERVOLUME) &&
  341. (!((dObjectID == DVB_GUIOBJ_POPMSG) && (!APP_MenuMgr_Exist_Main_Menu()))) &&
  342. (!((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)))
  343. #ifdef CONFIG_SUPPORT_PVR
  344. && (dObjectID != DVB_GUIOBJ_PVR_PLAYINFO)
  345. && (dObjectID != DVB_GUIOBJ_PVR_FILEPLAY)
  346. #endif
  347. )
  348. {
  349. *pbEvent = UI_EVENT_RETURN;
  350. }
  351. else
  352. {
  353. *pbEvent = UI_EVENT_MENU;
  354. }
  355. break;
  356. case UI_EVENT_KEYPAD_LEFT:
  357. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  358. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  359. if (ret == SYSTEM_APP_SUCCESS)
  360. {
  361. if ((dObjectID == DVB_GUIOBJ_PROGINFO) ||
  362. #ifdef CONFIG_SUPPORT_TTX
  363. (dObjectID == DVB_GUIOBJ_TTX)||
  364. #endif
  365. (dObjectID == DVB_GUIOBJ_PROGNUM) ||
  366. (dObjectID == APP_GUIOBJ_BANNER) ||
  367. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  368. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  369. ((dObjectID == DVB_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  370. {
  371. *pbEvent = UI_EVENT_VOL_DN;
  372. }
  373. else
  374. {
  375. *pbEvent = UI_EVENT_LEFT;
  376. }
  377. }
  378. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  379. {
  380. *pbEvent = UI_EVENT_VOL_DN;
  381. }
  382. break;
  383. case UI_EVENT_KEYPAD_RIGHT:
  384. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  385. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  386. if (ret == SYSTEM_APP_SUCCESS)
  387. {
  388. if ((dObjectID == DVB_GUIOBJ_PROGINFO) ||
  389. #ifdef CONFIG_SUPPORT_TTX
  390. (dObjectID == DVB_GUIOBJ_TTX)||
  391. #endif
  392. (dObjectID == DVB_GUIOBJ_PROGNUM) ||
  393. (dObjectID == APP_GUIOBJ_BANNER) ||
  394. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  395. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  396. ((dObjectID == DVB_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  397. {
  398. *pbEvent = UI_EVENT_VOL_UP;
  399. }
  400. else if (dObjectID == APP_GUIOBJ_SOURCE)
  401. {
  402. *pbEvent = UI_EVENT_ENTER;
  403. }
  404. else
  405. {
  406. *pbEvent = UI_EVENT_RIGHT;
  407. }
  408. }
  409. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  410. {
  411. *pbEvent = UI_EVENT_VOL_UP;
  412. }
  413. break;
  414. case UI_EVENT_KEYPAD_UP:
  415. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  416. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  417. if (ret == SYSTEM_APP_SUCCESS)
  418. {
  419. if ((dObjectID == DVB_GUIOBJ_PROGINFO) ||
  420. (dObjectID == DVB_GUIOBJ_PROGNUM) ||
  421. (dObjectID == APP_GUIOBJ_BANNER) ||
  422. ((dObjectID == DVB_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  423. {
  424. *pbEvent = UI_EVENT_CH_UP;
  425. }
  426. else
  427. {
  428. *pbEvent = UI_EVENT_UP;
  429. }
  430. }
  431. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  432. {
  433. *pbEvent = UI_EVENT_CH_UP;
  434. }
  435. break;
  436. case UI_EVENT_KEYPAD_DOWN:
  437. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  438. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  439. if (ret == SYSTEM_APP_SUCCESS)
  440. {
  441. if ((dObjectID == DVB_GUIOBJ_PROGINFO) ||
  442. (dObjectID == DVB_GUIOBJ_PROGNUM) ||
  443. (dObjectID == APP_GUIOBJ_BANNER) ||
  444. ((dObjectID == DVB_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  445. {
  446. *pbEvent = UI_EVENT_CH_DN;
  447. }
  448. else
  449. {
  450. *pbEvent = UI_EVENT_DOWN;
  451. }
  452. }
  453. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  454. {
  455. *pbEvent = UI_EVENT_CH_DN;
  456. }
  457. break;
  458. case UI_EVENT_KEYPAD_SOURCE:
  459. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  460. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  461. if (ret == SYSTEM_APP_SUCCESS)
  462. {
  463. if ((dObjectID == DVB_GUIOBJ_POPMSG) && (eType == POPMSG_TYPE_CONFIRM))
  464. {
  465. *pbEvent = UI_EVENT_ENTER;
  466. }
  467. else
  468. {
  469. *pbEvent = UI_EVENT_SOURCE;
  470. }
  471. }
  472. else
  473. {
  474. *pbEvent = UI_EVENT_SOURCE;
  475. }
  476. break;
  477. case UI_EVENT_KEYPAD_POWER:
  478. *pbEvent = UI_EVENT_POWER;
  479. break;
  480. default:
  481. break;
  482. }
  483. }
  484. #endif
  485. #ifdef CONFIG_MEDIA_ENABLE
  486. static void _Keypad_FILE_Player_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  487. {
  488. INT32 dObjectID;
  489. sys_app_errorcode_t ret = SYSTEM_APP_SUCCESS;
  490. PopmsgType_t eType;
  491. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  492. switch(*pbEvent)
  493. {
  494. case UI_EVENT_KEYPAD_MENU:
  495. if ((APP_MenuMgr_Exist_Main_Menu()) ||
  496. (APP_MenuMgr_Exist_Factory_Menu()) ||
  497. (SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, APP_GUIOBJ_INITINSTALL)) ||
  498. (SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, APP_GUIOBJ_AMPLIFIERVOLUME)) ||
  499. ((SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, APP_GUIOBJ_ADJUST)) &&
  500. (APP_GUIOBJ_Adjust_GetType() != ADJUST_VOLUME))||
  501. ((SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, APP_GUIOBJ_ADJUST)) &&
  502. (APP_GUIOBJ_Adjust_GetType() != ADJUST_HDMICEC_AMPVOLUME)))
  503. {
  504. *pbEvent = UI_EVENT_RETURN;
  505. }
  506. else
  507. {
  508. *pbEvent = UI_EVENT_MENU;
  509. }
  510. break;
  511. case UI_EVENT_KEYPAD_LEFT:
  512. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  513. if (ret == SYSTEM_APP_SUCCESS)
  514. {
  515. if ((dObjectID == MEDIA_GUIOBJ_MOVIE_PLAYBACK) ||
  516. (dObjectID == MEDIA_GUIOBJ_PHOTO_PLAYBACK) ||
  517. (dObjectID == MEDIA_GUIOBJ_MUSIC_PLAYBACK && MM_Music_IsMusicPlayerOnFocus()) ||
  518. (dObjectID == MEDIA_GUIOBJ_EBOOK_PLAYBACK && MM_Music_IsEBookPlayerOnFocus()) ||
  519. (dObjectID == APP_GUIOBJ_BANNER) ||
  520. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  521. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  522. ((dObjectID == MEDIA_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  523. {
  524. *pbEvent = UI_EVENT_VOL_DN;
  525. }
  526. else
  527. {
  528. *pbEvent = UI_EVENT_LEFT;
  529. }
  530. }
  531. break;
  532. case UI_EVENT_KEYPAD_RIGHT:
  533. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  534. if (ret == SYSTEM_APP_SUCCESS)
  535. {
  536. if ((dObjectID == MEDIA_GUIOBJ_MOVIE_PLAYBACK) ||
  537. (dObjectID == MEDIA_GUIOBJ_PHOTO_PLAYBACK) ||
  538. (dObjectID == MEDIA_GUIOBJ_MUSIC_PLAYBACK && MM_Music_IsMusicPlayerOnFocus()) ||
  539. (dObjectID == MEDIA_GUIOBJ_EBOOK_PLAYBACK && MM_Music_IsEBookPlayerOnFocus()) ||
  540. (dObjectID == APP_GUIOBJ_BANNER) ||
  541. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  542. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  543. ((dObjectID == MEDIA_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  544. {
  545. *pbEvent = UI_EVENT_VOL_UP;
  546. }
  547. else if (dObjectID == APP_GUIOBJ_SOURCE)
  548. {
  549. *pbEvent = UI_EVENT_ENTER;
  550. }
  551. else
  552. {
  553. *pbEvent = UI_EVENT_RIGHT;
  554. }
  555. }
  556. break;
  557. case UI_EVENT_KEYPAD_UP:
  558. if (ret == SYSTEM_APP_SUCCESS)
  559. {
  560. if ((dObjectID == MEDIA_GUIOBJ_HOMEPAGE) ||
  561. (dObjectID == MEDIA_GUIOBJ_FILEBROWSER && (memcmp(CONFIG_APP_FOLDER_NAME,"rda_atv",strlen("rda_atv"))==0)) ||
  562. (dObjectID == MEDIA_GUIOBJ_POPMSG_MAINMENU) ||
  563. (dObjectID == MEDIA_GUIOBJ_MOVIE_PLAYBACK) ||
  564. (dObjectID == MEDIA_GUIOBJ_PHOTO_PLAYBACK) ||
  565. (dObjectID == MEDIA_GUIOBJ_MUSIC_PLAYBACK && MM_Music_IsMusicPlayerOnFocus()) ||
  566. (dObjectID == MEDIA_GUIOBJ_EBOOK_PLAYBACK && MM_Music_IsEBookPlayerOnFocus()) )
  567. {
  568. *pbEvent = UI_EVENT_ENTER;
  569. }
  570. else
  571. {
  572. *pbEvent = UI_EVENT_UP;
  573. }
  574. }
  575. else
  576. {
  577. *pbEvent = UI_EVENT_UP;
  578. }
  579. break;
  580. case UI_EVENT_KEYPAD_DOWN:
  581. if (ret == SYSTEM_APP_SUCCESS)
  582. {
  583. if ((dObjectID == MEDIA_GUIOBJ_HOMEPAGE) ||
  584. (dObjectID == MEDIA_GUIOBJ_FILEBROWSER && (memcmp(CONFIG_APP_FOLDER_NAME,"rda_atv",strlen("rda_atv"))==0)) ||
  585. (dObjectID == MEDIA_GUIOBJ_POPMSG_MAINMENU) ||
  586. (dObjectID == MEDIA_GUIOBJ_MOVIE_PLAYBACK) ||
  587. (dObjectID == MEDIA_GUIOBJ_PHOTO_PLAYBACK) ||
  588. (dObjectID == MEDIA_GUIOBJ_MUSIC_PLAYBACK && MM_Music_IsMusicPlayerOnFocus()) ||
  589. (dObjectID == MEDIA_GUIOBJ_EBOOK_PLAYBACK && MM_Music_IsEBookPlayerOnFocus()) )
  590. {
  591. *pbEvent = UI_EVENT_EXIT;
  592. }
  593. else
  594. {
  595. *pbEvent = UI_EVENT_DOWN;
  596. }
  597. }
  598. else
  599. {
  600. *pbEvent = UI_EVENT_DOWN;
  601. }
  602. break;
  603. case UI_EVENT_KEYPAD_SOURCE:
  604. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  605. if (ret == SYSTEM_APP_SUCCESS)
  606. {
  607. if ((dObjectID == MEDIA_GUIOBJ_THUMBNAIL ||
  608. dObjectID == MEDIA_GUIOBJ_MEIDA_PLAYLIST || dObjectID == MEDIA_GUIOBJ_MUSIC_BGSOURCE)
  609. ||(dObjectID == MEDIA_GUIOBJ_POPMSG && eType == POPMSG_TYPE_CONFIRM))
  610. {
  611. *pbEvent = UI_EVENT_ENTER;
  612. }
  613. else
  614. {
  615. *pbEvent = UI_EVENT_SOURCE;
  616. }
  617. }
  618. else
  619. {
  620. *pbEvent = UI_EVENT_SOURCE;
  621. }
  622. break;
  623. case UI_EVENT_KEYPAD_POWER:
  624. *pbEvent = UI_EVENT_POWER;
  625. break;
  626. default:
  627. break;
  628. }
  629. }
  630. #endif
  631. #ifdef NET_SUPPORT
  632. static void _Keypad_Network_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  633. {
  634. switch(*pbEvent)
  635. {
  636. case UI_EVENT_KEYPAD_MENU:
  637. *pbEvent = UI_EVENT_MENU;
  638. break;
  639. case UI_EVENT_KEYPAD_LEFT:
  640. *pbEvent = UI_EVENT_LEFT;
  641. break;
  642. case UI_EVENT_KEYPAD_RIGHT:
  643. *pbEvent = UI_EVENT_RIGHT;
  644. break;
  645. case UI_EVENT_KEYPAD_UP:
  646. *pbEvent = UI_EVENT_UP;
  647. break;
  648. case UI_EVENT_KEYPAD_DOWN:
  649. *pbEvent = UI_EVENT_DOWN;
  650. break;
  651. case UI_EVENT_KEYPAD_SOURCE:
  652. *pbEvent = UI_EVENT_SOURCE;
  653. break;
  654. case UI_EVENT_KEYPAD_POWER:
  655. *pbEvent = UI_EVENT_POWER;
  656. break;
  657. default:
  658. break;
  659. }
  660. }
  661. #endif
  662. #if (defined(SUPPORT_FACTORY_AUTO_TEST) || defined(SUPPORT_FACTORY_AUTO_TEST_MODE2))
  663. static void _Factory_Auto_Test_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  664. {
  665. //extern void Enable_Debug_Message(UINT32 DBGStatus);
  666. //Enable_Debug_Message(1<<MODULEID_UMF);
  667. switch(*pbEvent)
  668. {
  669. case UI_EVENT_KEYPAD_LEFT:
  670. printf("\n***LEFT***\n");
  671. break;
  672. case UI_EVENT_KEYPAD_RIGHT:
  673. printf("\n***RIGHT***\n");
  674. break;
  675. case UI_EVENT_KEYPAD_UP:
  676. printf("\n***UP***\n");
  677. break;
  678. case UI_EVENT_KEYPAD_DOWN:
  679. printf("\n***DOWN***\n");
  680. break;
  681. case UI_EVENT_KEYPAD_SOURCE:
  682. printf("\n***SOURCE***\n");
  683. break;
  684. case UI_EVENT_KEYPAD_MENU:
  685. printf("\n***MENU***\n");
  686. break;
  687. case UI_EVENT_KEYPAD_POWER:
  688. break;
  689. default:
  690. break;
  691. }
  692. //Enable_Debug_Message(0);
  693. }
  694. #endif
  695. int Keypad_EventConvert(UINT32 *pbEvent)
  696. {
  697. UINT32 dSystemAppIndex;
  698. UINT8 Keylock=0;
  699. if (MAINAPP_GetActiveSystemAppIndex(&dSystemAppIndex) == MAIN_APP_SUCCESS)
  700. {
  701. #if (defined(SUPPORT_FACTORY_AUTO_TEST) || defined(SUPPORT_FACTORY_AUTO_TEST_MODE2))
  702. extern int APP_Factory_GetAutoTestOnOff(void);
  703. if(APP_Factory_GetAutoTestOnOff() == TRUE)
  704. {
  705. _Factory_Auto_Test_Event_convert(dSystemAppIndex, pbEvent);
  706. return 0;
  707. }
  708. #endif
  709. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FEATURE, 0,
  710. sizeof(APP_SETTING_Feature_t), &(g_stFeatureData));
  711. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTHOTEL, 0,
  712. sizeof(APP_SETTING_FactoryHotel_t), &(g_stFactoryHotelData));
  713. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER,0,
  714. sizeof(APP_SETTING_FactoryUser_t),&g_stFactoryUserData);
  715. if(memcmp(CONFIG_APP_FOLDER_NAME,"formal",strlen("formal"))==0)
  716. {
  717. if((*pbEvent != UI_EVENT_KEYPAD_POWER)
  718. #ifdef SUPPORT_SEG_KEYLOCK_IN_MAINMENU
  719. &&(g_stFeatureData.KeyLock == 1)
  720. #else
  721. &&(g_stFactoryUserData.Function.n_Funct_HotelMode == 1)
  722. &&(g_stFactoryHotelData.HotelModeOnOff == 1)
  723. &&(g_stFactoryHotelData.KeypadOperation == 1)
  724. #endif
  725. )
  726. Keylock = 1;
  727. }
  728. else
  729. {
  730. if((*pbEvent != UI_EVENT_KEYPAD_POWER)
  731. &&(g_stSetupData.KeyLock == 1))
  732. Keylock = 1;
  733. }
  734. if(Keylock == 1)
  735. {
  736. *pbEvent = UI_EVENT_NULL;
  737. #ifdef CONFIG_MEDIA_ENABLE
  738. if(dSystemAppIndex == SYS_APP_FILE_PLAYER)
  739. {
  740. SYSAPP_IF_SendGlobalEventWithIndex(dSystemAppIndex,
  741. (APP_GLOBAL_EVENT_KEYLOCK|PASS_TO_SYSAPP), 0);
  742. }
  743. else
  744. #endif
  745. {
  746. SYSAPP_IF_SendGlobalEventWithIndex(dSystemAppIndex,
  747. (APP_GLOBAL_EVENT_KEYLOCK), 0);
  748. }
  749. return 0;
  750. }
  751. switch(dSystemAppIndex)
  752. {
  753. case SYS_APP_ATV:
  754. _Keypad_ATV_Event_convert(dSystemAppIndex, pbEvent);
  755. break;
  756. #ifdef CONFIG_DTV_SUPPORT
  757. case SYS_APP_DVB:
  758. _Keypad_DVB_Event_convert(dSystemAppIndex, pbEvent);
  759. break;
  760. #endif
  761. #ifdef CONFIG_MEDIA_ENABLE
  762. case SYS_APP_FILE_PLAYER:
  763. _Keypad_FILE_Player_Event_convert(dSystemAppIndex, pbEvent);
  764. break;
  765. #endif
  766. #ifdef NET_SUPPORT
  767. case SYS_APP_NETWORK:
  768. _Keypad_Network_Event_convert(dSystemAppIndex, pbEvent);
  769. break;
  770. #endif
  771. default:
  772. break;
  773. }
  774. }
  775. return 0;
  776. }