keypad_mapping.c 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791
  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_VOL_UP; //robbin
  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_SOURCE) || (dObjectID == APP_GUIOBJ_FM_FACTORYSETTING))
  287. {
  288. *pbEvent = UI_EVENT_DOWN; //robbin
  289. }
  290. else if(dObjectID == APP_GUIOBJ_BANNER || dObjectID == APP_GUIOBJ_ADJUST)
  291. {
  292. *pbEvent = UI_EVENT_LEFT;
  293. }
  294. }
  295. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  296. {
  297. *pbEvent = UI_EVENT_VOL_DN; //robbin
  298. }
  299. break;
  300. case UI_EVENT_KEYPAD_SOURCE:
  301. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  302. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  303. if (ret == SYSTEM_APP_SUCCESS)
  304. {
  305. if((dObjectID == APP_GUIOBJ_MAINMENU) || (dObjectID == APP_GUIOBJ_ADJUST) || (dObjectID == APP_GUIOBJ_SOURCE) || (dObjectID == APP_GUIOBJ_BANNER) || (dObjectID == APP_GUIOBJ_FM_FACTORYSETTING))
  306. {
  307. *pbEvent = UI_EVENT_RETURN;
  308. }
  309. }
  310. else
  311. {
  312. *pbEvent = UI_EVENT_SOURCE;
  313. }
  314. break;
  315. case UI_EVENT_KEYPAD_POWER:
  316. *pbEvent = UI_EVENT_POWER;
  317. break;
  318. default:
  319. break;
  320. }
  321. }
  322. #endif
  323. #ifdef CONFIG_DTV_SUPPORT
  324. static void _Keypad_DVB_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  325. {
  326. INT32 dObjectID;
  327. sys_app_errorcode_t ret = SYSTEM_APP_SUCCESS;
  328. PopmsgType_t eType;
  329. switch(*pbEvent)
  330. {
  331. case UI_EVENT_KEYPAD_MENU:
  332. if ((SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID) == SYSTEM_APP_SUCCESS) &&
  333. (dObjectID != APP_GUIOBJ_BANNER) &&
  334. (dObjectID != DVB_GUIOBJ_PROGINFO) &&
  335. (dObjectID != DVB_GUIOBJ_PROGNUM) &&
  336. (dObjectID != APP_GUIOBJ_AMPLIFIERVOLUME) &&
  337. (!((dObjectID == DVB_GUIOBJ_POPMSG) && (!APP_MenuMgr_Exist_Main_Menu()))) &&
  338. (!((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)))
  339. #ifdef CONFIG_SUPPORT_PVR
  340. && (dObjectID != DVB_GUIOBJ_PVR_PLAYINFO)
  341. && (dObjectID != DVB_GUIOBJ_PVR_FILEPLAY)
  342. #endif
  343. )
  344. {
  345. *pbEvent = UI_EVENT_RETURN;
  346. }
  347. else
  348. {
  349. *pbEvent = UI_EVENT_MENU;
  350. }
  351. break;
  352. case UI_EVENT_KEYPAD_LEFT:
  353. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  354. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  355. if (ret == SYSTEM_APP_SUCCESS)
  356. {
  357. if ((dObjectID == DVB_GUIOBJ_PROGINFO) ||
  358. #ifdef CONFIG_SUPPORT_TTX
  359. (dObjectID == DVB_GUIOBJ_TTX)||
  360. #endif
  361. (dObjectID == DVB_GUIOBJ_PROGNUM) ||
  362. (dObjectID == APP_GUIOBJ_BANNER) ||
  363. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  364. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  365. ((dObjectID == DVB_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  366. {
  367. *pbEvent = UI_EVENT_VOL_DN;
  368. }
  369. else
  370. {
  371. *pbEvent = UI_EVENT_LEFT;
  372. }
  373. }
  374. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  375. {
  376. *pbEvent = UI_EVENT_VOL_DN;
  377. }
  378. break;
  379. case UI_EVENT_KEYPAD_RIGHT:
  380. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  381. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  382. if (ret == SYSTEM_APP_SUCCESS)
  383. {
  384. if ((dObjectID == DVB_GUIOBJ_PROGINFO) ||
  385. #ifdef CONFIG_SUPPORT_TTX
  386. (dObjectID == DVB_GUIOBJ_TTX)||
  387. #endif
  388. (dObjectID == DVB_GUIOBJ_PROGNUM) ||
  389. (dObjectID == APP_GUIOBJ_BANNER) ||
  390. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  391. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  392. ((dObjectID == DVB_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  393. {
  394. *pbEvent = UI_EVENT_VOL_UP;
  395. }
  396. else if (dObjectID == APP_GUIOBJ_SOURCE)
  397. {
  398. *pbEvent = UI_EVENT_ENTER;
  399. }
  400. else
  401. {
  402. *pbEvent = UI_EVENT_RIGHT;
  403. }
  404. }
  405. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  406. {
  407. *pbEvent = UI_EVENT_VOL_UP;
  408. }
  409. break;
  410. case UI_EVENT_KEYPAD_UP:
  411. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  412. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  413. if (ret == SYSTEM_APP_SUCCESS)
  414. {
  415. if ((dObjectID == DVB_GUIOBJ_PROGINFO) ||
  416. (dObjectID == DVB_GUIOBJ_PROGNUM) ||
  417. (dObjectID == APP_GUIOBJ_BANNER) ||
  418. ((dObjectID == DVB_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  419. {
  420. *pbEvent = UI_EVENT_CH_UP;
  421. }
  422. else
  423. {
  424. *pbEvent = UI_EVENT_UP;
  425. }
  426. }
  427. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  428. {
  429. *pbEvent = UI_EVENT_CH_UP;
  430. }
  431. break;
  432. case UI_EVENT_KEYPAD_DOWN:
  433. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  434. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  435. if (ret == SYSTEM_APP_SUCCESS)
  436. {
  437. if ((dObjectID == DVB_GUIOBJ_PROGINFO) ||
  438. (dObjectID == DVB_GUIOBJ_PROGNUM) ||
  439. (dObjectID == APP_GUIOBJ_BANNER) ||
  440. ((dObjectID == DVB_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  441. {
  442. *pbEvent = UI_EVENT_CH_DN;
  443. }
  444. else
  445. {
  446. *pbEvent = UI_EVENT_DOWN;
  447. }
  448. }
  449. else if (ret == SYSTEM_APP_NO_FOCUSED_GUIOBJ)
  450. {
  451. *pbEvent = UI_EVENT_CH_DN;
  452. }
  453. break;
  454. case UI_EVENT_KEYPAD_SOURCE:
  455. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  456. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  457. if (ret == SYSTEM_APP_SUCCESS)
  458. {
  459. if ((dObjectID == DVB_GUIOBJ_POPMSG) && (eType == POPMSG_TYPE_CONFIRM))
  460. {
  461. *pbEvent = UI_EVENT_ENTER;
  462. }
  463. else
  464. {
  465. *pbEvent = UI_EVENT_SOURCE;
  466. }
  467. }
  468. else
  469. {
  470. *pbEvent = UI_EVENT_SOURCE;
  471. }
  472. break;
  473. case UI_EVENT_KEYPAD_POWER:
  474. *pbEvent = UI_EVENT_POWER;
  475. break;
  476. default:
  477. break;
  478. }
  479. }
  480. #endif
  481. #ifdef CONFIG_MEDIA_ENABLE
  482. static void _Keypad_FILE_Player_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  483. {
  484. INT32 dObjectID;
  485. sys_app_errorcode_t ret = SYSTEM_APP_SUCCESS;
  486. PopmsgType_t eType;
  487. ret = SYSAPP_GOBJ_GetFocusedGUIObject(dSystemAppIndex, &dObjectID);
  488. switch(*pbEvent)
  489. {
  490. case UI_EVENT_KEYPAD_MENU:
  491. if ((APP_MenuMgr_Exist_Main_Menu()) ||
  492. (APP_MenuMgr_Exist_Factory_Menu()) ||
  493. (SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, APP_GUIOBJ_INITINSTALL)) ||
  494. (SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, APP_GUIOBJ_AMPLIFIERVOLUME)) ||
  495. ((SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, APP_GUIOBJ_ADJUST)) &&
  496. (APP_GUIOBJ_Adjust_GetType() != ADJUST_VOLUME))||
  497. ((SYSAPP_GOBJ_GUIObjectExist(dSystemAppIndex, APP_GUIOBJ_ADJUST)) &&
  498. (APP_GUIOBJ_Adjust_GetType() != ADJUST_HDMICEC_AMPVOLUME)))
  499. {
  500. *pbEvent = UI_EVENT_RETURN;
  501. }
  502. else
  503. {
  504. *pbEvent = UI_EVENT_MENU;
  505. }
  506. break;
  507. case UI_EVENT_KEYPAD_LEFT:
  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 == MEDIA_GUIOBJ_MUSIC_PLAYBACK && MM_Music_IsMusicPlayerOnFocus()) ||
  514. (dObjectID == MEDIA_GUIOBJ_EBOOK_PLAYBACK && MM_Music_IsEBookPlayerOnFocus()) ||
  515. (dObjectID == APP_GUIOBJ_BANNER) ||
  516. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  517. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  518. ((dObjectID == MEDIA_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  519. {
  520. *pbEvent = UI_EVENT_VOL_DN;
  521. }
  522. else
  523. {
  524. *pbEvent = UI_EVENT_LEFT;
  525. }
  526. }
  527. break;
  528. case UI_EVENT_KEYPAD_RIGHT:
  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 == MEDIA_GUIOBJ_MUSIC_PLAYBACK && MM_Music_IsMusicPlayerOnFocus()) ||
  535. (dObjectID == MEDIA_GUIOBJ_EBOOK_PLAYBACK && MM_Music_IsEBookPlayerOnFocus()) ||
  536. (dObjectID == APP_GUIOBJ_BANNER) ||
  537. (dObjectID == APP_GUIOBJ_AMPLIFIERVOLUME) ||
  538. ((dObjectID == APP_GUIOBJ_ADJUST) && (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)) ||
  539. ((dObjectID == MEDIA_GUIOBJ_POPMSG) && ((eType == POPMSG_TYPE_PROMPT) || (eType == POPMSG_TYPE_PWD))))
  540. {
  541. *pbEvent = UI_EVENT_VOL_UP;
  542. }
  543. else if (dObjectID == APP_GUIOBJ_SOURCE)
  544. {
  545. *pbEvent = UI_EVENT_ENTER;
  546. }
  547. else
  548. {
  549. *pbEvent = UI_EVENT_RIGHT;
  550. }
  551. }
  552. break;
  553. case UI_EVENT_KEYPAD_UP:
  554. if (ret == SYSTEM_APP_SUCCESS)
  555. {
  556. if ((dObjectID == MEDIA_GUIOBJ_HOMEPAGE) ||
  557. (dObjectID == MEDIA_GUIOBJ_FILEBROWSER && (memcmp(CONFIG_APP_FOLDER_NAME,"rda_atv",strlen("rda_atv"))==0)) ||
  558. (dObjectID == MEDIA_GUIOBJ_POPMSG_MAINMENU) ||
  559. (dObjectID == MEDIA_GUIOBJ_MOVIE_PLAYBACK) ||
  560. (dObjectID == MEDIA_GUIOBJ_PHOTO_PLAYBACK) ||
  561. (dObjectID == MEDIA_GUIOBJ_MUSIC_PLAYBACK && MM_Music_IsMusicPlayerOnFocus()) ||
  562. (dObjectID == MEDIA_GUIOBJ_EBOOK_PLAYBACK && MM_Music_IsEBookPlayerOnFocus()) )
  563. {
  564. *pbEvent = UI_EVENT_ENTER;
  565. }
  566. else
  567. {
  568. *pbEvent = UI_EVENT_UP;
  569. }
  570. }
  571. else
  572. {
  573. *pbEvent = UI_EVENT_UP;
  574. }
  575. break;
  576. case UI_EVENT_KEYPAD_DOWN:
  577. if (ret == SYSTEM_APP_SUCCESS)
  578. {
  579. if ((dObjectID == MEDIA_GUIOBJ_HOMEPAGE) ||
  580. (dObjectID == MEDIA_GUIOBJ_FILEBROWSER && (memcmp(CONFIG_APP_FOLDER_NAME,"rda_atv",strlen("rda_atv"))==0)) ||
  581. (dObjectID == MEDIA_GUIOBJ_POPMSG_MAINMENU) ||
  582. (dObjectID == MEDIA_GUIOBJ_MOVIE_PLAYBACK) ||
  583. (dObjectID == MEDIA_GUIOBJ_PHOTO_PLAYBACK) ||
  584. (dObjectID == MEDIA_GUIOBJ_MUSIC_PLAYBACK && MM_Music_IsMusicPlayerOnFocus()) ||
  585. (dObjectID == MEDIA_GUIOBJ_EBOOK_PLAYBACK && MM_Music_IsEBookPlayerOnFocus()) )
  586. {
  587. *pbEvent = UI_EVENT_EXIT;
  588. }
  589. else
  590. {
  591. *pbEvent = UI_EVENT_DOWN;
  592. }
  593. }
  594. else
  595. {
  596. *pbEvent = UI_EVENT_DOWN;
  597. }
  598. break;
  599. case UI_EVENT_KEYPAD_SOURCE:
  600. APP_GUIOBJ_PopMsg_GetMsgType(&eType);
  601. if (ret == SYSTEM_APP_SUCCESS)
  602. {
  603. if ((dObjectID == MEDIA_GUIOBJ_THUMBNAIL ||
  604. dObjectID == MEDIA_GUIOBJ_MEIDA_PLAYLIST || dObjectID == MEDIA_GUIOBJ_MUSIC_BGSOURCE)
  605. ||(dObjectID == MEDIA_GUIOBJ_POPMSG && eType == POPMSG_TYPE_CONFIRM))
  606. {
  607. *pbEvent = UI_EVENT_ENTER;
  608. }
  609. else
  610. {
  611. *pbEvent = UI_EVENT_SOURCE;
  612. }
  613. }
  614. else
  615. {
  616. *pbEvent = UI_EVENT_SOURCE;
  617. }
  618. break;
  619. case UI_EVENT_KEYPAD_POWER:
  620. *pbEvent = UI_EVENT_POWER;
  621. break;
  622. default:
  623. break;
  624. }
  625. }
  626. #endif
  627. #ifdef NET_SUPPORT
  628. static void _Keypad_Network_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  629. {
  630. switch(*pbEvent)
  631. {
  632. case UI_EVENT_KEYPAD_MENU:
  633. *pbEvent = UI_EVENT_MENU;
  634. break;
  635. case UI_EVENT_KEYPAD_LEFT:
  636. *pbEvent = UI_EVENT_LEFT;
  637. break;
  638. case UI_EVENT_KEYPAD_RIGHT:
  639. *pbEvent = UI_EVENT_RIGHT;
  640. break;
  641. case UI_EVENT_KEYPAD_UP:
  642. *pbEvent = UI_EVENT_UP;
  643. break;
  644. case UI_EVENT_KEYPAD_DOWN:
  645. *pbEvent = UI_EVENT_DOWN;
  646. break;
  647. case UI_EVENT_KEYPAD_SOURCE:
  648. *pbEvent = UI_EVENT_SOURCE;
  649. break;
  650. case UI_EVENT_KEYPAD_POWER:
  651. *pbEvent = UI_EVENT_POWER;
  652. break;
  653. default:
  654. break;
  655. }
  656. }
  657. #endif
  658. #if (defined(SUPPORT_FACTORY_AUTO_TEST) || defined(SUPPORT_FACTORY_AUTO_TEST_MODE2))
  659. static void _Factory_Auto_Test_Event_convert(UINT32 dSystemAppIndex, UINT32 *pbEvent)
  660. {
  661. //extern void Enable_Debug_Message(UINT32 DBGStatus);
  662. //Enable_Debug_Message(1<<MODULEID_UMF);
  663. switch(*pbEvent)
  664. {
  665. case UI_EVENT_KEYPAD_LEFT:
  666. printf("\n***LEFT***\n");
  667. break;
  668. case UI_EVENT_KEYPAD_RIGHT:
  669. printf("\n***RIGHT***\n");
  670. break;
  671. case UI_EVENT_KEYPAD_UP:
  672. printf("\n***UP***\n");
  673. break;
  674. case UI_EVENT_KEYPAD_DOWN:
  675. printf("\n***DOWN***\n");
  676. break;
  677. case UI_EVENT_KEYPAD_SOURCE:
  678. printf("\n***SOURCE***\n");
  679. break;
  680. case UI_EVENT_KEYPAD_MENU:
  681. printf("\n***MENU***\n");
  682. break;
  683. case UI_EVENT_KEYPAD_POWER:
  684. break;
  685. default:
  686. break;
  687. }
  688. //Enable_Debug_Message(0);
  689. }
  690. #endif
  691. int Keypad_EventConvert(UINT32 *pbEvent)
  692. {
  693. UINT32 dSystemAppIndex;
  694. UINT8 Keylock=0;
  695. if (MAINAPP_GetActiveSystemAppIndex(&dSystemAppIndex) == MAIN_APP_SUCCESS)
  696. {
  697. #if (defined(SUPPORT_FACTORY_AUTO_TEST) || defined(SUPPORT_FACTORY_AUTO_TEST_MODE2))
  698. extern int APP_Factory_GetAutoTestOnOff(void);
  699. if(APP_Factory_GetAutoTestOnOff() == TRUE)
  700. {
  701. _Factory_Auto_Test_Event_convert(dSystemAppIndex, pbEvent);
  702. return 0;
  703. }
  704. #endif
  705. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FEATURE, 0,
  706. sizeof(APP_SETTING_Feature_t), &(g_stFeatureData));
  707. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTHOTEL, 0,
  708. sizeof(APP_SETTING_FactoryHotel_t), &(g_stFactoryHotelData));
  709. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER,0,
  710. sizeof(APP_SETTING_FactoryUser_t),&g_stFactoryUserData);
  711. if(memcmp(CONFIG_APP_FOLDER_NAME,"formal",strlen("formal"))==0)
  712. {
  713. if((*pbEvent != UI_EVENT_KEYPAD_POWER)
  714. #ifdef SUPPORT_SEG_KEYLOCK_IN_MAINMENU
  715. &&(g_stFeatureData.KeyLock == 1)
  716. #else
  717. &&(g_stFactoryUserData.Function.n_Funct_HotelMode == 1)
  718. &&(g_stFactoryHotelData.HotelModeOnOff == 1)
  719. &&(g_stFactoryHotelData.KeypadOperation == 1)
  720. #endif
  721. )
  722. Keylock = 1;
  723. }
  724. else
  725. {
  726. if((*pbEvent != UI_EVENT_KEYPAD_POWER)
  727. &&(g_stSetupData.KeyLock == 1))
  728. Keylock = 1;
  729. }
  730. if(Keylock == 1)
  731. {
  732. *pbEvent = UI_EVENT_NULL;
  733. #ifdef CONFIG_MEDIA_ENABLE
  734. if(dSystemAppIndex == SYS_APP_FILE_PLAYER)
  735. {
  736. SYSAPP_IF_SendGlobalEventWithIndex(dSystemAppIndex,
  737. (APP_GLOBAL_EVENT_KEYLOCK|PASS_TO_SYSAPP), 0);
  738. }
  739. else
  740. #endif
  741. {
  742. SYSAPP_IF_SendGlobalEventWithIndex(dSystemAppIndex,
  743. (APP_GLOBAL_EVENT_KEYLOCK), 0);
  744. }
  745. return 0;
  746. }
  747. switch(dSystemAppIndex)
  748. {
  749. case SYS_APP_ATV:
  750. _Keypad_ATV_Event_convert(dSystemAppIndex, pbEvent);
  751. break;
  752. #ifdef CONFIG_DTV_SUPPORT
  753. case SYS_APP_DVB:
  754. _Keypad_DVB_Event_convert(dSystemAppIndex, pbEvent);
  755. break;
  756. #endif
  757. #ifdef CONFIG_MEDIA_ENABLE
  758. case SYS_APP_FILE_PLAYER:
  759. _Keypad_FILE_Player_Event_convert(dSystemAppIndex, pbEvent);
  760. break;
  761. #endif
  762. #ifdef NET_SUPPORT
  763. case SYS_APP_NETWORK:
  764. _Keypad_Network_Event_convert(dSystemAppIndex, pbEvent);
  765. break;
  766. #endif
  767. default:
  768. break;
  769. }
  770. }
  771. return 0;
  772. }