media_app.c 106 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091
  1. /********************************************************************
  2. ** File Name: file_app.c
  3. **
  4. ** File Description: This file implements media system application
  5. **
  6. ** Copyright(c) 2009 Sunplus Technologies - All Rights Reserved
  7. **
  8. ** History Information Description
  9. ** Date Author Modification
  10. ********************************************************************/
  11. /********************************************************************
  12. Including Files
  13. ********************************************************************/
  14. #include "gl_queue.h"
  15. #include "gl_task.h"
  16. #include "app_menumgr.h"
  17. #include "gobj_mgr.h"
  18. #include "app_factory_flash_access.h"
  19. //#include "gobj_mgr.h"
  20. #include "sysapp_table.h"
  21. #include "sysapp_if.h"
  22. #include "app_guiobj_source.h"
  23. #include "app_guiobj_mute.h"
  24. #include "app_guiobj_mainmenu.h"
  25. #include "app_audio.h"
  26. #include "app_factory.h"
  27. #include "app_guiobj_adjust.h"
  28. #include "app_scart.h"
  29. #include "app_guiobj_fm_factory.h"
  30. #if defined(CONFIG_BT_RDA5856)
  31. #include "app_guiobj_bt_setting.h"
  32. #endif
  33. #include "app_fileplayer_event.h"
  34. #include "media_gui_object_table.h"
  35. #include "al_fw.h"
  36. #include "app_fileplayer_event.h"
  37. /******** middlewares header files **************/
  38. #include "AL_Multimedia_FileSystem_IF.h"
  39. #include "AL_Multimedia_Player_IF.h"
  40. #include "AL_Multimedia_PlayList_IF.h"
  41. /******** Sys app internal header files **************/
  42. #ifdef CONFIG_SUPPORT_MEDIA_AUTO_PLAY
  43. #include "MM_media_auto_play.h"
  44. #endif
  45. #include "MM_Multimedia_Data.h"
  46. #include "MM_Multimedia.h"
  47. #include "MM_popmsg_gui.h"
  48. #include "MM_movie_playback_gui.h"
  49. #include "MM_music_playback_gui.h"
  50. #include "MM_photo_playback_gui.h"
  51. #include "MM_pvr_playback.h"
  52. #include "MM_music_source_gui.h"
  53. #include "MM_thumbnail_gui.h"
  54. #include "MM_EBook_gui.h"
  55. #include "MM_homepage_gui.h"
  56. #include "main_app.h"
  57. #include "media_app.h"
  58. #include "app_gui.h"
  59. #include "app_event.h"
  60. #include "app_data_setting.h"
  61. #include "app_guiobj_mute.h"
  62. #include "MM_popmsg_gui.h"
  63. #include "main_app.h"
  64. #ifdef CONFIG_SUPPORT_MEDIA_ESD_TEST
  65. #include "MM_media_esd_test_gui.h"
  66. #endif
  67. #ifdef N32_GAME_SUPPORT
  68. #include "app_guiobj_nativegame.h"
  69. #endif
  70. #ifdef CONFIG_DTV_SUPPORT
  71. #ifdef CONFIG_SUPPORT_PVR
  72. #include "al_prog_reminder.h"
  73. #if defined(CONFIG_DVB_SYSTEM) || defined(CONFIG_AUS_DVB_SYSTEM) || defined(CONFIG_DTMB_SYSTEM)
  74. #include "app_dvb_playback.h"
  75. #include "dvb_app.h"
  76. #endif
  77. #ifdef CONFIG_ISDB_SYSTEM
  78. #include "app_sbtvd_playback.h"
  79. #include "sbtvd_app.h"
  80. #endif
  81. #include "al_time.h"
  82. #include "app_systime.h"
  83. #endif
  84. #endif
  85. #ifdef SUPPORT_CEC_TV
  86. #include "umf_cec.h"
  87. #endif
  88. #include "app_video.h"
  89. #include "app_guiobj_hdmilink.h"
  90. #include "app_guiobj_channel.h"
  91. #include "pin_config.h"
  92. #include "umf_ioctl.h"
  93. #ifdef CONFIG_ENABLE_UMF_MODULES
  94. #include "umf_mod.h"
  95. #endif
  96. #include "app_guiobj_sleeptimer.h"
  97. #include "MM_media_qsd_gui.h"
  98. #include "app_sysset.h"
  99. #include "app_guiobj_cul_fm_factorySetting_new.h"
  100. #include"app_guiobj_cul_fm_HotelSetting.h"
  101. #ifdef CONFIG_SUPPORT_PANNEL_PHOTO_TEST
  102. #include "mw_logo.h"
  103. #endif
  104. #ifdef CONFIG_SUPPORT_INDONESIA_EWS
  105. #include "app_guiobj_ews_areacodesetting.h"
  106. #endif
  107. #ifdef CONFIG_SUPPORT_MIRACAST
  108. #include "umf_miracast.h"
  109. #endif
  110. #ifdef CONFIG_SUPPORT_DETECT_USBPLL
  111. #include "nvm_ioctl.h"
  112. #include "cust_nvm_cfg.h"
  113. #endif
  114. #ifdef CONFIG_SUPPORT_NET_OTA
  115. #include "net_ota.h"
  116. #include "app_usb_upgrade.h"
  117. #endif
  118. //#include "MM_gui_object_table.h"
  119. /********************************************************************
  120. Macros
  121. ********************************************************************/
  122. #define FILE_DEBUG
  123. #define file_printf(fmt, arg...) ((void) 0)
  124. #ifdef FILE_DEBUG
  125. #undef file_printf
  126. #define file_printf(fmt, arg...) UMFDBG(0,"[media app]:"fmt, ##arg)
  127. #endif
  128. int SysApp_MM_OnCreate(void** ppPrivateData);
  129. int SysApp_MM_OnDestroy(void** ppPrivateData);
  130. int SysApp_MM_OnRun(void* pPrivateData, UINT32 dParam);
  131. int SysApp_MM_OnTerminate(void* pPrivateData, UINT32 dParam);
  132. int SysApp_MM_OnTimerUpdate(void* pPrivateData);
  133. int SysApp_MM_OnEvent(void* pPrivateData, UINT32 dMessage, UINT32 dParam);
  134. SysAppInstDef stFilePlayerInst =
  135. {
  136. SYS_APP_FILE_PLAYER,
  137. SysApp_MM_OnCreate,
  138. SysApp_MM_OnDestroy,
  139. SysApp_MM_OnRun,
  140. SysApp_MM_OnTerminate,
  141. SysApp_MM_OnTimerUpdate,
  142. SysApp_MM_OnEvent,
  143. SYSTEM_IDLE,
  144. FILEBROWSER_GUI_Obj_List,
  145. MEDIA_GUIOBJ_MAX,
  146. NULL,
  147. NULL
  148. };
  149. #ifdef CONFIG_SUPPORT_PVR
  150. AL_DB_ERecordType_t g_MM_eRecType;
  151. AL_SCH_sched_id_t g_MM_dReminderId;
  152. AL_PR_details_t g_MM_stDetails;
  153. #endif
  154. #ifdef CONFIG_SUPPORT_HOTKEY_SOURCE_LOCK
  155. static bool g_fmSourceLock_flag = FALSE;
  156. #endif
  157. bool g_bOpenHomeMenuAfterCloseFM = FALSE;
  158. static UINT8 g_u8SourceTrastTimer = 0;
  159. static APP_Audio_SetDualMode_e bakDaulMode = AUDIO_OUTPUT_CHANNEL_AUTO;
  160. static INT32 g_u32Mutekeydelaytime = 10;
  161. static INT32 g_u32MuteIconHandle = 10;
  162. static INT32 MUTE_KEY_INTERVAL = 10;
  163. bool g_need_show_pop = FALSE;
  164. extern UINT8 AL_FLASH_GetColorLUTALL(ColorLUT_t* bColorLUTValue);
  165. extern void _APP_GUIOBJ_Sound_SetMuteStatus();
  166. #ifdef CONFIG_SUPPORT_HOTKEY_SOURCE_LOCK
  167. extern void SourceLock_Set_Hotkey_Flag(bool g_SourceLock_flag);
  168. #endif
  169. #ifdef CONFIG_SUPPORT_PVR
  170. UINT32 SysApp_MM_PVRRec_GetReminderTime2Show(void)
  171. {
  172. al_uint32 CurTimeInSec = 0;
  173. AL_Time_GetCurTimeInSecs(&CurTimeInSec);
  174. if (g_MM_stDetails.start_local_time_secs > CurTimeInSec)
  175. {
  176. return (g_MM_stDetails.start_local_time_secs-CurTimeInSec);
  177. }
  178. else
  179. {
  180. return 1;//show 1 sec
  181. }
  182. }
  183. UINT32 SysApp_MM_PVRRec_SetTimerCancle(void)
  184. {
  185. AL_PR_details_t stDetails;
  186. if (g_MM_stDetails.snooze_time_secs == 0)
  187. {
  188. AL_PR_Delete(g_MM_dReminderId);
  189. }
  190. else
  191. {
  192. memset(&stDetails, 0x0, sizeof(AL_PR_details_t));
  193. memcpy(&stDetails, &g_MM_stDetails, sizeof(AL_PR_details_t));
  194. stDetails.start_local_time_secs = stDetails.start_local_time_secs +
  195. stDetails.snooze_time_secs;
  196. stDetails.rem_details.event_end_time_insec = stDetails.rem_details.event_end_time_insec +
  197. stDetails.snooze_time_secs;
  198. if (AL_PR_Modify(&stDetails, g_MM_dReminderId) != AL_SUCCESS)
  199. {
  200. file_printf("\n[%s]reschedule the reminder fail\n",__FUNCTION__);
  201. return SP_ERR_FAILURE;
  202. }
  203. }
  204. return SP_SUCCESS;
  205. }
  206. #endif
  207. /******************************************************************************/
  208. /**
  209. * @brief : For FactoryMenu -> factory User Mode -> Utility -> Burn in mode.
  210. * @param
  211. * @return
  212. *
  213. ******************************************************************************/
  214. void SysApp_MM_BurninMode_Pause_MediaPlay(void)
  215. {
  216. int sdRet = 0;
  217. MediaPlayState_e ePlayState;
  218. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_PHOTO_PLAYBACK))
  219. {
  220. file_printf("[%s] line [%d]: pause playing picture & stop playing BG music...\n",__FUNCTION__,__LINE__);
  221. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MUSIC_BGSOURCE);
  222. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_FILE_PLAYER,
  223. MEDIA_GUIOBJ_MUSIC_BGPLAYBACK, FILE_INTRA_EVENT_FILE_STOP, 0);
  224. //SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MUSIC_BGPLAYBACK);
  225. ePlayState = MM_PhotoPlayback_GetPlayState();
  226. if ((ePlayState != MEDIA_STATE_STOP) && (ePlayState != MEDIA_STATE_MAX))
  227. {
  228. MM_PhotoPlayback_SetPlayState(MEDIA_STATE_PAUSE);
  229. }
  230. MM_PhotoPlayback_ClearDisplayImage();
  231. return;
  232. }
  233. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MUSIC_PLAYBACK))
  234. {
  235. file_printf("[%s] line [%d]: pause playing music...\n",__FUNCTION__,__LINE__);
  236. ePlayState = MM_Music_GetPlayState();
  237. if ((ePlayState != MEDIA_STATE_STOP)
  238. && (ePlayState != MEDIA_STATE_PAUSE)
  239. && (ePlayState != MEDIA_STATE_MAX)
  240. )
  241. {
  242. sdRet = MM_Music_Pause();
  243. if (sdRet != 0)
  244. {
  245. file_printf("[%s] line [%d]: Err [%d]\n",__FUNCTION__,__LINE__,sdRet);
  246. }
  247. }
  248. return;
  249. }
  250. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MOVIE_PLAYBACK))
  251. {
  252. Movie_Data_t * p_stMovieData = MM_MoviePlayback_GetMovieData();
  253. ePlayState = p_stMovieData->ePlayState;
  254. if ((ePlayState != MEDIA_STATE_STOP) && (ePlayState != MEDIA_STATE_MAX))
  255. {
  256. file_printf("[%s] line [%d]: pause playing movie...\n",__FUNCTION__,__LINE__);
  257. if ((ePlayState == MEDIA_STATE_FB) ||
  258. (ePlayState == MEDIA_STATE_FF) ||
  259. (ePlayState == MEDIA_STATE_SB) ||
  260. (ePlayState == MEDIA_STATE_SF) ||
  261. (ePlayState == MEDIA_STATE_PLAY))
  262. {
  263. sdRet = MM_MoviePlayback_Pause();
  264. if (sdRet != 0)
  265. {
  266. file_printf("[%s] line [%d]: Err [%d]\n",__FUNCTION__,__LINE__,sdRet);
  267. }
  268. }
  269. else if (ePlayState == MEDIA_STATE_PAUSE)
  270. {
  271. //Nothing to do.
  272. }
  273. else
  274. {
  275. sdRet = MM_MoviePlayback_Stop();
  276. if (sdRet != 0)
  277. {
  278. file_printf("[%s] line [%d]: Err [%d]\n",__FUNCTION__,__LINE__,sdRet);
  279. }
  280. }
  281. }
  282. return;
  283. }
  284. /*
  285. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_PVR_PLAYBACK))
  286. {
  287. file_printf("[%s] line [%d]: pause playing pvr...\n",__FUNCTION__,__LINE__);
  288. ePlayState = MM_PVRPlayback_GetPlayStatus();
  289. if ((ePlayState == MEDIA_STATE_FF) ||
  290. (ePlayState == MEDIA_STATE_FB) ||
  291. (ePlayState == MEDIA_STATE_PLAY))
  292. {
  293. sdRet = MM_PVRPlayback_Pause();
  294. if (sdRet != 0)
  295. {
  296. file_printf("[%s] line [%d]: Err [%d]\n",__FUNCTION__,__LINE__,sdRet);
  297. }
  298. }
  299. else
  300. {
  301. //Nothing to do.
  302. }
  303. return;
  304. }*/
  305. }
  306. /******************************************************************************/
  307. /**
  308. * @brief : For FactoryMenu -> factory User Mode -> Utility -> Burn in mode.
  309. * @param
  310. * @return
  311. *
  312. ******************************************************************************/
  313. void SysApp_MM_BurninMode_Resume_MediaPlay(void)
  314. {
  315. MediaPlayState_e ePlayState;
  316. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_PHOTO_PLAYBACK))
  317. {
  318. ePlayState = MM_PhotoPlayback_GetPlayState();
  319. if ((ePlayState != MEDIA_STATE_STOP) && (ePlayState != MEDIA_STATE_MAX))
  320. {
  321. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_FILE_PLAYER,
  322. MEDIA_GUIOBJ_PHOTO_PLAYBACK, FILE_INTRA_EVENT_FILE_NEXT, 0);
  323. MM_PhotoPlayback_SetPlayState(MEDIA_STATE_PLAY);
  324. }
  325. return;
  326. }
  327. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MUSIC_PLAYBACK))
  328. {
  329. ePlayState = MM_Music_GetPlayState();
  330. if ((ePlayState != MEDIA_STATE_STOP)
  331. && (ePlayState != MEDIA_STATE_MAX)
  332. )
  333. {
  334. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_FILE_PLAYER,
  335. MEDIA_GUIOBJ_MUSIC_PLAYBACK, UI_EVENT_PLAY_PAUSE, 0);
  336. //MM_Music_OpenSelectedFile();
  337. //MM_Music_Play();
  338. }
  339. return;
  340. }
  341. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MOVIE_PLAYBACK))
  342. {
  343. file_printf("[%s] line [%d]: start to resume playing movie...\n",__FUNCTION__,__LINE__);
  344. Movie_Data_t * p_stMovieData = MM_MoviePlayback_GetMovieData();
  345. ePlayState = p_stMovieData->ePlayState;
  346. if (ePlayState == MEDIA_STATE_PAUSE)
  347. {
  348. MM_MoviePlayback_Play();
  349. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_FILE_PLAYER,
  350. MEDIA_GUIOBJ_MOVIE_HINT, FILE_INTRA_EVENT_FILE_STATE_REFRESH, 0);
  351. }
  352. else
  353. {
  354. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MOVIE_PLAYBACK);
  355. }
  356. return;
  357. }
  358. /*if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_PVR_PLAYBACK))
  359. {
  360. file_printf("[%s] line [%d]: start to resume playing pvr...\n",__FUNCTION__,__LINE__);
  361. ePlayState = MM_PVRPlayback_GetPlayStatus();
  362. if (ePlayState == MEDIA_STATE_PAUSE)
  363. {
  364. MM_PVRPlayback_Play();
  365. }
  366. else
  367. {
  368. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_PVR_PLAYBACK);
  369. }
  370. return;
  371. }*/
  372. }
  373. /******************************************************************************/
  374. /**
  375. * @brief
  376. * @param
  377. * @return
  378. *
  379. ******************************************************************************/
  380. int SysApp_MM_DestroyPartialObjects(bool bIsCleanAll)
  381. {
  382. int i = 0;
  383. UINT32 u32TotalObj = 0;
  384. UINT8 u8FilteredObj = 0;
  385. UINT32 u32GuiObjID[MEDIA_GUIOBJ_MAX] = {0};
  386. UINT32 u32CloseGuiObjID[MEDIA_GUIOBJ_MAX] = {0};
  387. /*
  388. when we call this api to destroty all gui object, the the current gui object will not
  389. implement lose foucus function,this means that some ui resource will not free,so
  390. create a null gui object to let the current gui object lost focus--gadenia
  391. */
  392. if(bIsCleanAll)
  393. {
  394. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL, 0);
  395. }
  396. if (SYSAPP_GOBJ_GetTotalCreatedObjects(SYS_APP_FILE_PLAYER, &u32TotalObj) \
  397. == SYSTEM_APP_INDEX_ERROR)
  398. {
  399. file_printf("%s() %d\n", __FUNCTION__, __LINE__);
  400. return SP_ERR_FAILURE;
  401. }
  402. for (i = u32TotalObj - 1; i >= 0; i--)
  403. {
  404. if (SYSAPP_GOBJ_GetObjectIDByIndex(SYS_APP_FILE_PLAYER, i , &u32GuiObjID[u8FilteredObj]) \
  405. == SYSTEM_APP_INDEX_ERROR)
  406. {
  407. file_printf("%s() %d\n", __FUNCTION__, __LINE__);
  408. return SP_ERR_FAILURE;
  409. }
  410. if (
  411. (u32GuiObjID[u8FilteredObj] == MEDIA_GUIOBJ_HOMEPAGE
  412. || u32GuiObjID[u8FilteredObj] == APP_GUIOBJ_MUTE
  413. || u32GuiObjID[u8FilteredObj] == MEDIA_GUIOBJ_POPMSG
  414. #ifdef CONFIG_KEYPAD_SINGLE_REUSE
  415. || u32GuiObjID[u8FilteredObj] == APP_GUIOBJ_KEYPADMENU
  416. #endif
  417. )
  418. && (!bIsCleanAll)
  419. )
  420. {
  421. continue;
  422. }
  423. u8FilteredObj++;
  424. }
  425. /*mantis33781:when we call this api to destroty all gui object, menu close order need depend on open order*/
  426. for (i = u8FilteredObj - 1; i >= 0; i--)
  427. {
  428. u32CloseGuiObjID[u8FilteredObj - i - 1] = u32GuiObjID[i];
  429. if(u32GuiObjID[i] == APP_GUIOBJ_MUTE)
  430. {
  431. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_FILE_PLAYER,
  432. APP_GUIOBJ_MUTE, APP_INTRA_EVENT_HIDE_MUTE, 0);
  433. }
  434. }
  435. file_printf("[%s] MEDIA_GUIOBJ_POPMSG = %d\n", __FUNCTION__, MEDIA_GUIOBJ_POPMSG);
  436. file_printf("[%s] u8FilteredObj = %d\n", __FUNCTION__, u8FilteredObj);
  437. SYSAPP_GOBJ_DestroyPartialGUIObjects(SYS_APP_FILE_PLAYER, u32CloseGuiObjID, u8FilteredObj);
  438. return SP_SUCCESS;
  439. }
  440. /******************************************************************************/
  441. /**
  442. * @brief : Destroy all common GUIs.
  443. * @param :
  444. * @return :
  445. *
  446. ******************************************************************************/
  447. void SysApp_MM_DestroyAppointedGUI(void)
  448. {
  449. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_POPMSG))
  450. {
  451. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_POPMSG);
  452. }
  453. #ifdef SUPPORT_FACTORY_AUTO_TEST_MODE2
  454. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FAC_AUTOTEST))
  455. {
  456. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FAC_AUTOTEST);
  457. }
  458. #endif
  459. if (APP_MenuMgr_Exist_Main_Menu())
  460. {
  461. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_POPMSG_MAINMENU))
  462. {
  463. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_POPMSG_MAINMENU);
  464. }
  465. APP_MenuMgr_Exit_Main_Menu();
  466. }
  467. if (APP_MenuMgr_Exist_Factory_Menu())
  468. {
  469. APP_MenuMgr_Exit_Factory_Menu();
  470. }
  471. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOURCE))
  472. {
  473. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOURCE);
  474. }
  475. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOURCE_CEC))
  476. {
  477. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOURCE_CEC);
  478. }
  479. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_BANNER))
  480. {
  481. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_BANNER);
  482. }
  483. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_ADJUST))
  484. {
  485. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_ADJUST);
  486. }
  487. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_AMPLIFIERVOLUME))
  488. {
  489. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_AMPLIFIERVOLUME);
  490. }
  491. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SLEEP_INFO))
  492. {
  493. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SLEEP_INFO);
  494. }
  495. }
  496. int SysApp_MM_ScheduleMainmenuPopup(PopmsgParam_t Popup)
  497. {
  498. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_POPMSG_MAINMENU))
  499. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_POPMSG_MAINMENU);
  500. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_POPMSG_MAINMENU, (UINT32)&Popup);
  501. return SP_SUCCESS;
  502. }
  503. int SysApp_MM_CloseMainmenuPopup(UINT32 u32ClosePopup,UINT32 dMessage)
  504. {
  505. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_POPMSG_MAINMENU))
  506. {
  507. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_POPMSG_MAINMENU);
  508. }
  509. if (dMessage != UI_EVENT_NULL)
  510. {
  511. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_FILE_PLAYER, dMessage, u32ClosePopup);
  512. }
  513. return SP_SUCCESS;
  514. }
  515. /******************************************************************************/
  516. /**
  517. * @brief
  518. * @param
  519. * @return
  520. *
  521. ******************************************************************************/
  522. int SysApp_MM_OnCreate(void** ppPrivateData)
  523. {
  524. file_printf("\n\n[FilePlayer] %s.+++++++++++++++++++++++++++++++++++++++++\n\n\n", __FUNCTION__);
  525. FilePlayerPrivateData_t* pFilePlayerPrivateData = (FilePlayerPrivateData_t*) GL_MemAlloc(sizeof(FilePlayerPrivateData_t));
  526. if (pFilePlayerPrivateData == NULL)
  527. {
  528. file_printf("malloc error!!\n");
  529. return SP_ERR_FAILURE;
  530. }
  531. memset(pFilePlayerPrivateData, 0x00, sizeof(FilePlayerPrivateData_t));
  532. //Assign pointer back to system application instance.
  533. (*ppPrivateData) = (void*) pFilePlayerPrivateData;
  534. /* Multimedia initial*/
  535. if (MM_Multimedia_Prior_Init() != SP_SUCCESS)
  536. {
  537. file_printf("%s() %d, call MM_Multimedia_Prior_Init() ret Fail\n", __FUNCTION__, __LINE__);
  538. }
  539. if (APP_Multimedia_Data_Init() != SP_SUCCESS)
  540. {
  541. file_printf("%s() %d, call APP_Mulitmedia_Data_Init() ret Fail\n", __FUNCTION__, __LINE__);
  542. }
  543. #ifdef CONFIG_ATV_SUPPORT
  544. #if (SCARTOUT_MODE_MEDIA == SCARTOUT_ATV_SOURCE)
  545. AL_FW_Init(FW_ATV_INIT, NULL, NULL);
  546. #endif
  547. #endif
  548. stFilePlayerInst.bAppState = SYSTEM_IDLE;
  549. return SP_SUCCESS;
  550. }
  551. /******************************************************************************/
  552. /**
  553. * @brief
  554. * @param
  555. * @return
  556. *
  557. ******************************************************************************/
  558. int SysApp_MM_OnDestroy(void** ppPrivateData)
  559. {
  560. file_printf("\n\n[FilePlayer] %s.+++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n\n", __FUNCTION__);
  561. MM_UnInitFileListCtrlData();
  562. AL_Multimedia_PlayList_Uninit();
  563. AL_Multimedia_FileSystem_Uninit(TRUE);
  564. GL_MemFree((*ppPrivateData));
  565. (*ppPrivateData) = NULL;
  566. return SP_SUCCESS;
  567. }
  568. /******************************************************************************/
  569. /**
  570. * @brief
  571. * @param
  572. * @return
  573. *
  574. ******************************************************************************/
  575. int SysApp_MM_OnRun(void* pPrivateData, UINT32 dParam)
  576. {
  577. file_printf("\n\n[FilePlayer] %s.++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n\n", __FUNCTION__);
  578. stFilePlayerInst.bAppState = SYSTEM_RUNNING;
  579. #ifdef CONFIG_MOD_PACK_DTV
  580. if (umf_checkModuleLoaded(UMFMOD_DTV))
  581. {
  582. MAINAPP_SendGlobalEvent(APP_GLOBAL_EVENT_FINALIZE_SYSAPP, SYS_APP_DVB);
  583. }
  584. #endif
  585. #ifdef CONFIG_ENABLE_UMF_MODULES
  586. umf_loadModule(UMFMOD_PICTURE);
  587. #endif
  588. APP_GuiMgr_Set_Menu() ;
  589. APP_GuiMgr_SwitchShareMenu(SYS_APP_FILE_PLAYER);
  590. /*Change Source*/
  591. if (SP_SUCCESS != APP_GUIOBJ_Source_SetMidSource(NULL))
  592. {
  593. file_printf("[%s] %d, Mid display setting source fail\n", __FUNCTION__, __LINE__);
  594. APP_GUIOBJ_Source_SetSourceTransState(FALSE);
  595. g_u8SourceTrastTimer = 0;
  596. return SP_ERR_FAILURE;
  597. }
  598. MM_PopMsg_Init();
  599. APP_GUIOBJ_PopMs_SetCloseFun(SysApp_MM_CloseMainmenuPopup); //Init popmsg close func for Mainmenu.
  600. MM_Multimedia_Init();
  601. #if 0//def CONFIG_SUPPORT_MIRACAST
  602. //if( IsDonglePlugged() )
  603. {
  604. //DrawInfoWindow("Device plugged", DRAW_IT);
  605. MiracastInit();
  606. }
  607. //else{
  608. //DrawInfoWindow("NO Device!!", DRAW_IT);
  609. //}
  610. #endif
  611. #if 1
  612. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  613. FILE_GLOBAL_EVENT_MEDIA_ONRUN | PASS_TO_SYSAPP, TRUE);
  614. #else
  615. MM_BGSource_CreatePlayListHandle();
  616. MM_Browser_CreateSelectedFileListHandle();
  617. /*
  618. ** System has called the function APP_Audio_SetMute() as switching source
  619. ** even the origional source was not muted.
  620. ** Force mute audio
  621. */
  622. APP_Audio_SetMute(TRUE, TRUE, APP_MUTE_MODE_NO_SIGNALE, APP_SOURCE_MEDIA);
  623. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER, 0,
  624. sizeof(APP_SETTING_FactoryUser_t), &(g_stFactoryUserData));
  625. if (g_stFactoryUserData.n_FactSet_BurningMode == al_false)
  626. {
  627. APP_Video_SetMute(TRUE, FALSE, APP_MUTE_MODE_SIGNAL_DETECT, APP_SOURCE_MEDIA);
  628. }
  629. g_bOpenHomeMenuAfterCloseFM = TRUE;
  630. if(!APP_Factory_CheckNeedReopenFm(SYS_APP_FILE_PLAYER))
  631. {
  632. g_bOpenHomeMenuAfterCloseFM = FALSE;
  633. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE))
  634. {
  635. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE, 0);
  636. }
  637. UINT16 DeviceCount = 0;
  638. #ifdef CONFIG_MULTIMEDIA1_SUPPORT
  639. APP_Source_Type_t eSourceType;
  640. APP_GUIOBJ_Source_GetCurrSource(&eSourceType);
  641. if(eSourceType == APP_SOURCE_MEDIA)
  642. {
  643. MM_HomePage_SetMediaSourceNumber(MEDIA_ONE);
  644. }
  645. else if(eSourceType == APP_SOURCE_MEDIA1)
  646. {
  647. MM_HomePage_SetMediaSourceNumber(MEDIA_TWO);
  648. }
  649. const FileSystem_Partition_t* PartitionList = MM_HomePage_GetPartitionListOfCurrentPort();
  650. DeviceCount = PartitionList->ValidCount;
  651. #else
  652. DeviceCount = AL_Multimedia_FileSystem_GetTotalPartitionCount();
  653. #endif
  654. #if 0//def SUPPORT_FACTORY_AUTO_TEST_MODE2
  655. if(APP_Factory_GetAutoTestOnOff() == TRUE)
  656. {
  657. extern void APP_GUIOBJ_Fac_AutoTest_SetAutoTestFlag(al_bool MenuOpen);
  658. APP_GUIOBJ_Fac_AutoTest_SetAutoTestFlag(al_true);
  659. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  660. {
  661. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  662. }
  663. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FAC_AUTOTEST))
  664. {
  665. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FAC_AUTOTEST, 1);
  666. }
  667. }
  668. else
  669. #endif
  670. {
  671. #ifdef N32_GAME_SUPPORT
  672. if((FLAG_GAME)&FLASH_GAME_STATUS)
  673. {
  674. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_GAME_PLAYBACK))
  675. {
  676. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_GAME_PLAYBACK, 0);
  677. }
  678. }
  679. else
  680. {
  681. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  682. {
  683. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  684. }
  685. }
  686. #else
  687. #ifdef CONFIG_USB_DEMO_SUPPORT
  688. if (DeviceCount > 0)
  689. {
  690. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_USB_DEMO))
  691. {
  692. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_USB_DEMO, 0);
  693. }
  694. }
  695. else if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  696. {
  697. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  698. }
  699. #else
  700. #ifdef CONFIG_SUPPORT_MEDIA_ESD_TEST
  701. MM_MediaEsdTest_GetPowerOnMode();
  702. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_ESD_TEST, 0);
  703. if (MM_MediaEsdTest_IsTestMode())
  704. {
  705. //ESD Test Guiobj Always creat for store play info all the time.
  706. }
  707. else
  708. #endif
  709. #ifdef CONFIG_SUPPORT_MEDIA_AUTO_PLAY
  710. if (MM_AutoPlay_SetFlag())
  711. {
  712. if((MM_AutoPlay_IsOn() == TRUE) && (DeviceCount > 0))
  713. {
  714. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_AUTO_PLAY))
  715. {
  716. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_AUTO_PLAY, 0);
  717. }
  718. }
  719. }
  720. else
  721. #endif
  722. if ((MM_MediaQsd_IsTest() == TRUE) && (DeviceCount > 0))
  723. {
  724. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_QSD_TEST))
  725. {
  726. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_QSD_TEST, 0);
  727. }
  728. }
  729. #ifdef CONFIG_SUPPORT_PANNEL_PHOTO_TEST
  730. else if(Mid_PannelPhoto_IsPhotoPlayAnable() == TRUE)
  731. {
  732. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_QSD_TEST))
  733. {
  734. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_QSD_TEST, 0);
  735. }
  736. }
  737. #endif
  738. else
  739. {
  740. MM_MediaQsd_SetTestFlag(FALSE,2);
  741. #ifdef CONFIG_SUPPORT_DETECT_USBPLL
  742. UINT8 u8USBPLL_Fail = 0;
  743. Cmd_NVMRead(ENVMPurposeIDUSBPLLFailFlag, FALSE, sizeof(UINT8), &u8USBPLL_Fail);
  744. if(u8USBPLL_Fail == TRUE)
  745. {
  746. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE,
  747. APP_INTRA_EVENT_SHOW_CLK_ERROR, 0);
  748. }
  749. else
  750. #endif
  751. if (g_stFactoryUserData.n_FactSet_BurningMode == al_false)
  752. {
  753. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  754. {
  755. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  756. }
  757. }
  758. }
  759. #endif
  760. #endif
  761. }
  762. }
  763. #ifdef CONFIG_SUPPORT_INDONESIA_EWS
  764. if(!_APP_GUIOBJ_EWS_AreaCodeSetting_GetLeaveState())
  765. {
  766. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_EWS_AREACODE))
  767. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_EWS_AREACODE, 0);
  768. }
  769. #endif
  770. /* change source to net, it will destroy `mute' icon
  771. ** so, judge `mute' state, show icon
  772. */
  773. if (g_stUserInfoData.Mute == TRUE)
  774. {
  775. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE,
  776. APP_INTRA_EVENT_SHOW_MUTE, SHOW_MUTE_ON_FS);
  777. }
  778. APP_GUIOBJ_Source_SetSourceTransState(FALSE);
  779. g_u8SourceTrastTimer = 0;
  780. bakDaulMode = APP_Audio_GetDualMode();
  781. APP_Audio_SetDualMode(AUDIO_OUTPUT_CHANNEL_STEREO);
  782. #endif
  783. return SP_SUCCESS;
  784. }
  785. /******************************************************************************/
  786. /**
  787. * @brief
  788. * @param
  789. * @return
  790. *
  791. ******************************************************************************/
  792. int SysApp_MM_OnTerminate(void* pPrivateData, UINT32 dParam)
  793. {
  794. file_printf("\n\n[FilePlayer] %s.+++++++++++++++++++++++++++++++++++\n\n\n", __FUNCTION__);
  795. SysApp_MM_DestroyPartialObjects(TRUE);
  796. SYSAPP_GOBJ_FinalizeGUIObject(SYS_APP_FILE_PLAYER);
  797. #ifndef USE_MON_CONTROL_TEST
  798. MM_Multimedia_Uninit();
  799. MM_BGSource_DestroyPlayListHandle();
  800. MM_Browser_DestroySelectedFileListHandle();
  801. #endif
  802. MM_PopMsg_Init();
  803. //To avoid the PoPo scream when switching source to others.
  804. #ifdef CONFIG_SCARTOUT_IN_AVC
  805. APP_Audio_SetMute(TRUE, FALSE, APP_MUTE_MODE_STATEMAX, APP_SOURCE_MEDIA);
  806. #else
  807. APP_Audio_SetMute(TRUE, TRUE, APP_MUTE_MODE_STATEMAX, APP_SOURCE_MEDIA);
  808. #endif
  809. APP_Audio_SetDualMode(bakDaulMode);
  810. stFilePlayerInst.bAppState = SYSTEM_IDLE;
  811. /* add by qinhe for 64M D(T+C)+M */
  812. #ifdef CONFIG_ENABLE_UMF_MODULES
  813. APP_GuiMgr_ActivateRegion(IDM_Source_window, OSD_TVPROJECT, FALSE);
  814. MAINAPP_SendGlobalEvent(APP_GLOBAL_EVENT_FINALIZE_SYSAPP, SYS_APP_FILE_PLAYER);
  815. umf_unloadModule(UMFMOD_PICTURE);
  816. #endif
  817. return SP_SUCCESS;
  818. }
  819. /******************************************************************************/
  820. /**
  821. * @brief
  822. * @param
  823. * @return
  824. *
  825. ******************************************************************************/
  826. int SysApp_MM_OnTimerUpdate(void* pPrivateData)
  827. {
  828. /*Delay the mute key sending to AMP*/
  829. if((0 <= g_u32Mutekeydelaytime) && (g_u32Mutekeydelaytime < MUTE_KEY_INTERVAL))
  830. {
  831. g_u32Mutekeydelaytime++;
  832. g_u32MuteIconHandle++;
  833. }
  834. /*Set timer to source translate state
  835. avoid dvb app not received onrun message result in not clear the falg*/
  836. if (APP_GUIOBJ_Source_GetSourceTransState())
  837. {
  838. g_u8SourceTrastTimer++;
  839. if (g_u8SourceTrastTimer >= 3)//3*100ms
  840. {
  841. APP_GUIOBJ_Source_SetSourceTransState(FALSE);
  842. g_u8SourceTrastTimer = 0;
  843. }
  844. }
  845. return SP_SUCCESS;
  846. }
  847. /******************************************************************************/
  848. /**
  849. * @brief
  850. * @param
  851. * @return
  852. *
  853. ******************************************************************************/
  854. static int SysApp_MM_OnGlobalEvent(void* pPrivateData, UINT32 dMessage, UINT32 dParam)
  855. {
  856. UINT8 RegionIdx = 0;
  857. ColorLUT_t stColorLUTValue;
  858. #ifdef SUPPORT_SOURCE_DVBTCS
  859. APP_Source_Type_t eSourType = APP_SOURCE_MAX;
  860. UINT32 RFtype = APP_RF_TYPE_DVB_MAX;
  861. UINT32 StringId = 0;
  862. #endif
  863. dMessage = (dMessage & ~PASS_TO_SYSAPP);
  864. file_printf("[FilePlayer] %s : dMessage = 0x%x.\n", __FUNCTION__, dMessage);
  865. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER, 0,
  866. sizeof(APP_SETTING_FactoryUser_t), &(g_stFactoryUserData));
  867. if (g_stFactoryUserData.n_FactSet_BurningMode == al_true)
  868. {
  869. #ifdef CONFIG_SUPPORT_DETECT_USBPLL
  870. if (dMessage == APP_GLOBAL_EVENT_USBPLL_RESULT)
  871. {
  872. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE, APP_INTRA_EVENT_SHOW_MESSAGE, dParam);
  873. }
  874. #endif
  875. return SP_SUCCESS;
  876. }
  877. if (MM_Music_GetPanelControlType() == APP_PANEL_POWER_DOWN && (dMessage >= UI_EVENT_0 && dMessage < UI_EVENT_NULL) && (dMessage != UI_EVENT_POWER))
  878. {
  879. Cmd_SetPanelBacklightPower(1);
  880. //No need to set Backlight again. Mark by jiahe 2012.8.28: Start
  881. /*
  882. APP_Video_OSD_PQSet(APP_VIDEO_OSD_ITEM_BACKLIGHT,
  883. g_stSetupData.HomeMode.Backlight[g_stSetupData.HomeMode.Type]);
  884. */
  885. //No need to set Backlight again. Mark by jiahe 2012.8.28: End
  886. MM_Music_SetPanelControlType(APP_PANEL_POWER_UP);
  887. return SP_SUCCESS;
  888. }
  889. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTHOTEL, 0,
  890. sizeof(APP_SETTING_FactoryHotel_t), &(g_stFactoryHotelData));
  891. if ((g_stFactoryHotelData.HotelModeOnOff == 1)
  892. &&(g_stFactoryHotelData.MainUIOperation == 1)
  893. &&(dMessage == UI_EVENT_MENU))
  894. {
  895. return SP_SUCCESS;
  896. }
  897. if ((g_stFactoryHotelData.HotelModeOnOff == 1)
  898. &&(g_stFactoryHotelData.AspectRatioLock == 1)
  899. &&(dMessage == UI_EVENT_ASPECT))
  900. {
  901. return SP_SUCCESS;
  902. }
  903. #ifdef SUPPORT_CEC_TV
  904. if (CECTV_GetCECEnable()==CECTV_ENABLE)
  905. {
  906. //active source
  907. if(dMessage==UI_EVENT_TVRADIO)
  908. {
  909. file_printf("========================UI_EVENT_TVRADIO========================");
  910. // no need to notice cec change src
  911. //CECTV_SendCmd(CECTV_SINGLE_ACT_CMD_CHGSRC_OUT_HDMI, SRC_OTHERS);
  912. }
  913. if(dMessage==UI_EVENT_MUTE)
  914. {
  915. file_printf("\n\n=============CEC Send Audio Mute===============\n\n");
  916. //CECTV_SendCmd(CECTV_SINGLE_ACT_CMD_KEYPRESS, CECTV_KEY_MUTE<<8|0x05);//Mute Function
  917. if (CECTV_GetHDMISystemAudioMode()&& APP_Check_CEC_DEVICE_Status())
  918. {
  919. if(g_u32Mutekeydelaytime >= MUTE_KEY_INTERVAL) /*Delay the mute key sending to AMP*/
  920. {
  921. cec_RemoteControlPassThrough(CECTV_KEY_MUTE);
  922. cec_RemoteControlPassThrough(CECTV_KEY_MUTE_RELEASE);
  923. g_u32Mutekeydelaytime = 0;
  924. }
  925. }
  926. }
  927. if(dMessage==UI_EVENT_VOL_UP)
  928. {
  929. file_printf("========================UI_EVENT_VOL_UP========================");
  930. //CECTV_SendCmd(CECTV_SINGLE_ACT_CMD_KEYPRESS, CECTV_KEY_VOLUME_UP<<8|0x05);//UCP VOL_DN Function
  931. if (CECTV_GetHDMISystemAudioMode() && APP_Check_CEC_DEVICE_Status())
  932. {
  933. if (dParam & IR_EVENT_REPEAT_TYPE)
  934. {
  935. cec_RemoteControlPassThrough(CECTV_KEY_VOLUME_UP);
  936. }
  937. else if (dParam & IR_EVENT_REPEAT_END)
  938. {
  939. cec_RemoteControlPassThrough(CECTV_KEY_VOLUME_UP_RELEASE);
  940. }
  941. else
  942. {
  943. cec_RemoteControlPassThrough(CECTV_KEY_VOLUME_UP);
  944. cec_RemoteControlPassThrough(CECTV_KEY_VOLUME_UP_RELEASE);
  945. }
  946. }
  947. }
  948. if(dMessage==UI_EVENT_VOL_DN)
  949. {
  950. file_printf("========================UI_EVENT_VOL_DN========================");
  951. //CECTV_SendCmd(CECTV_SINGLE_ACT_CMD_KEYPRESS, CECTV_KEY_VOLUME_DOWN<<8|0x05);//UCP VOL_DN Function
  952. if (CECTV_GetHDMISystemAudioMode() && APP_Check_CEC_DEVICE_Status())
  953. {
  954. if (dParam & IR_EVENT_REPEAT_TYPE)
  955. {
  956. cec_RemoteControlPassThrough(CECTV_KEY_VOLUME_DOWN);
  957. }
  958. else if (dParam & IR_EVENT_REPEAT_END)
  959. {
  960. cec_RemoteControlPassThrough(CECTV_KEY_VOLUME_DOWN_RELEASE);
  961. }
  962. else
  963. {
  964. cec_RemoteControlPassThrough(CECTV_KEY_VOLUME_DOWN);
  965. cec_RemoteControlPassThrough(CECTV_KEY_VOLUME_DOWN_RELEASE);
  966. }
  967. }
  968. }
  969. }
  970. #endif
  971. switch (dMessage)
  972. {
  973. case FILE_GLOBAL_EVENT_MEDIA_ONRUN:
  974. {
  975. MM_BGSource_CreatePlayListHandle();
  976. MM_Browser_CreateSelectedFileListHandle();
  977. /*
  978. ** System has called the function APP_Audio_SetMute() as switching source
  979. ** even the origional source was not muted.
  980. ** Force mute audio
  981. */
  982. APP_Audio_SetMute(TRUE, TRUE, APP_MUTE_MODE_NO_SIGNALE, APP_SOURCE_MEDIA);
  983. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER, 0,
  984. sizeof(APP_SETTING_FactoryUser_t), &(g_stFactoryUserData));
  985. if (g_stFactoryUserData.n_FactSet_BurningMode == al_false)
  986. {
  987. APP_Video_SetMute(TRUE, FALSE, APP_MUTE_MODE_SIGNAL_DETECT, APP_SOURCE_MEDIA);
  988. }
  989. g_bOpenHomeMenuAfterCloseFM = TRUE;
  990. if(!APP_Factory_CheckNeedReopenFm(SYS_APP_FILE_PLAYER))
  991. {
  992. g_bOpenHomeMenuAfterCloseFM = FALSE;
  993. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE))
  994. {
  995. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE, 0);
  996. }
  997. UINT16 DeviceCount = 0;
  998. #ifdef CONFIG_MULTIMEDIA1_SUPPORT
  999. APP_Source_Type_t eSourceType;
  1000. APP_GUIOBJ_Source_GetCurrSource(&eSourceType);
  1001. if(eSourceType == APP_SOURCE_MEDIA)
  1002. {
  1003. MM_HomePage_SetMediaSourceNumber(MEDIA_ONE);
  1004. }
  1005. else if(eSourceType == APP_SOURCE_MEDIA1)
  1006. {
  1007. MM_HomePage_SetMediaSourceNumber(MEDIA_TWO);
  1008. }
  1009. const FileSystem_Partition_t* PartitionList = MM_HomePage_GetPartitionListOfCurrentPort();
  1010. DeviceCount = PartitionList->ValidCount;
  1011. #else
  1012. DeviceCount = AL_Multimedia_FileSystem_GetTotalPartitionCount();
  1013. #endif
  1014. #if 0//def SUPPORT_FACTORY_AUTO_TEST_MODE2
  1015. if(APP_Factory_GetAutoTestOnOff() == TRUE)
  1016. {
  1017. extern void APP_GUIOBJ_Fac_AutoTest_SetAutoTestFlag(al_bool MenuOpen);
  1018. APP_GUIOBJ_Fac_AutoTest_SetAutoTestFlag(al_true);
  1019. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  1020. {
  1021. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  1022. }
  1023. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FAC_AUTOTEST))
  1024. {
  1025. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FAC_AUTOTEST, 1);
  1026. }
  1027. }
  1028. else
  1029. #endif
  1030. {
  1031. #ifdef N32_GAME_SUPPORT
  1032. if((FLAG_GAME)&FLASH_GAME_STATUS)
  1033. {
  1034. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_GAME_PLAYBACK))
  1035. {
  1036. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_GAME_PLAYBACK, 0);
  1037. }
  1038. }
  1039. else
  1040. {
  1041. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  1042. {
  1043. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  1044. }
  1045. }
  1046. #else
  1047. #ifdef CONFIG_USB_DEMO_SUPPORT
  1048. if (DeviceCount > 0)
  1049. {
  1050. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_USB_DEMO))
  1051. {
  1052. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_USB_DEMO, 0);
  1053. }
  1054. }
  1055. else if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  1056. {
  1057. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  1058. }
  1059. #else
  1060. #ifdef CONFIG_SUPPORT_MEDIA_ESD_TEST
  1061. MM_MediaEsdTest_GetPowerOnMode();
  1062. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_ESD_TEST, 0);
  1063. if (MM_MediaEsdTest_IsTestMode())
  1064. {
  1065. //ESD Test Guiobj Always creat for store play info all the time.
  1066. }
  1067. else
  1068. #endif
  1069. #ifdef CONFIG_SUPPORT_MEDIA_AUTO_PLAY
  1070. if (MM_AutoPlay_SetFlag())
  1071. {
  1072. if((MM_AutoPlay_IsOn() == TRUE) && (DeviceCount > 0))
  1073. {
  1074. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_AUTO_PLAY))
  1075. {
  1076. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_AUTO_PLAY, 0);
  1077. }
  1078. }
  1079. }
  1080. else
  1081. #endif
  1082. if ((MM_MediaQsd_IsTest() == TRUE) && (DeviceCount > 0))
  1083. {
  1084. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_QSD_TEST))
  1085. {
  1086. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_QSD_TEST, 0);
  1087. }
  1088. }
  1089. #ifdef CONFIG_SUPPORT_PANNEL_PHOTO_TEST
  1090. else if(Mid_PannelPhoto_IsPhotoPlayAnable() == TRUE)
  1091. {
  1092. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_QSD_TEST))
  1093. {
  1094. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_QSD_TEST, 0);
  1095. }
  1096. }
  1097. #endif
  1098. else
  1099. {
  1100. MM_MediaQsd_SetTestFlag(FALSE,2);
  1101. #ifdef CONFIG_SUPPORT_DETECT_USBPLL
  1102. UINT8 u8USBPLL_Fail = 0;
  1103. Cmd_NVMRead(ENVMPurposeIDUSBPLLFailFlag, FALSE, sizeof(UINT8), &u8USBPLL_Fail);
  1104. if(u8USBPLL_Fail == TRUE)
  1105. {
  1106. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE,
  1107. APP_INTRA_EVENT_SHOW_CLK_ERROR, 0);
  1108. }
  1109. else
  1110. #endif
  1111. if (g_stFactoryUserData.n_FactSet_BurningMode == al_false)
  1112. {
  1113. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  1114. {
  1115. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  1116. }
  1117. }
  1118. }
  1119. #endif
  1120. #endif
  1121. }
  1122. }
  1123. #ifdef CONFIG_SUPPORT_INDONESIA_EWS
  1124. if(!_APP_GUIOBJ_EWS_AreaCodeSetting_GetLeaveState())
  1125. {
  1126. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_EWS_AREACODE))
  1127. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_EWS_AREACODE, 0);
  1128. }
  1129. #endif
  1130. /* change source to net, it will destroy `mute' icon
  1131. ** so, judge `mute' state, show icon
  1132. */
  1133. if (g_stUserInfoData.Mute == TRUE)
  1134. {
  1135. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE,
  1136. APP_INTRA_EVENT_SHOW_MUTE, SHOW_MUTE_ON_FS);
  1137. }
  1138. APP_GUIOBJ_Source_SetSourceTransState(FALSE);
  1139. g_u8SourceTrastTimer = 0;
  1140. bakDaulMode = APP_Audio_GetDualMode();
  1141. APP_Audio_SetDualMode(AUDIO_OUTPUT_CHANNEL_STEREO);
  1142. break;
  1143. }
  1144. #ifdef CONFIG_SUPPORT_AUDIO_CODEC_OVERLAY
  1145. case FW_AUDIO_LOADCODEC_OK:
  1146. printf("\n[%s:%d] Load audio codec ok \n\n",__FUNCTION__,__LINE__);
  1147. break;
  1148. case FW_AUDIO_LOADCODEC_ERROR:
  1149. printf("\n[%s:%d] Load audio codec error \n\n",__FUNCTION__,__LINE__);
  1150. break;
  1151. #endif
  1152. case FW_VIP_FINISH:
  1153. {
  1154. /*set PQ param*/
  1155. AL_FLASH_GetColorLUTALL(&stColorLUTValue);
  1156. for(RegionIdx = 0; RegionIdx<APP_ColorLUT_NUM; RegionIdx++)
  1157. {
  1158. MID_TVFE_SetColorLUT7Range(RegionIdx, APP_Video_GetColorLUTSetting(LUT_FUN_MAKE, RegionIdx),
  1159. stColorLUTValue.n_PicMode_CoLUT_HueMin[RegionIdx],
  1160. stColorLUTValue.n_PicMode_CoLUT_HueMax[RegionIdx],
  1161. stColorLUTValue.n_PicMode_CoLUT_SatMin[RegionIdx],
  1162. stColorLUTValue.n_PicMode_CoLUT_SatMax[RegionIdx],
  1163. stColorLUTValue.n_PicMode_CoLUT_YMin[RegionIdx],
  1164. stColorLUTValue.n_PicMode_CoLUT_YMax[RegionIdx],
  1165. stColorLUTValue.n_PicMode_CoLUT_SmoothLevel[RegionIdx], FALSE);
  1166. MID_TVFE_SetColorLUT7Axis(RegionIdx,
  1167. stColorLUTValue.n_PicMode_CoLUT_Enable[RegionIdx],
  1168. stColorLUTValue.n_PicMode_CoLUT_HueGain[RegionIdx],
  1169. stColorLUTValue.n_PicMode_CoLUT_SatGain[RegionIdx],
  1170. stColorLUTValue.n_PicMode_CoLUT_YGain[RegionIdx],
  1171. RegionIdx==(APP_ColorLUT_NUM - 1)? TRUE : FALSE);
  1172. }
  1173. // Dynamic contrast
  1174. DynamicContrast_t stDynamic;
  1175. AL_FLASH_GetDynamicContrastALL(&stDynamic);
  1176. int nLevel = stDynamic.n_PicMode_DynCon_DynamicContrastlevel;
  1177. MID_TVFE_SetPictureDynamicContrastEnable( nLevel ? 1 : 0);
  1178. MID_TVFE_SetPictureContrastLevel( stDynamic.n_PicMode_DynCon_ContrastLevel[nLevel] );
  1179. MID_TVFE_SetPictureChromaLevel( stDynamic.n_PicMode_DynCon_ChromaLevel[nLevel] );
  1180. MID_TVFE_SetPictureAlphaMode1( stDynamic.n_PicMode_DynCon_Alphamode1[nLevel] );
  1181. MID_TVFE_SetPictureAlphaMode2( stDynamic.n_PicMode_DynCon_Alphamode2[nLevel] );
  1182. MID_TVFE_SetPictureAlphaMode3( stDynamic.n_PicMode_DynCon_Alphamode3[nLevel] );
  1183. MID_TVFE_SetPictureAlphaMode4( stDynamic.n_PicMode_DynCon_Alphamode4[nLevel] );
  1184. MID_TVFE_SetPictureFleshToneLevel( stDynamic.n_PicMode_DynCon_FleshToneLevel );
  1185. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_PICTURE, 0,
  1186. sizeof(APP_SETTING_Picture_t), &(g_stPictureData));
  1187. APP_Video_SetPictureMode(
  1188. g_stPictureData.stPictureModeSourceTab[APP_STORAGE_SOURCE_MEDIA].PictureModeIndex);
  1189. APP_Video_OSD_PQSet(APP_VIDEO_OSD_ITEM_COLORTEMP,g_stPictureData.stPictureModeSourceTab[APP_STORAGE_SOURCE_MEDIA].ColorTempIndex);
  1190. APP_Video_OSD_PQSet(APP_VIDEO_OSD_ITEM_NR,g_stPictureData.NR);
  1191. //No need to set Backlight again. Mark by jiahe 2012.8.28: Start
  1192. /*
  1193. APP_Video_OSD_PQSet(APP_VIDEO_OSD_ITEM_BACKLIGHT, g_stSetupData.HomeMode.Backlight[g_stSetupData.HomeMode.Type]);
  1194. */
  1195. //No need to set Backlight again. Mark by jiahe 2012.8.28: End
  1196. #ifdef SUPPORT_3D_EN
  1197. if (g_stFileData.ControlState.eBrowserFileType==VIDEO_FILETYPE)
  1198. {
  1199. #ifdef N32_FLASH_GAME_SUPPORT
  1200. if((FLAG_GAME)&FLASH_GAME_STATUS)
  1201. {
  1202. MID_DISP_DTVSetInput3DStructure(INPUT_3D_None);
  1203. }
  1204. else
  1205. #endif
  1206. {
  1207. _APP_GUIOBJ_3DMenu_GetForce2DAnother(&value);
  1208. MID_DISP_DTVGet3DModeChangeSt(&e3DModeChangeSt);
  1209. if (DISP_3D_STATUS_RESET == e3DModeChangeSt)
  1210. {
  1211. if(bSet3DMode == DTV_TRUE)
  1212. {
  1213. bSet3DMode = DTV_FALSE;
  1214. }
  1215. else
  1216. if (bSet3DMode == DTV_FALSE)
  1217. {
  1218. APP_GUIOBJ_3DMenu_SetMode(TV_IDS_String_3DMODE_OFF);
  1219. }
  1220. }
  1221. else if (DISP_3D_STATUS_ALWAYS_ON == e3DModeChangeSt)
  1222. {
  1223. APP_GUIOBJ_3DMenu_GetMode(&u32Mode);
  1224. if(value == TV_IDS_String_On)
  1225. {
  1226. if ((TV_IDS_String_3DMODE_TAB3D == u32Mode) && (!MID_DISP_DTVIsSupport3D(INPUT_3D_TOP_AND_BOTTOM)) &&
  1227. ((APP_SOURCE_MEDIA == eSourceType) || (APP_SOURCE_MEDIA1 == eSourceType) || (APP_SOURCE_DTV == eSourceType)))
  1228. {
  1229. APP_GUIOBJ_3DMenu_SetMode(TV_IDS_String_3DMODE_OFF);
  1230. }
  1231. else
  1232. //set 3D mode to Off
  1233. {
  1234. APP_GUIOBJ_3DMenu_SetModeNoOutPutStructure(u32Mode);
  1235. _APP_GUIOBJ_3DMenu_SetForce2DAnother(TV_IDS_String_On);
  1236. }
  1237. }
  1238. else
  1239. {
  1240. if ((TV_IDS_String_3DMODE_TAB3D == u32Mode) && (!MID_DISP_DTVIsSupport3D(INPUT_3D_TOP_AND_BOTTOM)) &&
  1241. ((APP_SOURCE_MEDIA == eSourceType) || (APP_SOURCE_MEDIA1 == eSourceType) || (APP_SOURCE_DTV == eSourceType)))
  1242. {
  1243. APP_GUIOBJ_3DMenu_SetMode(TV_IDS_String_3DMODE_OFF);
  1244. }
  1245. else
  1246. {
  1247. APP_GUIOBJ_3DMenu_SetMode(u32Mode);
  1248. }
  1249. }
  1250. }
  1251. else if(DISP_3D_STATUS_ONLY_2D3D_ALWAYS_ON == e3DModeChangeSt)
  1252. {
  1253. APP_GUIOBJ_3DMenu_GetMode(&u32Mode);
  1254. if(value == TV_IDS_String_On)
  1255. {
  1256. if(u32Mode == TV_IDS_String_3DMODE_2D23D)
  1257. {
  1258. APP_GUIOBJ_3DMenu_SetModeNoOutPutStructure(u32Mode);
  1259. _APP_GUIOBJ_3DMenu_SetForce2DAnother(TV_IDS_String_On);
  1260. }
  1261. else
  1262. {
  1263. if(bSet3DMode == DTV_TRUE)
  1264. {
  1265. bSet3DMode = DTV_FALSE;
  1266. }
  1267. else
  1268. {
  1269. APP_GUIOBJ_3DMenu_SetMode(TV_IDS_String_3DMODE_OFF);
  1270. }
  1271. }
  1272. //_APP_GUIOBJ_3DMenu_SetForce2DAnother(TV_IDS_String_On);
  1273. }
  1274. else if(u32Mode == TV_IDS_String_3DMODE_2D23D)//Force 2D is off
  1275. {
  1276. APP_GUIOBJ_3DMenu_SetMode(TV_IDS_String_3DMODE_2D23D);
  1277. }
  1278. else //if(u32Mode == TV_IDS_String_3DMODE_2D23D)
  1279. {
  1280. if(bSet3DMode == DTV_TRUE)
  1281. {
  1282. bSet3DMode = DTV_FALSE;
  1283. }
  1284. else
  1285. {
  1286. APP_GUIOBJ_3DMenu_SetMode(TV_IDS_String_3DMODE_OFF);
  1287. }
  1288. }
  1289. }
  1290. //}
  1291. }
  1292. }
  1293. else
  1294. {
  1295. MID_DISP_DTVSetInput3DStructure(INPUT_3D_None);
  1296. }
  1297. #endif
  1298. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER, FILE_GLOBAL_EVENT_MEDIA_AUDIO_UNMUTE, 0);
  1299. }
  1300. break;
  1301. case UI_EVENT_PIP_MENU:
  1302. case UI_EVENT_MENU:
  1303. if (APP_MenuMgr_Exist_Main_Menu())
  1304. {
  1305. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_POPMSG_MAINMENU))
  1306. {
  1307. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_POPMSG_MAINMENU);
  1308. }
  1309. APP_MenuMgr_Exit_Main_Menu();
  1310. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  1311. #ifdef SUPPORT_RESOURCE_PROTECT
  1312. if(dParam)
  1313. {
  1314. MM_PopMsg_Show(FILE_POP_RESOURCE_NOT_ENOUGH);
  1315. }
  1316. #endif
  1317. }
  1318. else if (APP_MenuMgr_Exist_Factory_Menu())
  1319. {
  1320. APP_MenuMgr_Exit_Factory_Menu();
  1321. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  1322. }
  1323. #ifdef SUPPORT_FACTORY_AUTO_TEST_MODE2
  1324. else if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FAC_AUTOTEST))
  1325. {
  1326. SysApp_MM_DestroyAppointedGUI();
  1327. extern void APP_GUIOBJ_Fac_AutoTest_SetAutoTestFlag(al_bool MenuOpen);
  1328. APP_GUIOBJ_Fac_AutoTest_SetAutoTestFlag(al_true);
  1329. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL, 0);
  1330. if(MM_HomePage_GetFileType()==VIDEO_FILETYPE)
  1331. {
  1332. Cmd_VipAdjust(VIP_VDI_BYPASS,1);
  1333. }
  1334. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER,APP_GUIOBJ_MAINMENU, FIRST_ENTER_MAINMENU);
  1335. APP_GUIOBJ_Fac_AutoTest_SetAutoTestFlag(al_false);
  1336. }
  1337. #endif
  1338. else
  1339. {
  1340. SysApp_MM_DestroyAppointedGUI();
  1341. if(g_bOpenHomeMenuAfterCloseFM == TRUE)
  1342. {
  1343. g_bOpenHomeMenuAfterCloseFM = FALSE;
  1344. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE))
  1345. {
  1346. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE, 0);
  1347. }
  1348. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  1349. {
  1350. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  1351. }
  1352. }
  1353. if(MM_HomePage_GetFileType()==VIDEO_FILETYPE)
  1354. {
  1355. Cmd_VipAdjust(VIP_VDI_BYPASS,1);
  1356. }
  1357. #ifdef CONFIG_BANDWIDTH_LIMIT_WHEN_MENU_OPEN
  1358. //if(MM_HomePage_GetFileType()==VIDEO_FILETYPE)
  1359. {
  1360. Cmd_VipAdjust(VIP_MENU_IS_OPEN,1);
  1361. }
  1362. #endif
  1363. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL, 0);
  1364. #ifdef CONFIG_BT_RDA5856
  1365. if(UI_EVENT_PIP_MENU == dMessage)
  1366. {
  1367. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER,
  1368. APP_GUIOBJ_BT_SETTING, BT_FROM_OPTION);
  1369. }
  1370. else
  1371. #endif
  1372. {
  1373. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER,
  1374. APP_GUIOBJ_MAINMENU, FIRST_ENTER_MAINMENU);
  1375. }
  1376. }
  1377. break;
  1378. case UI_EVENT_SOURCE:
  1379. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOURCE))
  1380. {
  1381. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOURCE);
  1382. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  1383. }
  1384. else if(APP_MenuMgr_Exist_Factory_Menu())
  1385. {
  1386. APP_MenuMgr_Exit_Factory_Menu();
  1387. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  1388. }
  1389. #ifdef SUPPORT_FACTORY_AUTO_TEST_MODE2
  1390. else if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FAC_AUTOTEST))
  1391. {
  1392. SysApp_MM_DestroyAppointedGUI();
  1393. extern void APP_GUIOBJ_Fac_AutoTest_SetAutoTestFlag(al_bool MenuOpen);
  1394. APP_GUIOBJ_Fac_AutoTest_SetAutoTestFlag(al_true);
  1395. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL, 0);
  1396. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOURCE, 0);
  1397. APP_GUIOBJ_Fac_AutoTest_SetAutoTestFlag(al_false);
  1398. }
  1399. #endif
  1400. else
  1401. {
  1402. SysApp_MM_DestroyAppointedGUI();
  1403. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL, 0);
  1404. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOURCE, 0);
  1405. }
  1406. break;
  1407. #ifdef CELLO_REMOTE_KEY
  1408. case UI_EVENT_SATELLITE:
  1409. APP_GUIOBJ_Channel_SetRFType(FRONTEND_CONNECT_TYPE_DVB_S, AL_DB_INVALIDHDL);
  1410. break;
  1411. case UI_EVENT_CABLE:
  1412. APP_GUIOBJ_Channel_SetRFType(FRONTEND_CONNECT_TYPE_DVB_C, AL_DB_INVALIDHDL);
  1413. break;
  1414. case UI_EVENT_HDMI:
  1415. APP_GUIOBJ_Source_SetAppSource(APP_SOURCE_HDMI);
  1416. break;
  1417. case UI_EVENT_DTV:
  1418. APP_GUIOBJ_Source_SetAppSource(APP_SOURCE_DTV);
  1419. break;
  1420. case UI_EVENT_ATV:
  1421. APP_GUIOBJ_Source_SetAppSource(APP_SOURCE_ATV);
  1422. break;
  1423. case UI_EVENT_DVD:
  1424. APP_GUIOBJ_Source_SetAppSource(APP_SOURCE_DVD);
  1425. break;
  1426. #endif
  1427. case UI_EVENT_ATVDTV:
  1428. #ifdef CONFIG_DTV_SUPPORT
  1429. APP_GUIOBJ_Source_SetAppSource(APP_SOURCE_DTV);
  1430. #endif
  1431. break;
  1432. #ifdef SUPPORT_SOURCE_DVBTCS
  1433. case UI_EVENT_DVBC:// For DVB-C shortcut key
  1434. case UI_EVENT_RED:
  1435. #ifdef CONFIG_DVB_SYSTEM_DVBC_SUPPORT
  1436. APP_GUIOBJ_Source_SetAppSource(APP_SOURCE_DTV);
  1437. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_CHANNEL, 0,
  1438. sizeof(APP_SETTING_Channel_t), &(g_stChannelData));
  1439. RFtype = g_stChannelData.TV_Connection;
  1440. if(RFtype != APP_RF_TYPE_DVB_C)
  1441. {
  1442. APP_GUIOBJ_Source_GetCurrSource(&eSourType);
  1443. if((eSourType == APP_SOURCE_DTV)||((eSourType == APP_SOURCE_RADIO)))
  1444. {
  1445. StringId = APP_GUIOBJ_Channel_GetStringIDByRFType(APP_RF_TYPE_DVB_C);
  1446. APP_GUIOBJ_Channel_SetRFTypeByStringID(StringId);
  1447. }
  1448. }
  1449. #endif
  1450. break;
  1451. case UI_EVENT_DVBS:// For DVB-C shortcut key
  1452. case UI_EVENT_GREEN:
  1453. #ifdef CONFIG_DVB_SYSTEM_DVBS_SUPPORT
  1454. APP_GUIOBJ_Source_SetAppSource(APP_SOURCE_DTV);
  1455. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_CHANNEL, 0,
  1456. sizeof(APP_SETTING_Channel_t), &(g_stChannelData));
  1457. RFtype = g_stChannelData.TV_Connection;
  1458. if(RFtype != APP_RF_TYPE_DVB_S)
  1459. {
  1460. APP_GUIOBJ_Source_GetCurrSource(&eSourType);
  1461. if((eSourType == APP_SOURCE_DTV)||((eSourType == APP_SOURCE_RADIO)))
  1462. {
  1463. StringId = APP_GUIOBJ_Channel_GetStringIDByRFType(APP_RF_TYPE_DVB_S);
  1464. APP_GUIOBJ_Channel_SetRFTypeByStringID(StringId);
  1465. }
  1466. }
  1467. #endif
  1468. break;
  1469. #endif
  1470. #ifdef CONFIG_SUPPORT_HOTKEY_SOURCE_LOCK
  1471. case UI_EVENT_FAC_SOURCE_LOCK:
  1472. g_fmSourceLock_flag = TRUE;
  1473. SourceLock_Set_Hotkey_Flag(g_fmSourceLock_flag);
  1474. if (APP_MenuMgr_Exist_Factory_Menu())
  1475. {
  1476. APP_MenuMgr_Exit_Factory_Menu();
  1477. }
  1478. else
  1479. {
  1480. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MAINMENU))
  1481. {
  1482. g_bOpenHomeMenuAfterCloseFM = TRUE;
  1483. SysApp_MM_DestroyAppointedGUI();
  1484. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FM_SOURCELOCK, ENTER_HOTELSET_NOTFROM_FACTORYMENU);
  1485. }
  1486. }
  1487. break;
  1488. #endif
  1489. case UI_EVENT_OPEN_FACTORY:
  1490. if (APP_MenuMgr_Exist_Factory_Menu())
  1491. {
  1492. APP_MenuMgr_Exit_Factory_Menu();
  1493. if(g_bOpenHomeMenuAfterCloseFM == TRUE)
  1494. {
  1495. g_bOpenHomeMenuAfterCloseFM = FALSE;
  1496. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE))
  1497. {
  1498. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE, 0);
  1499. }
  1500. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  1501. {
  1502. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  1503. }
  1504. }
  1505. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  1506. }
  1507. else
  1508. {
  1509. SysApp_MM_DestroyAppointedGUI();
  1510. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL, 0);
  1511. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FM_FACTORYSETTING, 0);
  1512. }
  1513. break;
  1514. case UI_EVENT_FACTORY:
  1515. if (APP_MenuMgr_Exist_Factory_Menu())
  1516. {
  1517. APP_MenuMgr_Exit_Factory_Menu();
  1518. if(g_bOpenHomeMenuAfterCloseFM == TRUE)
  1519. {
  1520. g_bOpenHomeMenuAfterCloseFM = FALSE;
  1521. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE))
  1522. {
  1523. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE, 0);
  1524. }
  1525. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  1526. {
  1527. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  1528. }
  1529. }
  1530. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  1531. }
  1532. else
  1533. {
  1534. #if 0
  1535. #ifdef SUPPORT_HKC_FACTORY_REMOTE
  1536. if ((SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOURCE))||((dParam == UI_EVENT_HKC_FACTORYMENU)&&(g_stFactoryUserData.n_FactSet_FactoryRemote == 1)))
  1537. #else
  1538. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOURCE))
  1539. #endif
  1540. #else
  1541. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MAINMENU))
  1542. #endif
  1543. {
  1544. SysApp_MM_DestroyAppointedGUI();
  1545. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL, 0);
  1546. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FM_FACTORYSETTING, 0);
  1547. }
  1548. }
  1549. break;
  1550. case UI_EVENT_FAC_HOTEL:
  1551. if (APP_MenuMgr_Exist_Factory_Menu())
  1552. {
  1553. APP_MenuMgr_Exit_Factory_Menu();
  1554. if(g_bOpenHomeMenuAfterCloseFM == TRUE)
  1555. {
  1556. g_bOpenHomeMenuAfterCloseFM = FALSE;
  1557. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE))
  1558. {
  1559. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE, 0);
  1560. }
  1561. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  1562. {
  1563. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  1564. }
  1565. }
  1566. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  1567. }
  1568. else
  1569. {
  1570. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MAINMENU))
  1571. {
  1572. SysApp_MM_DestroyAppointedGUI();
  1573. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL, 0);
  1574. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FM_HOTELSETTING, ENTER_HOTELSET_NOTFROM_FACTORYMENU);
  1575. }
  1576. }
  1577. break;
  1578. case UI_EVENT_FAC_BURNINGMODE:
  1579. {
  1580. SysApp_MM_DestroyAppointedGUI();
  1581. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL, 0);
  1582. MID_TVFE_SetAutoPowerOn(AC_AUTO_POWERON_ON);
  1583. APP_Factory_SetBurnIn_LEDTwinkle(TRUE);
  1584. }
  1585. break;
  1586. #ifdef SUPPORT_HKC_FACTORY_REMOTE
  1587. case UI_EVENT_HKC_ENTER_BURNINGMODE:
  1588. if(g_stFactoryUserData.n_FactSet_FactoryRemote == 1)
  1589. {
  1590. SysApp_MM_DestroyAppointedGUI();
  1591. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL, 0);
  1592. g_stFactoryUserData.n_FactSet_BurningMode = 1;
  1593. AL_Setting_Write(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER, 0,
  1594. sizeof(APP_SETTING_FactoryUser_t), &(g_stFactoryUserData));
  1595. AL_Setting_Store(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER, 0,
  1596. sizeof(g_stFactoryUserData));
  1597. MID_TVFE_SetBurnIn(1, 0, 1);
  1598. //APP_Cul_Fm_CheckAndStartBurningMode();
  1599. }
  1600. break;
  1601. #endif
  1602. #ifdef CONFIG_SUPPORT_USB_UPGRADE
  1603. case UI_EVENT_CHECK_UPGRADE:
  1604. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOFTWARE_UPGRADE))
  1605. {
  1606. file_printf("upgrade is running!");
  1607. break;
  1608. }
  1609. else
  1610. {
  1611. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOURCE))
  1612. {
  1613. SysApp_MM_DestroyAppointedGUI();
  1614. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL, 0);
  1615. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOFTWARE_UPGRADE, SOFTWARE_UPGRADE_FROM_PASSWORD);
  1616. }
  1617. }
  1618. break;
  1619. #endif
  1620. #ifdef CONFIG_SUPPORT_USB_UPGRADE
  1621. case FILE_GLOBAL_EVENT_MEDIA_EXIT_UPGRADE:
  1622. SysApp_MM_DestroyAppointedGUI();
  1623. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  1624. {
  1625. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  1626. }
  1627. break;
  1628. #endif
  1629. #ifdef CONFIG_SUPPORT_USB_UPGRADE
  1630. case APP_GLOBAL_EVENT_USB_UPGRADE:
  1631. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOFTWARE_UPGRADE))
  1632. {
  1633. file_printf("upgrade is running!");
  1634. break;
  1635. }
  1636. else
  1637. {
  1638. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FM_FACTORYSETTING))
  1639. {
  1640. SysApp_MM_DestroyAppointedGUI();
  1641. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL, 0);
  1642. //SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOFTWARE_UPGRADE, SOFTWARE_UPGRADE_FROM_FM);
  1643. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_FILE_PLAYER, APP_GLOBAL_EVENT_ERASE_WHOLE_FLASH|PASS_TO_SYSAPP, 0);
  1644. }
  1645. }
  1646. break;
  1647. #endif
  1648. #ifdef CONFIG_SUPPORT_NET_OTA
  1649. case APP_GLOBAL_EVENT_OTA_UPGRADE:
  1650. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOFTWARE_UPGRADE))
  1651. {
  1652. file_printf("upgrade is running!");
  1653. break;
  1654. }
  1655. else
  1656. {
  1657. SysApp_MM_DestroyAppointedGUI();
  1658. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL, 0);
  1659. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_FILE_PLAYER, APP_GLOBAL_EVENT_ERASE_WHOLE_FLASH_OTA|PASS_TO_SYSAPP, 0);
  1660. }
  1661. break;
  1662. #endif
  1663. #ifdef CONFIG_SUPPORT_3D_EN
  1664. case APP_GLOBAL_EVENT_3D_TIMER_INFO:
  1665. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MOVIE_PLAYBACK))
  1666. {
  1667. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MOVIE_PLAYBACK,
  1668. APP_GLOBAL_EVENT_3D_TIMER_INFO, 0);
  1669. }
  1670. break;
  1671. #endif
  1672. case FILE_GLOBAL_EVENT_MEDIA_EXIT_BURNINMODE:
  1673. SysApp_MM_DestroyAppointedGUI();
  1674. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  1675. {
  1676. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  1677. }
  1678. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  1679. {
  1680. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  1681. }
  1682. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO, 0,
  1683. sizeof(APP_SETTING_UserInfo_t), &(g_stUserInfoData));
  1684. APP_Audio_SetMute(g_stUserInfoData.Mute, TRUE, APP_MUTE_MODE_SIGNAL_DETECT, APP_SOURCE_MEDIA);
  1685. if (g_stUserInfoData.Mute)
  1686. {
  1687. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE,
  1688. APP_INTRA_EVENT_SHOW_MUTE, SHOW_MUTE_ON_FS);
  1689. }
  1690. else
  1691. {
  1692. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE,
  1693. APP_INTRA_EVENT_HIDE_MUTE, 0);
  1694. }
  1695. SysApp_MM_BurninMode_Resume_MediaPlay();
  1696. break;
  1697. case UI_EVENT_EXIT:
  1698. case UI_EVENT_RETURN:
  1699. SysApp_MM_DestroyAppointedGUI();
  1700. if(g_bOpenHomeMenuAfterCloseFM == TRUE)
  1701. {
  1702. g_bOpenHomeMenuAfterCloseFM = FALSE;
  1703. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE))
  1704. {
  1705. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE, 0);
  1706. }
  1707. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  1708. {
  1709. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  1710. }
  1711. }
  1712. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  1713. {
  1714. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  1715. }
  1716. break;
  1717. case UI_EVENT_MUTE:
  1718. #ifdef SUPPORT_CEC_TV
  1719. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FEATURE, 0,
  1720. sizeof(APP_SETTING_Feature_t), &(g_stFeatureData));
  1721. if (( APP_SWITCH_ON == g_stFeatureData.Enable_HDMILink)
  1722. #ifdef SUPPORT_AMPLIFIER_CONTROL
  1723. &&(APP_SWITCH_ON == g_stFeatureData.AmplifierControl)
  1724. #endif
  1725. &&(APP_HDMILINK_AMPLIFIER == g_stFeatureData.SpeakerPreference)
  1726. && APP_GUIOBJ_Source_GetAmplifierPort() && APP_Check_CEC_DEVICE_Status())
  1727. {
  1728. if (CECTV_GetCECEnable()==CECTV_ENABLE && CECTV_GetHDMISystemAudioMode() && g_u32MuteIconHandle >= MUTE_KEY_INTERVAL)
  1729. {
  1730. APP_Set_CECTV_Mute_Status(EVENT_CECTV_SET_MUTE_STATUS_MUTE);
  1731. g_u32MuteIconHandle = 0;
  1732. break;
  1733. }
  1734. else if(g_u32MuteIconHandle < MUTE_KEY_INTERVAL)//Don't handle mute icon
  1735. {
  1736. break;
  1737. }
  1738. }
  1739. APP_Set_HDMICEC_TV_Mute_Status(!APP_Get_HDMICEC_TV_Mute_Status());
  1740. #endif
  1741. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SLEEP_INFO))
  1742. {
  1743. APP_GUIOBJ_SleepTimer_Reset();
  1744. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SLEEP_INFO);
  1745. }
  1746. APP_GUIOBJ_Mute_MuteKeyHandler();
  1747. break;
  1748. #ifdef SUPPORT_CEC_TV
  1749. case DMN_EVENT_CECTV_SET_MUTE_STATUS:
  1750. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FEATURE, 0,
  1751. sizeof(APP_SETTING_Feature_t), &(g_stFeatureData));
  1752. if (( APP_SWITCH_ON == g_stFeatureData.Enable_HDMILink)
  1753. #ifdef SUPPORT_AMPLIFIER_CONTROL
  1754. &&(APP_SWITCH_ON == g_stFeatureData.AmplifierControl)
  1755. #endif
  1756. &&(APP_HDMILINK_AMPLIFIER == g_stFeatureData.SpeakerPreference) && APP_GUIOBJ_Source_GetAmplifierPort()&& APP_Check_CEC_DEVICE_Status())
  1757. {
  1758. if (CECTV_GetCECEnable()==CECTV_ENABLE)
  1759. {
  1760. if( (dParam & 0x80) != 0) //reopen TV, the amp vol status must sinc.So if amp is mute state, tv need to set mute state.
  1761. {
  1762. APP_Set_CECTV_Mute_Status(EVENT_CECTV_SET_MUTE_STATUS_MUTE);
  1763. }
  1764. APP_Process_CECTV_Mute_Status(dParam);
  1765. }
  1766. }
  1767. break;
  1768. case DMN_EVENT_CECTV_SET_SYSTEMAUDIO_STATUS:
  1769. APP_Process_CECTV_Control_Status_From_Amp(dParam);
  1770. break;
  1771. case DMN_EVENT_CECTV_SET_DEVICE_OSDNAME:
  1772. break;
  1773. case FILE_GLOBAL_EVENT_HDMIPORT_STATUS:
  1774. CECTV_HDMIPortStatus(dParam);
  1775. break;
  1776. #endif
  1777. #if defined(CONFIG_HEADPHONE_DETECT_BY_ISR) || defined(CONFIG_HPDET_BY_SWTIMER)
  1778. case APP_GLOBAL_EVENT_HEADPHONE_PLUG_IN:
  1779. APP_Audio_Set_HPStatus(APP_Audio_Headphone_PlugIn);
  1780. APP_Audio_SetMuteSpeakerWithoutAMP(TRUE);
  1781. APP_Audio_SetMuteAMP(TRUE);
  1782. #ifdef CONFIG_HP_OUT_FROM_SPEAKER_PIN
  1783. APP_Audio_SetMuteDACSpeak(FALSE);
  1784. #else
  1785. APP_Audio_SetMuteDACSpeak(TRUE);
  1786. APP_Audio_SetMuteDACHeadohone(FALSE);
  1787. #endif
  1788. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO, 0,
  1789. sizeof(APP_SETTING_UserInfo_t), &(g_stUserInfoData));
  1790. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FEATURE, 0,
  1791. sizeof(APP_SETTING_Feature_t), &(g_stFeatureData));
  1792. if ((g_stUserInfoData.Mute == FALSE) && (g_stFeatureData.SpeakerPreference == APP_HDMILINK_TVSPEAKER
  1793. || (( APP_SWITCH_ON == g_stFeatureData.Enable_HDMILink)
  1794. &&(APP_HDMILINK_AMPLIFIER == g_stFeatureData.SpeakerPreference)
  1795. &&((!CECTV_GetHDMISystemAudioMode())||(!APP_Check_CEC_DEVICE_Status())|| APP_GUIOBJ_Source_GetAmplifierPort()== 0)
  1796. )))
  1797. APP_Audio_SetMuteSpeakerWithoutAMP(FALSE);
  1798. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_VARIATIONAL, 0,
  1799. sizeof(APP_SETTING_Variational_t), &(g_stVariationalData));
  1800. APP_Audio_SetVolume(g_stVariationalData.Volume);
  1801. break;
  1802. case APP_GLOBAL_EVENT_HEADPHONE_PLUG_OUT:
  1803. APP_Audio_Set_HPStatus(APP_Audio_Headphone_PlugOut);
  1804. APP_Audio_SetMuteDACHeadohone(TRUE);
  1805. APP_Audio_SetMuteSpeakerWithoutAMP(TRUE);
  1806. APP_Audio_SetMuteDACSpeak(FALSE);
  1807. APP_Audio_SetMuteAMP(FALSE);
  1808. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO, 0,
  1809. sizeof(APP_SETTING_UserInfo_t), &(g_stUserInfoData));
  1810. printf("APP_GLOBAL_EVENT_HEADPHONE_PLUG_OUT\n");
  1811. printf("%d%d%d\n",!CECTV_GetHDMISystemAudioMode(),!APP_Check_CEC_DEVICE_Status(), APP_GUIOBJ_Source_GetAmplifierPort());
  1812. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FEATURE, 0,
  1813. sizeof(APP_SETTING_Feature_t), &(g_stFeatureData));
  1814. if ((g_stUserInfoData.Mute == FALSE) && (g_stFeatureData.SpeakerPreference == APP_HDMILINK_TVSPEAKER
  1815. || (( APP_SWITCH_ON == g_stFeatureData.Enable_HDMILink)
  1816. &&(APP_HDMILINK_AMPLIFIER == g_stFeatureData.SpeakerPreference)
  1817. &&((!CECTV_GetHDMISystemAudioMode())||(!APP_Check_CEC_DEVICE_Status())|| APP_GUIOBJ_Source_GetAmplifierPort()== 0)
  1818. )))
  1819. {
  1820. APP_Audio_SetMuteSpeakerWithoutAMP(FALSE);
  1821. }
  1822. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_VARIATIONAL, 0,
  1823. sizeof(APP_SETTING_Variational_t), &(g_stVariationalData));
  1824. APP_Audio_SetVolume(g_stVariationalData.Volume);
  1825. break;
  1826. #endif
  1827. case APP_GLOBAL_EVENT_QSD_MEDIA_PLAY:
  1828. {
  1829. #ifdef CONFIG_SUPPORT_PANNEL_PHOTO_TEST
  1830. if (dParam == PANNELPHOTO_CREATEQSDGUI)
  1831. {
  1832. if (Mid_PannelPhoto_IsPhotoPlayAnable() == TRUE)
  1833. {
  1834. MM_MediaQsd_GoToTestingMode();
  1835. }
  1836. break;
  1837. }
  1838. else if (dParam == PANNELPHOTO_DESTORYQSDGUI)
  1839. {
  1840. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_QSD_TEST))
  1841. {
  1842. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_QSD_TEST);
  1843. }
  1844. break;
  1845. }
  1846. else /*PANNELPHOTO_REOPENHOMEPAGEGUI*/
  1847. {
  1848. Mid_PannelPhoto_ResetCmd();
  1849. if (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  1850. {
  1851. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  1852. }
  1853. break;
  1854. }
  1855. #endif
  1856. #ifdef CONFIG_QSD
  1857. void MM_MediaQsd_SetTestFlag(BOOLEAN bFlag, UINT32 dParam);
  1858. MM_MediaQsd_SetTestFlag(TRUE, dParam);
  1859. MM_MediaQsd_GoToTestingMode();
  1860. #endif
  1861. }
  1862. break;
  1863. case APP_GLOBAL_EVENT_QSD_SET_SOURCE:
  1864. #ifdef CONFIG_QSD
  1865. APP_GUIOBJ_Source_SetAppSource(dParam);
  1866. #endif
  1867. break;
  1868. case UI_EVENT_VOL_DN:
  1869. case UI_EVENT_VOL_UP:
  1870. #ifdef SUPPORT_CEC_TV
  1871. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FEATURE, 0,
  1872. sizeof(APP_SETTING_Feature_t), &(g_stFeatureData));
  1873. if (( APP_SWITCH_ON == g_stFeatureData.Enable_HDMILink)
  1874. #ifdef SUPPORT_AMPLIFIER_CONTROL
  1875. &&(APP_SWITCH_ON == g_stFeatureData.AmplifierControl)
  1876. #endif
  1877. && (APP_HDMILINK_AMPLIFIER == g_stFeatureData.SpeakerPreference)
  1878. && (APP_GUIOBJ_Source_GetAmplifierPort() != 0) && APP_Check_CEC_DEVICE_Status())
  1879. {
  1880. if (CECTV_GetCECEnable()==CECTV_ENABLE)
  1881. {
  1882. if(dMessage == UI_EVENT_VOL_UP)
  1883. {
  1884. APP_Set_CECTV_Mute_Status(EVENT_CECTV_SET_MUTE_STATUS_VOLUME_UP);
  1885. }
  1886. else if(dMessage == UI_EVENT_VOL_DN)
  1887. {
  1888. APP_Set_CECTV_Mute_Status(EVENT_CECTV_SET_MUTE_STATUS_VOLUME_DOWN);
  1889. }
  1890. SysApp_MM_VolumeKeyHandler(dMessage,TRUE);
  1891. break;
  1892. }
  1893. }
  1894. #endif
  1895. SysApp_MM_VolumeKeyHandler(dMessage,FALSE);
  1896. break;
  1897. case UI_EVENT_SND_MOD:
  1898. #ifdef CELLO_REMOTE_KEY
  1899. case UI_EVENT_SOUND_MTS:
  1900. #endif
  1901. #ifdef SUPPORT_SMODE_UNMUTE
  1902. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO, 0,
  1903. sizeof(APP_SETTING_UserInfo_t), &(g_stUserInfoData));
  1904. if(g_stUserInfoData.Mute)
  1905. {
  1906. if (CECTV_GetHDMISystemAudioMode()&& APP_Check_CEC_DEVICE_Status())
  1907. {
  1908. cec_RemoteControlPassThrough(CECTV_KEY_MUTE);
  1909. cec_RemoteControlPassThrough(CECTV_KEY_MUTE_RELEASE);
  1910. }
  1911. }
  1912. _APP_GUIOBJ_Sound_SetMuteStatus();
  1913. #endif
  1914. case UI_EVENT_SLEEP:
  1915. case UI_EVENT_PIC_MOD:
  1916. case UI_EVENT_ASPECT:
  1917. if((!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MOVIE_PLAYBACK))
  1918. && (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_PHOTO_PLAYBACK))
  1919. && (dMessage == UI_EVENT_PIC_MOD))
  1920. {
  1921. break;
  1922. }
  1923. if((!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MOVIE_PLAYBACK))
  1924. && (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_PHOTO_PLAYBACK))
  1925. && (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MUSIC_PLAYBACK))
  1926. && (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_EBOOK_PLAYBACK))
  1927. && (dMessage == UI_EVENT_SND_MOD))
  1928. {
  1929. break;
  1930. }
  1931. #ifdef CONFIG_MEDIA_ENABLE
  1932. if((!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MOVIE_PLAYBACK)
  1933. && !SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_PHOTO_PLAYBACK))
  1934. && (dMessage == UI_EVENT_ASPECT))
  1935. {
  1936. break;
  1937. }
  1938. #endif
  1939. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_BANNER))
  1940. {
  1941. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_BANNER);
  1942. }
  1943. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_ADJUST))
  1944. {
  1945. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_ADJUST);
  1946. }
  1947. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_AMPLIFIERVOLUME))
  1948. {
  1949. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_AMPLIFIERVOLUME);
  1950. }
  1951. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER,
  1952. APP_GUIOBJ_BANNER, dMessage);
  1953. break;
  1954. case APP_GLOBAL_EVENT_SLEEP_TIMER_INFO:
  1955. MM_PhotoPlayback_DestroySubGUI();
  1956. MM_MoviePlayback_DestroySubGUI();
  1957. //MM_PVRPlayback_CloseSubGui();
  1958. MM_EBook_CloseBookListMenu();
  1959. MM_Music_DestroySubGUI();
  1960. SysApp_MM_DestroyAppointedGUI();
  1961. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MUSIC_PLAYBACK, UI_EVENT_0, 0);
  1962. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL, 0);
  1963. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SLEEP_INFO, dParam);
  1964. break;
  1965. #ifdef CONFIG_HDMI_SUPPORT_MHL
  1966. case DMN_EVENT_MHL_CHANGE_SOURCE:
  1967. file_printf("[FileApp OnGlobalEvent] DMN_EVENT_MHL_CHANGE_SOURCE.\n");
  1968. /* Check invalid state +++*/
  1969. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER, 0,
  1970. sizeof(APP_SETTING_FactoryUser_t), &(g_stFactoryUserData));
  1971. if (g_stFactoryUserData.n_FactSet_BurningMode == al_true)
  1972. {
  1973. break;
  1974. }
  1975. /* Check Valid state ---*/
  1976. APP_Source_Type_t eMhlSrc;
  1977. UINT8 IsMHLSoure;
  1978. APP_GOBJ_Source_CheckAndGetMHLSource(&IsMHLSoure,&eMhlSrc);
  1979. if(FALSE == IsMHLSoure)
  1980. {
  1981. if (SP_SUCCESS != APP_GUIOBJ_Source_SetAppSource(eMhlSrc))
  1982. {
  1983. file_printf("[FileApp OnGlobalEvent] APP_GUIOBJ_Source_SetAppSource faild.\n");
  1984. }
  1985. }
  1986. break;
  1987. #endif
  1988. #ifdef SUPPORT_CEC_TV
  1989. case DMN_EVENT_CECTV_CHANGE_SOURCE:
  1990. file_printf("[FileApp OnGlobalEvent] DMN_EVENT_CECTV_CHANGE_SOURCE.\n");
  1991. /* Check invalid state +++*/
  1992. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER, 0,
  1993. sizeof(APP_SETTING_FactoryUser_t), &(g_stFactoryUserData));
  1994. if (g_stFactoryUserData.n_FactSet_BurningMode == al_true)
  1995. {
  1996. break;
  1997. }
  1998. SysApp_MM_DestroyAppointedGUI();
  1999. APP_Source_Type_t eSrc;
  2000. APP_Video_GetCECPortMapping(dParam, &eSrc);
  2001. /* Check invalid state ---*/
  2002. if (SP_SUCCESS != APP_GUIOBJ_Source_SetAppSource(eSrc))
  2003. {
  2004. file_printf("[FileApp OnGlobalEvent] APP_GUIOBJ_Source_SetAppSource faild.\n");
  2005. }
  2006. break;
  2007. break;
  2008. case DMN_EVENT_CECTV_STANDBY:
  2009. MAINAPP_SendGlobalEvent(UI_EVENT_POWER, 0);
  2010. break;
  2011. #endif
  2012. case DMN_EVENT_AUTODVD_CHANGE_SOURCE:
  2013. /* Check invalid state +++*/
  2014. #if 1
  2015. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER, 0,
  2016. sizeof(APP_SETTING_FactoryUser_t), &(g_stFactoryUserData));
  2017. if (g_stFactoryUserData.n_FactSet_BurningMode == al_true)
  2018. {
  2019. break;
  2020. }
  2021. #endif
  2022. /* Check invalid state ---*/
  2023. if (SP_SUCCESS != APP_GUIOBJ_Source_SetAppSource(dParam))
  2024. {
  2025. file_printf("[FileApp OnGlobalEvent] APP_GUIOBJ_Source_SetAppSource faild.\n");
  2026. }
  2027. break;
  2028. case DMN_EVENT_AUTOSCART_CHANGE_SOURCE:
  2029. /* Check invalid state +++*/
  2030. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER, 0,
  2031. sizeof(APP_SETTING_FactoryUser_t), &(g_stFactoryUserData));
  2032. if (g_stFactoryUserData.n_FactSet_BurningMode == al_true)
  2033. {
  2034. break;
  2035. }
  2036. /* Check invalid state ---*/
  2037. if (SP_SUCCESS != APP_GUIOBJ_Source_SetAppSource(dParam))
  2038. {
  2039. file_printf("[FileApp OnGlobalEvent] APP_GUIOBJ_Source_SetAppSource faild.\n");
  2040. }
  2041. else
  2042. {
  2043. #ifdef CONFIG_DVB_SYSTEM
  2044. if (dParam == APP_SOURCE_SCART)
  2045. {
  2046. APP_SCARTIN_SetAutoPlugInStatus(1);
  2047. APP_SCARTIN_SetPlugStatus(1);
  2048. }
  2049. #endif
  2050. }
  2051. break;
  2052. case FILE_GLOBAL_EVENT_OBJECT_CLOSE:
  2053. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  2054. {
  2055. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  2056. }
  2057. if(g_bOpenHomeMenuAfterCloseFM == TRUE)
  2058. {
  2059. g_bOpenHomeMenuAfterCloseFM = FALSE;
  2060. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE))
  2061. {
  2062. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE, 0);
  2063. }
  2064. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  2065. {
  2066. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  2067. }
  2068. }
  2069. break;
  2070. case FILE_INTRA_EVENT_POPMSG_YES:
  2071. #ifdef CONFIG_SUPPORT_PVR
  2072. if (dParam == FILE_POP_PVR_REMINDER)
  2073. {
  2074. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2075. (APP_GLOBAL_EVENT_PVRREC_CHANGESOURCE | PASS_TO_SYSAPP), 0);
  2076. }
  2077. if (dParam == FILE_POP_PVR_REMINDER_EXIT_CONFIRM)
  2078. {
  2079. APP_WAKEUP_Recorder_ResetTimeout();
  2080. SysApp_MM_PVRRec_SetTimerCancle();
  2081. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  2082. {
  2083. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  2084. }
  2085. }
  2086. if (dParam == FILE_POP_PVR_INVALID_USB_CONFIRM)
  2087. {
  2088. MAINAPP_SendGlobalEvent(UI_EVENT_POWER, 0);
  2089. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  2090. {
  2091. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  2092. }
  2093. }
  2094. if (dParam == FILE_POP_PVR_INSERT_USB_CONFIRM)
  2095. {
  2096. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  2097. {
  2098. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  2099. }
  2100. }
  2101. #endif
  2102. if (FILE_POP_FLIP == dParam)
  2103. {
  2104. g_stFactoryUserData.Function.PanelSetting.n_FlipIndex = Factory_GetFlipIndex();
  2105. AL_Setting_Write(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER,
  2106. ITEM_OFFSET(APP_SETTING_FactoryUser_t, Function.PanelSetting.n_FlipIndex), sizeof(g_stFactoryUserData.Function.PanelSetting.n_FlipIndex),
  2107. &(g_stFactoryUserData.Function.PanelSetting.n_FlipIndex));
  2108. AL_Setting_Store(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER,
  2109. ITEM_OFFSET(APP_SETTING_FactoryUser_t, Function.PanelSetting.n_FlipIndex), sizeof(g_stFactoryUserData.Function.PanelSetting.n_FlipIndex));
  2110. MID_TVFE_SetPanelInverse((BOOL)(g_stFactoryUserData.Function.PanelSetting.n_FlipIndex));
  2111. //MID_DISP_DTVSetFlip((MID_DISP_FlipType_t)(g_stFactoryUserData.Function.PanelSetting.n_FlipIndex) ); // added for VIP test
  2112. GL_TaskSleep(2000);
  2113. APP_Sysset_Reset_System();
  2114. //MID_GPIO_SetGPIOOffLevel(GPIO_BL_ON_PIN);
  2115. //APP_Panel_SetBacklightEnOnOff(FALSE);
  2116. //MID_GPIO_SetGPIOOffLevel(GPIO_PANEL_ON_PIN);
  2117. //system_reset();
  2118. }
  2119. #ifdef CONFIG_SUPPORT_USB_UPGRADE
  2120. if (FILE_POP_ERASE_WHOLE_FLASH == dParam)
  2121. {
  2122. if (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOFTWARE_UPGRADE))
  2123. {
  2124. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOFTWARE_UPGRADE, SOFTWARE_UPGRADE_FROM_FM);
  2125. }
  2126. }
  2127. #endif
  2128. #ifdef CONFIG_SUPPORT_NET_OTA
  2129. if (FILE_POP_ERASE_WHOLE_FLASH_OTA == dParam)
  2130. {
  2131. if (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOFTWARE_UPGRADE))
  2132. {
  2133. MM_PopMsg_Show(FILE_POP_FTP_FILE_DOWNLOAD_WAITING);
  2134. if(NET_OTA_DownloadUpdate() == NET_OTA_OK)
  2135. {
  2136. MM_PopMsg_Close(FILE_POP_FTP_FILE_DOWNLOAD_WAITING,UI_EVENT_NULL);
  2137. #if defined(CONFIG_SUPPORT_NET_OTA_FROM_USB)
  2138. APP_SetUpdateSource(UPGRADE_NETWORK_FROM_USB);
  2139. #elif defined(CONFIG_SUPPORT_NET_OTA_FROM_MEM)
  2140. APP_SetUpdateSource(UPGRADE_NETWORK_FROM_MEM);
  2141. #else
  2142. #error No storage for NET OTA is selected.
  2143. #endif
  2144. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOFTWARE_UPGRADE, SOFTWARE_UPGRADE_FROM_NET_OTA);
  2145. return GUI_OBJECT_POST_EVENT;
  2146. }
  2147. MM_PopMsg_Close(FILE_POP_FTP_FILE_DOWNLOAD_WAITING,UI_EVENT_NULL);
  2148. }
  2149. }
  2150. #endif
  2151. break;
  2152. case FILE_INTRA_EVENT_POPMSG_NO:
  2153. #ifdef CONFIG_SUPPORT_PVR
  2154. if (dParam == FILE_POP_PVR_REMINDER)
  2155. {
  2156. APP_WAKEUP_Recorder_ResetTimeout();
  2157. SysApp_MM_PVRRec_SetTimerCancle();
  2158. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  2159. {
  2160. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  2161. }
  2162. }
  2163. if (dParam == FILE_POP_PVR_REMINDER_EXIT_CONFIRM)
  2164. {
  2165. al_uint32 CurTimeInSec = 0;
  2166. UINT32 RECStartTime = 0;
  2167. AL_Time_GetCurTimeInSecs(&CurTimeInSec);
  2168. RECStartTime = g_MM_stDetails.start_local_time_secs;
  2169. if (RECStartTime > CurTimeInSec)
  2170. {
  2171. MM_PopMsg_Show(FILE_POP_PVR_REMINDER);
  2172. }
  2173. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  2174. {
  2175. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  2176. }
  2177. }
  2178. if (dParam == FILE_POP_PVR_INSERT_USB_CONFIRM)
  2179. {
  2180. MAINAPP_SendGlobalEvent(UI_EVENT_POWER, 0);
  2181. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  2182. {
  2183. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  2184. }
  2185. }
  2186. if (dParam == FILE_POP_PVR_INVALID_USB_CONFIRM)
  2187. {
  2188. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  2189. {
  2190. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  2191. }
  2192. }
  2193. #endif
  2194. if (dParam == FILE_POP_FLIP)
  2195. {
  2196. MM_PopMsg_Close(FILE_POP_FLIP, UI_EVENT_NULL);
  2197. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2198. (UI_EVENT_FACTORY|PASS_TO_SYSAPP), 1);
  2199. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  2200. {
  2201. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  2202. }
  2203. }
  2204. #ifdef CONFIG_SUPPORT_USB_UPGRADE
  2205. if (FILE_POP_ERASE_WHOLE_FLASH == dParam)
  2206. {
  2207. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  2208. {
  2209. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  2210. }
  2211. //if (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOFTWARE_UPGRADE))
  2212. //{
  2213. //SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SOFTWARE_UPGRADE, SOFTWARE_UPGRADE_FROM_FM);
  2214. //}
  2215. }
  2216. #endif
  2217. #ifdef CONFIG_SUPPORT_NET_OTA
  2218. if (FILE_POP_ERASE_WHOLE_FLASH_OTA == dParam)
  2219. {
  2220. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  2221. {
  2222. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  2223. }
  2224. }
  2225. #endif
  2226. break;
  2227. #ifdef CONFIG_DTV_SUPPORT
  2228. #ifdef CONFIG_SUPPORT_PVR
  2229. case APP_GLOBAL_EVENT_PVRREC_CHANGESOURCE:
  2230. #ifndef CONFIG_MOD_PACK_DTV
  2231. DVBApp_SetPVRSwitchSRC(TRUE);
  2232. #endif
  2233. /*let guiobject focus, so that can release ui resource*/
  2234. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_POPMSG))
  2235. {
  2236. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_POPMSG);
  2237. }
  2238. /*
  2239. if (g_MM_eRecType == AL_RECTYPE_DVBRADIO)
  2240. {
  2241. APP_GUIOBJ_Source_SetAppSource(APP_SOURCE_RADIO);
  2242. }
  2243. else
  2244. */ //uniplatform has not radio source,radio&&dtv share DTV source
  2245. {
  2246. APP_GUIOBJ_Source_SetAppSource(APP_SOURCE_DTV);
  2247. }
  2248. break;
  2249. case APP_GLOBAL_EVENT_PVR_REMINDER:
  2250. {
  2251. AL_Return_t ret;
  2252. #if defined(CONFIG_DVB_SYSTEM) || defined(CONFIG_AUS_DVB_SYSTEM) || defined(CONFIG_DTMB_SYSTEM)
  2253. AL_DB_EDBType_t DBType_ret = AL_DBTYPE_DVB_T;
  2254. #else
  2255. AL_DB_EDBType_t DBType_ret = AL_DBTYPE_DVB_SBTVD;
  2256. #endif
  2257. AL_DB_ERecordType_t RecType = AL_RECTYPE_DVBTV;
  2258. al_uint32 CurTimeInSec = 0;
  2259. AL_Time_GetCurTimeInSecs(&CurTimeInSec);
  2260. g_MM_dReminderId = dParam;
  2261. /* get remider program index */
  2262. memset(&g_MM_stDetails,0,sizeof(AL_PR_details_t));
  2263. ret = AL_PR_GetById(g_MM_dReminderId, &g_MM_stDetails);
  2264. if (ret != AL_SUCCESS)
  2265. {
  2266. file_printf("AL_PR_GetById Error\n");
  2267. }
  2268. APP_WAKEUP_Recorder_SetTimeout();
  2269. #ifdef DEMUX_CONTROL_TEST
  2270. /*Only storage the current REC type for start prompted pop*/
  2271. if (AL_PR_EVT_REM == g_MM_stDetails.rem_type)
  2272. {
  2273. DVBApp_PVRDEMUX_SetTimerRECFLag(TRUE);
  2274. }
  2275. #endif
  2276. /*set reminder popup show time*/
  2277. AL_DB_GetRecordType(g_MM_stDetails.rem_details.handle, &DBType_ret, &RecType);
  2278. if (RecType == AL_RECTYPE_DVBTV)
  2279. {
  2280. g_MM_eRecType = AL_RECTYPE_DVBTV;
  2281. }
  2282. else if (RecType == AL_RECTYPE_DVBRADIO)
  2283. {
  2284. g_MM_eRecType = AL_RECTYPE_DVBRADIO;
  2285. }
  2286. SysApp_MM_DestroyAppointedGUI();
  2287. MM_PopMsg_Show(FILE_POP_PVR_REMINDER);
  2288. }
  2289. break;
  2290. case APP_GLOBAL_EVENT_PVR_REMINDER_CONFIRM:
  2291. MM_PopMsg_Show(FILE_POP_PVR_REMINDER_EXIT_CONFIRM);
  2292. break;
  2293. case APP_GLOBAL_EVENT_PVR_INSERT_USB_POP:
  2294. MM_PopMsg_Show(FILE_POP_PVR_INSERT_USB);
  2295. break;
  2296. case APP_GLOBAL_EVENT_PVR_INVALID_USB_POP:
  2297. MM_PopMsg_Show(FILE_POP_PVR_INVALID_USB);
  2298. break;
  2299. case APP_GLOBAL_EVENT_PVR_INSERT_USB_CONFIRM:
  2300. SysApp_MM_DestroyAppointedGUI();
  2301. MM_PopMsg_Show(FILE_POP_PVR_INSERT_USB_CONFIRM);
  2302. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  2303. {
  2304. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  2305. }
  2306. break;
  2307. case APP_GLOBAL_EVENT_PVR_INVALID_USB_CONFIRM:
  2308. SysApp_MM_DestroyAppointedGUI();
  2309. MM_PopMsg_Show(FILE_POP_PVR_INVALID_USB_CONFIRM);
  2310. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  2311. {
  2312. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  2313. }
  2314. break;
  2315. #endif
  2316. #endif
  2317. case APP_GLOBAL_EVENT_FLIP:
  2318. if (APP_MenuMgr_Exist_Factory_Menu())
  2319. {
  2320. APP_MenuMgr_Exit_Factory_Menu();
  2321. }
  2322. MM_PopMsg_Show(FILE_POP_FLIP);
  2323. break;
  2324. #ifdef CONFIG_SUPPORT_USB_UPGRADE
  2325. case APP_GLOBAL_EVENT_ERASE_WHOLE_FLASH:
  2326. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FM_FACTORYSETTING))
  2327. {
  2328. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FM_FACTORYSETTING);
  2329. }
  2330. MM_PopMsg_Show(FILE_POP_ERASE_WHOLE_FLASH);
  2331. break;
  2332. #endif
  2333. #ifdef CONFIG_SUPPORT_NET_OTA
  2334. case APP_GLOBAL_EVENT_ERASE_WHOLE_FLASH_OTA:
  2335. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FM_FACTORYSETTING))
  2336. {
  2337. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_FM_FACTORYSETTING);
  2338. }
  2339. MM_PopMsg_Show(FILE_POP_ERASE_WHOLE_FLASH_OTA);
  2340. break;
  2341. #endif
  2342. case APP_GLOBAL_EVENT_KEYLOCK:
  2343. MM_PopMsg_Show(FILE_POP_KEYLOCK);
  2344. break;
  2345. #ifdef CONFIG_KEYPAD_SINGLE_REUSE
  2346. case APP_GLOBAL_EVENT_SINGLEKEYPAD_OPEN:
  2347. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SINGLEKEYPAD, 0);
  2348. break;
  2349. case APP_GLOBAL_EVENT_SINGLEKEYPAD_CLOSE:
  2350. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_SINGLEKEYPAD);
  2351. break;
  2352. #endif
  2353. case APP_GLOBAL_EVENT_OVER_MAXVOLUME:
  2354. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_ADJUST))
  2355. {
  2356. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_ADJUST);
  2357. }
  2358. MM_PopMsg_Show(FILE_POP_OVERMAXVOLUME);
  2359. break;
  2360. case UI_EVENT_MultiPanelIndex:
  2361. {
  2362. UINT8 u8PanelIdx = tv_GetPanelIndex();
  2363. u8PanelIdx = (u8PanelIdx + 1) % CONFIG_PANEL_NUM;
  2364. tv_SetPanelIndex(u8PanelIdx);
  2365. g_stFactoryUserData.Function.PanelSetting.n_MultiplePanelIndex = u8PanelIdx;
  2366. AL_Setting_Write(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER,
  2367. ITEM_OFFSET(APP_SETTING_FactoryUser_t, Function.PanelSetting.n_MultiplePanelIndex), sizeof(g_stFactoryUserData.Function.PanelSetting.n_MultiplePanelIndex),
  2368. &(g_stFactoryUserData.Function.PanelSetting.n_MultiplePanelIndex));
  2369. AL_Setting_Store(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER,
  2370. ITEM_OFFSET(APP_SETTING_FactoryUser_t, Function.PanelSetting.n_MultiplePanelIndex), sizeof(g_stFactoryUserData.Function.PanelSetting.n_MultiplePanelIndex));
  2371. printf("[%s], %d: Panel Index is %d\n", __FUNCTION__, __LINE__, u8PanelIdx);
  2372. break;
  2373. }
  2374. #ifdef SUPPORT_FACTORY_AUTO_TEST
  2375. case UI_EVENT_KEYPAD_DOWN:
  2376. case UI_EVENT_KEYPAD_UP:
  2377. case UI_EVENT_KEYPAD_SOURCE:
  2378. case UI_EVENT_KEYPAD_LEFT:
  2379. case UI_EVENT_KEYPAD_RIGHT:
  2380. case UI_EVENT_KEYPAD_POWER:
  2381. case UI_EVENT_KEYPAD_MENU:
  2382. {
  2383. extern int APP_Factory_GetAutoTestOnOff(void);
  2384. if(APP_Factory_GetAutoTestOnOff() == TRUE)
  2385. {
  2386. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER,
  2387. APP_GUIOBJ_BANNER, dMessage);
  2388. }
  2389. }
  2390. break;
  2391. #endif
  2392. #ifdef N32_GAME_SUPPORT
  2393. case FILE_INTRA_EVENT_GAME_SOURCE_CHANGE:
  2394. file_printf("####%s %d####\n", __FUNCTION__,__LINE__);
  2395. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_GAME_PLAYBACK);
  2396. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  2397. {
  2398. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  2399. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  2400. }
  2401. break;
  2402. #endif
  2403. #ifdef SUPPORT_IR_HOTKEY
  2404. case UI_EVENT_DTV:
  2405. APP_GUIOBJ_Source_SetAppSource(APP_SOURCE_ATV);
  2406. break;
  2407. case UI_EVENT_AV:
  2408. APP_GUIOBJ_Source_SetAppSource(APP_SOURCE_AV);
  2409. break;
  2410. case UI_EVENT_HDMI:
  2411. APP_GUIOBJ_Source_SetAppSource(APP_SOURCE_PC);
  2412. break;
  2413. #endif
  2414. #if 0//def CONFIG_SUPPORT_MIRACAST
  2415. case DMN_EVENT_MIRACAST_CONNECTING:
  2416. file_printf("DMN_EVENT_MIRACAST_CONNECTING.\n");
  2417. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER, 0,
  2418. sizeof(APP_SETTING_FactoryUser_t), &(g_stFactoryUserData));
  2419. if (g_stFactoryUserData.n_FactSet_BurningMode == al_true)
  2420. {
  2421. break;
  2422. }
  2423. /* Check invalid state ---*/
  2424. if (SP_SUCCESS != APP_GUIOBJ_Source_SetAppSource(APP_SOURCE_NET))
  2425. {
  2426. file_printf("[FileApp OnGlobalEvent] APP_GUIOBJ_Source_SetAppSource faild.\n");
  2427. }
  2428. break;
  2429. case DMN_EVENT_MIRACAST_EXIT_SUCCESS:
  2430. file_printf("DMN_EVENT_MIRACAST_EXIT_SUCCESS.\n");
  2431. //if(IsDonglePlugged())
  2432. {
  2433. //DrawInfoWindow("Device Plugged", DRAW_IT);
  2434. GL_TaskSleep(3000);
  2435. MiracastInit();
  2436. }
  2437. //else{
  2438. //DrawInfoWindow("NO Device", DRAW_IT);
  2439. //}
  2440. break;
  2441. #endif
  2442. case FILE_INTRA_EVENT_SHOW_POPMSG:
  2443. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL, 0);
  2444. MM_PopMsg_Show(FILR_POP_USB_RE_INSERT);
  2445. break;
  2446. default :
  2447. break;
  2448. }
  2449. return SP_SUCCESS;
  2450. }
  2451. /******************************************************************************/
  2452. /**
  2453. * @brief
  2454. * @param
  2455. * @return
  2456. *
  2457. ******************************************************************************/
  2458. static int SysApp_MM_OnGUIFeedbackEvent(void* pPrivateData, UINT32 dMessage, UINT32 dParam)
  2459. {
  2460. file_printf("[FilePlayer] %s.\n", __FUNCTION__);
  2461. switch(dMessage)
  2462. {
  2463. case GUI_RESPOND_MEDIA_PLAYDONE:
  2464. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_BANNER))
  2465. {
  2466. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_BANNER);
  2467. }
  2468. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_ADJUST))
  2469. {
  2470. if (APP_GUIOBJ_Adjust_GetType() == ADJUST_VOLUME || APP_GUIOBJ_Adjust_GetType() == ADJUST_HDMICEC_AMPVOLUME)
  2471. {
  2472. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_ADJUST);
  2473. }
  2474. }
  2475. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_AMPLIFIERVOLUME))
  2476. {
  2477. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_AMPLIFIERVOLUME);
  2478. }
  2479. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MOVIE_PLAYBACK))
  2480. {
  2481. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MOVIE_PLAYBACK);
  2482. }
  2483. else if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_PHOTO_PLAYBACK))
  2484. {
  2485. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_PHOTO_PLAYBACK);
  2486. }
  2487. /*
  2488. else if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_PVR_PLAYBACK))
  2489. {
  2490. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_PVR_PLAYBACK);
  2491. }
  2492. */
  2493. else if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_EBOOK_PLAYBACK))
  2494. {
  2495. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_EBOOK_PLAYBACK);
  2496. }
  2497. #ifdef GAME_SUPPORT
  2498. else if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_GAME_PLAYBACK))
  2499. {
  2500. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_GAME_PLAYBACK);
  2501. }
  2502. #endif
  2503. else if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MUSIC_PLAYBACK))
  2504. {
  2505. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_MUSIC_PLAYBACK);
  2506. }
  2507. #ifdef CONFIG_SUPPORT_KARAOKE_AUTO_PLAY
  2508. else if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_AUTO_PLAY))
  2509. {
  2510. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_AUTO_PLAY);
  2511. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  2512. }
  2513. #endif
  2514. break;
  2515. case GUI_RESPOND_EXIT_ALL_MENU:
  2516. SysApp_MM_DestroyAppointedGUI();
  2517. if(g_bOpenHomeMenuAfterCloseFM == TRUE)
  2518. {
  2519. g_bOpenHomeMenuAfterCloseFM = FALSE;
  2520. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE))
  2521. {
  2522. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE, 0);
  2523. }
  2524. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE))
  2525. {
  2526. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_HOMEPAGE, 0);
  2527. }
  2528. }
  2529. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL))
  2530. {
  2531. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, MEDIA_GUIOBJ_NULL);
  2532. }
  2533. break;
  2534. default:
  2535. file_printf("[FilePlayer] Unknown GUI feedback message received.\n");
  2536. break;
  2537. }
  2538. return SP_SUCCESS;
  2539. }
  2540. /******************************************************************************/
  2541. /**
  2542. * @brief
  2543. * @param
  2544. * @return
  2545. *
  2546. *******************************************************************************/
  2547. int SysApp_MM_OnEvent(void* pPrivateData, UINT32 dMessage, UINT32 dParam)
  2548. {
  2549. file_printf("[%s] dMessage: 0x%04x dParam: %d received.\n", __FUNCTION__, dMessage, dParam);
  2550. switch (dMessage & GUIOBJ_MESSAGE_TYPE_MASK)
  2551. {
  2552. case SYSAPP_GLOBAL_EVENT_TYPE:
  2553. SysApp_MM_OnGlobalEvent(pPrivateData, (dMessage & GUIOBJ_MESSAGE_MASK), dParam);
  2554. break;
  2555. case GUIOBJ_FEEDBACK_EVENT_TYPE:
  2556. SysApp_MM_OnGUIFeedbackEvent(pPrivateData, (dMessage & GUIOBJ_MESSAGE_MASK), dParam);
  2557. break;
  2558. default:
  2559. file_printf("[FileBrowser] Unknown message type received.\n");
  2560. break;
  2561. }
  2562. return SP_SUCCESS;
  2563. }
  2564. bool SysApp_MM_AL_CallBackFuc(AL_PLAYER_Event_t Event)
  2565. {
  2566. file_printf("\n\n\n\n------only test ----callback message from al middleware\n");
  2567. file_printf("[%s] 0x%x\n\n\n", __FUNCTION__, Event);
  2568. switch (Event)
  2569. {
  2570. #ifdef CONFIG_SUPPORT_DIVXDRM
  2571. case PLAYER_AV_EVENT_DIVX_DRM_RENTAL_EXPIRED:
  2572. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2573. FILE_GLOBAL_EVENT_DIVX_RENTAL_EXPIRED, 0);
  2574. break;
  2575. case PLAYER_AV_EVENT_DIVX_DRM_RENTAL_CONFIRMATION:
  2576. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2577. FILE_GLOBAL_EVENT_DIVX_RETAL_VIEW_COUNT, 0);
  2578. break;
  2579. case PLAYER_AV_EVENT_DIVX_DRM_NOT_AUTHORIZED:
  2580. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2581. FILE_GLOBAL_EVENT_DIVX_NOT_AUTHORIZED, 0);
  2582. break;
  2583. case PLAYER_AV_EVENT_DIVX_DRM_UNSUPPORT_VERSION:
  2584. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2585. FILE_GLOBAL_EVENT_DIVX_UNSUPPORTTED_DRM_VERSION, 0);
  2586. break;
  2587. #endif
  2588. case PLAYER_AV_EVENT_INITOK:
  2589. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2590. FILE_GLOBAL_EVENT_MEDIA_INITOK, 0);
  2591. break;
  2592. case PLAYER_AV_EVENT_DECODE_FINISH: //0x10001
  2593. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2594. FILE_GLOBAL_EVENT_MEDIA_PLAYDONE, 0);
  2595. break;
  2596. case PLAYER_AV_EVENT_READERROR: //0x10007
  2597. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2598. FILE_GLOBAL_EVENT_MEDIA_READ_DATA_FAIL, 0);
  2599. break;
  2600. case PLAYER_AV_EVENT_VIDEOUNSUPPORT: //0x1000e
  2601. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2602. FILE_GLOBAL_EVENT_MEDIA_UNSUPPORTVIDEO, 0);
  2603. break;
  2604. case PLAYER_AV_EVENT_AUDIOUNSUPPORT: //0x1000c
  2605. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2606. FILE_GLOBAL_EVENT_MEDIA_UNSUPPORTAUDIO, 0);
  2607. break;
  2608. case PLAYER_AV_EVENT_UNSUPPORT: //0x1000a
  2609. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2610. FILE_GLOBAL_EVENT_MEDIA_PLAYERROR, 0);
  2611. break;
  2612. case PLAYER_AV_EVENT_BACK_FINISH: //0x1000b
  2613. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2614. FILE_GLOBAL_EVENT_MEDIA_BACK_FINISH, 0);
  2615. break;
  2616. case PLAYER_AV_EVENT_RESUME_PLAY:
  2617. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2618. FILE_GLOBAL_EVENT_MEDIA_RESUME_PLAY, 0);
  2619. break;
  2620. case PLAYER_AV_EVENT_UPDATE_RATING:
  2621. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2622. FILE_GLOBAL_EVENT_MEDIA_UPDATE_RATING, 0);
  2623. break;
  2624. case PLAYER_PIC_EVENT_DECODE_START: // 0x4ffff
  2625. case PLAYER_PIC_EVENT_EFFECT_FINISH: //0x40004
  2626. break;
  2627. case PLAYER_AV_EVENT_UPDATE_TIME: //0x10008
  2628. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2629. FILE_GLOBAL_EVENT_MEDIA_UPDATE_TIME, 0);
  2630. break;
  2631. case PLAYER_AV_EVENT_SEEK_FAIL:
  2632. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2633. FILE_GLOBAL_EVENT_MEDIA_SEEK_FAIL, 0);
  2634. break;
  2635. case PLAYER_AV_EVENT_UPDATE_STREAM_INFO:
  2636. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_FILE_PLAYER,
  2637. FILE_GLOBAL_EVENT_MEDIA_UPDATE_STREAM_INFO, 0);
  2638. break;
  2639. default:
  2640. file_printf("[%s] Unknown message type received.\n", __FUNCTION__);
  2641. break;
  2642. }
  2643. return TRUE;
  2644. }
  2645. void SysApp_MM_VolumeKeyHandler(UINT32 dMessage, UINT8 IsCECKey)
  2646. {
  2647. if(IsCECKey == TRUE)
  2648. {
  2649. #ifdef SUPPORT_CEC_TV
  2650. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FEATURE, 0,
  2651. sizeof(APP_SETTING_Feature_t), &(g_stFeatureData));
  2652. if (( APP_SWITCH_ON == g_stFeatureData.Enable_HDMILink)
  2653. #ifdef SUPPORT_AMPLIFIER_CONTROL
  2654. &&(APP_SWITCH_ON == g_stFeatureData.AmplifierControl)
  2655. #endif
  2656. &&(APP_HDMILINK_AMPLIFIER == g_stFeatureData.SpeakerPreference) && APP_GUIOBJ_Source_GetAmplifierPort())
  2657. {
  2658. if (CECTV_GetCECEnable()==CECTV_ENABLE && CECTV_GetHDMISystemAudioMode() && APP_Check_CEC_DEVICE_Status())
  2659. {
  2660. //if(APP_Get_HDMICEC_AMP_Mute_Status() == TRUE)
  2661. {
  2662. //APP_Set_HDMICEC_AMP_Mute_Status(FALSE);
  2663. //APP_GUIOBJ_Mute_MuteKeyHandler();
  2664. //CECTV_SendCmd(CECTV_SINGLE_ACT_CMD_KEYPRESS, CECTV_KEY_MUTE<<8|0x05);//Mute Function
  2665. //SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE, APP_INTRA_EVENT_HIDE_MUTE, 0);
  2666. }
  2667. }
  2668. }
  2669. #endif
  2670. }
  2671. else
  2672. {
  2673. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO, 0,
  2674. sizeof(APP_SETTING_UserInfo_t), &(g_stUserInfoData));
  2675. if (g_stUserInfoData.Mute)
  2676. {
  2677. if(dMessage == UI_EVENT_VOL_UP || IsCECKey == TRUE)
  2678. {
  2679. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_MUTE,
  2680. APP_INTRA_EVENT_HIDE_MUTE, 0);
  2681. APP_Audio_SetMute(FALSE, TRUE, APP_MUTE_MODE_SIGNAL_DETECT, APP_SOURCE_MEDIA);
  2682. g_stUserInfoData.Mute = FALSE;
  2683. AL_Setting_Write(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO,
  2684. ITEM_OFFSET(APP_SETTING_UserInfo_t, Mute),
  2685. sizeof(g_stUserInfoData.Mute),&(g_stUserInfoData.Mute));
  2686. #ifdef SUPPORT_STORE_MUTE_FLAG
  2687. AL_Setting_Store(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO,
  2688. ITEM_OFFSET(APP_SETTING_UserInfo_t, Mute),
  2689. sizeof(g_stUserInfoData.Mute));
  2690. #endif
  2691. }
  2692. }
  2693. }
  2694. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_BANNER))
  2695. {
  2696. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_BANNER);
  2697. }
  2698. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_AMPLIFIERVOLUME))
  2699. {
  2700. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_AMPLIFIERVOLUME);
  2701. }
  2702. if(IsCECKey == TRUE
  2703. #ifdef SUPPORT_CEC_TV
  2704. && CECTV_GetHDMISystemAudioMode() && APP_Check_CEC_DEVICE_Status()
  2705. #endif
  2706. )
  2707. {
  2708. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_ADJUST))
  2709. {
  2710. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_ADJUST);
  2711. }
  2712. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_AMPLIFIERVOLUME))
  2713. {
  2714. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_AMPLIFIERVOLUME);
  2715. }
  2716. else
  2717. {
  2718. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER,APP_GUIOBJ_AMPLIFIERVOLUME, 0);
  2719. }
  2720. }
  2721. else
  2722. {
  2723. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_AMPLIFIERVOLUME))
  2724. {
  2725. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_AMPLIFIERVOLUME);
  2726. }
  2727. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_FILE_PLAYER, APP_GUIOBJ_ADJUST))
  2728. {
  2729. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_FILE_PLAYER, APP_GUIOBJ_ADJUST);
  2730. }
  2731. else
  2732. {
  2733. UINT8 u8VolumeIdx = g_stVariationalData.Volume;
  2734. if (dMessage == UI_EVENT_VOL_UP)
  2735. {
  2736. g_stVariationalData.Volume = u8VolumeIdx >= ADJUST_MAX_VALUE ? ADJUST_MAX_VALUE : ++u8VolumeIdx;
  2737. }
  2738. else if (dMessage == UI_EVENT_VOL_DN)
  2739. {
  2740. g_stVariationalData.Volume = u8VolumeIdx <= ADJUST_MIN_VALUE ? ADJUST_MIN_VALUE : --u8VolumeIdx;
  2741. }
  2742. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTHOTEL, 0,
  2743. sizeof(APP_SETTING_FactoryHotel_t), &(g_stFactoryHotelData));
  2744. if ((g_stFactoryHotelData.MaxVolume < g_stVariationalData.Volume)
  2745. &&(g_stFactoryHotelData.HotelModeOnOff == 1))
  2746. {
  2747. g_stVariationalData.Volume = g_stFactoryHotelData.MaxVolume;
  2748. }
  2749. APP_Audio_SetVolume((UINT32)g_stVariationalData.Volume);
  2750. #ifdef SUPPORT_LINEOUT_AS_HP
  2751. APP_Audio_SetLineoutVol((UINT32)g_stVariationalData.Volume);
  2752. #endif
  2753. AL_Setting_Write(APP_Data_UserSetting_Handle(), SYS_SET_ID_VARIATIONAL,
  2754. ITEM_OFFSET(APP_SETTING_Variational_t, Volume),
  2755. sizeof(g_stVariationalData.Volume), &(g_stVariationalData.Volume));
  2756. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_FILE_PLAYER, APP_GUIOBJ_ADJUST, ADJUST_VOLUME);
  2757. }
  2758. }
  2759. }
  2760. /*****************************************************************************
  2761. ** FUNCTION : FILEApp_fw_callback
  2762. **
  2763. ** DESCRIPTION :
  2764. **
  2765. **
  2766. ** PARAMETERS :
  2767. ** None
  2768. **
  2769. ** RETURN VALUES:
  2770. ** None
  2771. *****************************************************************************/
  2772. INT32 FILEApp_fw_callback(AFW_event_t event, void *param)
  2773. {
  2774. UINT32 message = 0xffffffff;
  2775. UINT32 dParam = 0;
  2776. UINT32 Index = SYS_APP_FILE_PLAYER;
  2777. if(MAIN_APP_SUCCESS != MAINAPP_GetActiveSystemAppIndex(&Index))
  2778. {
  2779. file_printf("[%s: %d] get active system app fail\n",__FUNCTION__, __LINE__);
  2780. }
  2781. if (Index == SYS_APP_FILE_PLAYER)
  2782. {
  2783. switch (event)
  2784. {
  2785. case FW_USB_HUNGTASK:
  2786. g_need_show_pop = TRUE;
  2787. message = FW_USB_HUNGTASK|PASS_TO_SYSAPP;
  2788. break;
  2789. #ifdef CONFIG_SUPPORT_PVR
  2790. #if 0
  2791. case FW_SCHEDULER_EVENT:
  2792. printf("event is coming\n");
  2793. message = APP_DVB_GLOBAL_EVENT_PVRSCH;
  2794. break;
  2795. #endif
  2796. case FW_SCHEDULER_MSG:
  2797. file_printf("first warning: event will come in PR_NOTIFY_TIME_IN_SEC sec\n");
  2798. if (MM_Music_GetPanelControlType()== APP_PANEL_POWER_DOWN)
  2799. {
  2800. Cmd_SetPanelBacklightPower(1);
  2801. MM_Music_SetPanelControlType(APP_PANEL_POWER_UP);
  2802. }
  2803. dParam =*(UINT32 *)param;
  2804. message = APP_GLOBAL_EVENT_PVR_REMINDER|PASS_TO_SYSAPP;
  2805. break;
  2806. #endif
  2807. #ifdef CONFIG_SCART_SUPPORT
  2808. case FW_SCART_INPUTSTATUS_CHANGE:
  2809. dParam = *(UINT32 *)param;
  2810. APP_SCARTIN_Pin8Function(dParam);
  2811. break;
  2812. #endif
  2813. case FW_VIP_FINISH:
  2814. message = FW_VIP_FINISH|PASS_TO_SYSAPP;
  2815. break;
  2816. #ifdef SUPPORT_CEC_TV
  2817. case FW_HDMI_PORTSTATUS:
  2818. dParam = *(UINT32 *)param;
  2819. message = FILE_GLOBAL_EVENT_HDMIPORT_STATUS|PASS_TO_SYSAPP;
  2820. break;
  2821. #endif
  2822. #ifdef CONFIG_QSD
  2823. case FW_QSD_Media_Play:
  2824. dParam = *(UINT32 *)param;
  2825. message = APP_GLOBAL_EVENT_QSD_MEDIA_PLAY|PASS_TO_SYSAPP;
  2826. break;
  2827. case FW_QSD_Source_Set:
  2828. dParam = *(UINT32 *)param;
  2829. message = APP_GLOBAL_EVENT_QSD_SET_SOURCE|PASS_TO_SYSAPP;
  2830. //APP_GUIOBJ_Source_SetAppSource(dParam);
  2831. break;
  2832. #ifdef CONFIG_DVB_SYSTEM_DVBT_SUPPORT
  2833. case FW_QSD_DTV_SetFreq:
  2834. APP_GUIOBJ_FM_DtvChnSet_LoadSettingData();
  2835. break;
  2836. #endif
  2837. #endif
  2838. case FW_AUDIO_HEADPHONE_PLUG_IN:
  2839. message = APP_GLOBAL_EVENT_HEADPHONE_PLUG_IN|PASS_TO_SYSAPP;
  2840. break;
  2841. case FW_AUDIO_HEADPHONE_PLUG_OUT:
  2842. message = APP_GLOBAL_EVENT_HEADPHONE_PLUG_OUT|PASS_TO_SYSAPP;
  2843. break;
  2844. #ifdef CONFIG_SUPPORT_AUDIO_CODEC_OVERLAY
  2845. case FW_AUDIO_LOADCODEC_OK:
  2846. case FW_AUDIO_LOADCODEC_ERROR:
  2847. message = event|PASS_TO_SYSAPP;
  2848. dParam = *(UINT32 *)param;
  2849. break;
  2850. case FW_AUDIO_LOADCODEC_TYPE:
  2851. {
  2852. UINT16 new_condec = *(UINT32 *)param;
  2853. TVFE_Audio_LOAD_CODEC_t stConfig;
  2854. memset(&stConfig, 0, sizeof(TVFE_Audio_LOAD_CODEC_t));
  2855. stConfig.flag = TVFE_AUDIO_CODEC_FLAG_SET;
  2856. stConfig.new_type = new_condec;
  2857. TVFE_Audio_Load_Codec(&stConfig);
  2858. printf("\n\n[%s:%d] new_condec =========== %d\n\n\n",__FUNCTION__,__LINE__,new_condec);
  2859. }
  2860. break;
  2861. #endif
  2862. #ifdef CONFIG_HDMI_SUPPORT_MHL
  2863. case FW_HDMI_MHL_CONNECTED:
  2864. dParam = *(UINT32 *)param;
  2865. if(dParam == 1)
  2866. {
  2867. message = DMN_EVENT_MHL_CHANGE_SOURCE|PASS_TO_SYSAPP;
  2868. }
  2869. break;
  2870. #endif
  2871. default:
  2872. message = 0xffffffff;
  2873. break;
  2874. }
  2875. }
  2876. else
  2877. {
  2878. switch (event)
  2879. {
  2880. default:
  2881. message = 0xffffffff;
  2882. break;
  2883. }
  2884. }
  2885. if (message != 0xffffffff)
  2886. {
  2887. SYSAPP_IF_SendGlobalEventWithIndex(Index, message, dParam);
  2888. return SP_SUCCESS;
  2889. }
  2890. else
  2891. {
  2892. return SP_ERR_FAILURE;
  2893. }
  2894. }