main_app_external.c 75 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459
  1. /*****************************************************************************
  2. ** File: main_app_external.c
  3. **
  4. ** Description:
  5. **
  6. ** Copyright(c) 2008 Sunmedia Technologies - All Rights Reserved
  7. **
  8. ** Author : qin.he
  9. **
  10. ** $Id: $
  11. *****************************************************************************/
  12. /*header file*/
  13. #include <sys/ioctl.h>
  14. #include "umf_debug.h"
  15. #include "main_app.h"
  16. #include "app_event.h"
  17. #include "sysapp_table.h"
  18. #include "sysapp_if.h"
  19. #include "app_msg_filter.h"
  20. #include "app_msg_filter_tbl.h"
  21. #include "sysapp_timer.h"
  22. #include "gobj_datastruct.h"
  23. #include "al_fw.h"
  24. #include "kmf_ioctl.h"
  25. #include "ap_extern.h"
  26. #include "util_ioctl.h"
  27. #include "drv_blt_interface.h"
  28. #include "osd_lib.h"
  29. #include <dirent.h> // DIR need
  30. #include "gl_timer.h"
  31. #ifdef CONFIG_ATV_SUPPORT
  32. #include "atv_guiobj_table.h"
  33. #endif
  34. #if defined(CONFIG_DVB_SYSTEM_DVBT_SUPPORT)
  35. #include "app_area_info.h"
  36. #endif
  37. #include "app_menumgr.h"
  38. #include "app_audio.h"
  39. #include "app_video.h"
  40. #include "app_global.h"
  41. #include "app_gui.h"
  42. #include "app_power_control.h"
  43. #include "app_systime.h"
  44. #include "app_data_setting.h"
  45. #include "main_guiobj_table.h"
  46. #include "app_guiobj_source.h"
  47. #include "app_guiobj_adjust.h"
  48. #if defined(CONFIG_DTV_SUPPORT) || defined(CONFIG_ATV_SUPPORT)
  49. #include "app_guiobj_scan_process.h"
  50. #endif
  51. //#include "app_guiobj_mainmenu.h"
  52. #include "app_guiobj_fm_factory.h"
  53. #include "app_guiobj_sleeptimer.h"
  54. #include "pin_config.h"
  55. #ifdef CONFIG_SUPPORT_MEDIA_AUTO_PLAY
  56. #include "MM_media_auto_play.h"
  57. #endif
  58. #include "app_guiobj_source.h"
  59. #ifdef SUPPORT_CEC_TV
  60. #include "umf_cec.h"
  61. #endif
  62. #include "app_usb_upgrade.h"
  63. #ifdef SUPPORT_WAKEUP_TIMER_IN_STANDBY
  64. #include "app_guiobj_channel.h"
  65. #endif
  66. #include "app_factory.h"
  67. #ifdef CONFIG_ATV_SUPPORT
  68. #include "atv_app.h"
  69. #include "app_atv_event.h"
  70. #endif
  71. #ifdef CONFIG_DTV_SUPPORT
  72. #if defined(CONFIG_DVB_SYSTEM) || defined(CONFIG_AUS_DVB_SYSTEM) || defined(CONFIG_DTMB_SYSTEM)
  73. #include "dvb_app.h"
  74. #include "dvb_guiobj_table.h"
  75. #include "app_dvb_playback.h"
  76. #include "app_dvb_event.h"
  77. #include "app_guiobj_dtv_multiaud.h"
  78. #endif
  79. #ifdef CONFIG_ISDB_SYSTEM
  80. #include "sbtvd_app.h"
  81. #include "app_guiobj_sbtvd_table.h"
  82. #include "app_sbtvd_playback.h"
  83. #endif
  84. #ifdef CONFIG_SUPPORT_PVR
  85. #include "mid_recorder.h"
  86. #if defined(CONFIG_DVB_SYSTEM) || defined(CONFIG_AUS_DVB_SYSTEM) || defined(CONFIG_DTMB_SYSTEM)
  87. #include "app_guiobj_dtv_pvr_rec.h"
  88. #include "app_guiobj_dtv_pvrpower.h"
  89. #include "app_guiobj_dtv_pvr_playinfo.h"
  90. #endif
  91. #ifdef CONFIG_ISDB_SYSTEM
  92. #include "app_guiobj_sbtvd_pvr_rec.h"
  93. #endif
  94. #endif
  95. #endif
  96. #ifdef CONFIG_MEDIA_ENABLE
  97. #include "MM_popmsg_gui.h"
  98. #endif
  99. /*----------------Net------------------*/
  100. #ifdef CONFIG_NET_SUPPORT
  101. #include "net_daemon.h"
  102. #include "net/net_app/net_config.h"
  103. #include "app_net_instance.h"
  104. #ifdef SUPPORT_NET_TESTING
  105. #include "net/net_app/net_test.h"
  106. #endif
  107. #ifdef CONFIG_NET_ET_SUPPORT
  108. #include "cbk_event.h"
  109. #include "net_daemon.h"
  110. #include "net/et/libet.h"
  111. #endif
  112. #ifdef SAMBA_SUPPORT
  113. #include "app_network.h"
  114. #endif
  115. #ifdef CONFIG_NET_N32_SUPPORT
  116. #include "net/dlmgr/dlmgr_if.h"
  117. #include "net/net_app/net_config.h"
  118. #endif
  119. #ifdef NET_WIFI_SUPPORT
  120. #include "dvb_gui_object_wifi_list.h"
  121. #endif
  122. /*+++++++++++++++++NET++++++++++++++++++++*/
  123. #include "platform_venc.h"
  124. #include "net/net_app/net_config.h"
  125. #include "net_daemon.h"
  126. #ifdef SUPPORT_NET_TESTING
  127. #include "net/net_app/net_test.h"
  128. #endif
  129. #include "network_app.h"
  130. #endif
  131. #if defined(CONFIG_DTV_SUPPORT) || defined(CONFIG_ATV_SUPPORT)
  132. #include "app_clone_data.h"
  133. #endif
  134. #include "main_app_external.h"
  135. #ifdef SUPPORT_FACTORY_AUTO_TEST
  136. //#include "Debug_msg.h"
  137. #endif
  138. #ifdef SUPPORT_SHOP_DEMO_MODE
  139. #include "app_guiobj_picture.h"
  140. #endif
  141. #ifdef N32_GAME_SUPPORT
  142. #include "app_clone_data.h"
  143. #endif
  144. #ifdef SUPPORT_LED_FLASH
  145. #include "app_led_control.h"
  146. #endif
  147. #ifdef CONFIG_CIPLUS_SUPPORT
  148. #include "app_dvb_ci_mmi.h"
  149. #endif
  150. #include "mid_partition_list.h"
  151. #include "customize.h"
  152. #if defined(CONFIG_AUTO_USB_STORE_IRSEQ) && defined(CONFIG_QSD_AUTOIR)
  153. #include "umf_automation.h"
  154. #endif
  155. #ifdef CONFIG_SCART_SUPPORT
  156. #include "app_scart.h"
  157. #endif
  158. #ifdef CONFIG_BLUETOOTH_SUPPORT
  159. #include "al_bluetooth.h"
  160. #endif
  161. #if defined(CONFIG_BT_RDA5856)
  162. #include "app_bt.h"
  163. #endif
  164. #ifdef CONFIG_ENABLE_UMF_MODULES
  165. #include "umf_mod.h"
  166. #endif
  167. #ifdef CONFIG_MOD_PACK_DTV
  168. #include "mid_siutil.h"
  169. #endif
  170. #define MAIN_APP_DEBUG
  171. #ifdef MAIN_APP_DEBUG
  172. #undef mainapp_printf
  173. #define mainapp_printf(fmt, arg...) UMFDBG(0,"[MAINAPP][%s:%d]:"fmt, __FUNCTION__, __LINE__, ##arg)
  174. #else
  175. #define mainapp_printf(fmt, arg...) ((void) 0)
  176. #endif
  177. #define NUM_RESEND_MESSAGE_TYPE (DMN_EVENT_DEVICE_DETECT_MAX-DMN_EVENT_DEVICE_DETECT_MIN-1)
  178. #define NUM_RESEND_MESSAGE_OF_TYPE (10)
  179. #define NUM_RESEND_MESSAGE (5)
  180. #ifdef CONFIG_SUPPORT_MEDIA_AUTO_PLAY
  181. #define MAX_COM_BUF_SIZE 2048
  182. #define INTERNAL_COM_DISK_NAME_LEN (15)
  183. #ifdef CONFIG_SUPPORT_PARTITIONNUM_MAX
  184. #define MAX_COM_PARTITION_NUM (20)
  185. #else
  186. #define MAX_COM_PARTITION_NUM (8)
  187. #endif
  188. #define MM_COMMON_AUTO_PLAY "AutoPlay"
  189. static char PlayComFilePath[MAX_COM_BUF_SIZE];
  190. #endif
  191. #ifdef CONFIG_NET_SUPPORT
  192. extern Common_SysSet_NetETConfigStorage_t stNetConfigStorage;
  193. #endif
  194. #ifdef SUPPORT_WAKEUP_TIMER_IN_STANDBY
  195. extern Boolean g_fRecorderNeedEntryStandby;
  196. #endif
  197. #ifdef AC_ON_AUTO_GET_TIME
  198. extern Boolean g_fBackgroundGetTime;
  199. #endif
  200. #if defined(CONFIG_BT_RDA5856)
  201. extern Boolean g_SystemPowerOnReadyNeedReconnectBT;
  202. extern UINT8 g_BT_HasHeart;
  203. #endif
  204. #ifdef CONFIG_NET_SUPPORT
  205. extern int gMsgHandle;
  206. #ifdef CONFIG_NET_ET_SUPPORT
  207. static void _MAINAPP_EtMountHandle(MainAppUIEventHandlerInfo_t *pstEventInfo, UINT32 dDevNum);
  208. static void _MAINAPP_EtUnmountHandle(MainAppUIEventHandlerInfo_t *pstEventInfo, UINT32 dDevNum);
  209. #endif
  210. #ifdef CONFIG_NET_N32_SUPPORT
  211. static void _MAINAPP_N32MountHandle(MainAppUIEventHandlerInfo_t *pstEventInfo, UINT32 dDevNum);
  212. static void _MAINAPP_N32UnmountHandle(MainAppUIEventHandlerInfo_t *pstEventInfo, UINT32 dDevNum);
  213. #endif
  214. #ifdef CONFIG_NET_ET_SUPPORT
  215. MainAppUIEventHandlerInfo_t stUIEventHandlerInfo =
  216. {
  217. STATUS_NULL,
  218. UI_EVENT_NULL,
  219. TOTAL_SYS_APP_SIZE
  220. };
  221. #endif
  222. #endif
  223. GUI_Object_Definition_t* MAIN_APP_GUI_Obj_List[MAINAPP_GUIOBJ_MAX] =
  224. {
  225. };
  226. typedef struct{
  227. UINT32 dResendMessage;
  228. UINT32 dResendMessageParm;
  229. }sResentMessage;
  230. /* global variables */
  231. static Boolean g_bPowerOffFlag = FALSE;
  232. static UINT32 gdResentMessage[NUM_RESEND_MESSAGE_TYPE][NUM_RESEND_MESSAGE_OF_TYPE] = {{0}};
  233. static UINT32 gdResentParam[NUM_RESEND_MESSAGE_TYPE][NUM_RESEND_MESSAGE_OF_TYPE] = {{0}};
  234. static sResentMessage gResentMessageTable[NUM_RESEND_MESSAGE] = {{0}};
  235. extern Boolean gUSBUpgradeBinIsSupperBin;
  236. static Boolean g_CheckUpgrade = FALSE;//for mantis 0164559 @20120204
  237. #if (defined(CONFIG_SUPPORT_USB_AUTO_UPGRADE) && defined(CONFIG_CIPLUS_SUPPORT))
  238. static Boolean g_CheckUpgradeCIPLUS = FALSE;
  239. #endif
  240. #ifdef SUPPORT_FACTORY_AUTO_TEST
  241. typedef struct{
  242. UINT32 dResendMessage;
  243. UINT32 dResendMessageParm;
  244. }sFACResentMessage;
  245. static sFACResentMessage gFACTESTResentMessage = {0,0};
  246. static Boolean AcPowerOnNoRomBinFlag = FALSE;
  247. #endif
  248. #ifdef CONFIG_SUPPORT_SYSTEM_LIFETIME
  249. #define SAVE_SYSTEM_LIFETIME_TIME (15) //unit: min
  250. static UINT32 currtime;
  251. static UINT32 usedtime;
  252. static UINT32 SystemLifeTimerCount = 0;
  253. #endif
  254. #ifdef TEAC_SYSTEMINFO_SUPPORT
  255. static UINT32 currtime;
  256. static UINT32 usedtime;
  257. static UINT32 PanelCountTimer = 0;
  258. static UINT32 DVDcurrtime;
  259. static UINT32 DVDusedtime;
  260. static UINT32 DVDCountTimer = 0;
  261. static APP_Source_Type_t ePrevSourType = APP_SOURCE_MAX;
  262. static APP_Source_Type_t eCurrSourType = APP_SOURCE_MAX;
  263. #endif
  264. #ifdef CONFIG_CIPLUS_SUPPORT
  265. extern CIPlus_Sched_Update_t g_CIPlus_update;
  266. #endif
  267. #ifdef CONFIG_SUPPORT_MEDIA_AUTO_PLAY
  268. static UINT8 gb_NeedAutoPlay = FALSE;
  269. #endif
  270. #ifdef SUPPORT_USB_UPGRADE_LONG_PRESS_KEYPAD_POWER
  271. extern UINT8 IsKeypadPowerOnPressRepeat;
  272. UINT32 USB_ATTACHED = FALSE;
  273. #endif
  274. #ifdef CONFIG_SUPPORT_MALAYSIA_CERTIFICATION
  275. UINT8 g_PowerOnDurRescan = 0;
  276. UINT8 g_isStandyByRescan = 0;
  277. #endif
  278. #ifdef CONFIG_SUPPORT_DETECT_USBPLL
  279. static Boolean g_SendMessageTo = TRUE;
  280. #endif
  281. #ifdef CONFIG_SUPPORT_SYSTEM_LIFETIME
  282. void MAINAPP_UpdateSystemLifeTimeToFlash(UINT8 isCountTimer)
  283. {
  284. APP_SETTING_SystemPartLifeTimeTable_t dataSystemLifeTime;
  285. if(g_CheckUpgrade)
  286. {
  287. return;
  288. }
  289. if(isCountTimer == TRUE)
  290. {
  291. currtime = GL_GetRtc32()/1000;// s
  292. APP_SystemLifeTimeDataWriteRead(FALSE,(UINT8 *)&dataSystemLifeTime);//Read flash time
  293. dataSystemLifeTime.SystemLifeTime += SAVE_SYSTEM_LIFETIME_TIME;//min
  294. APP_SystemLifeTimeDataWriteRead(TRUE,(UINT8 *)&dataSystemLifeTime);//Write time to flash
  295. SystemLifeTimerCount = 0;
  296. }
  297. else
  298. {
  299. usedtime = GL_GetRtc32()/1000 - currtime;
  300. if(usedtime/60 <= 2*SAVE_SYSTEM_LIFETIME_TIME)//check valid
  301. {
  302. APP_SystemLifeTimeDataWriteRead(FALSE,(UINT8 *)&dataSystemLifeTime);//Read flash time
  303. dataSystemLifeTime.SystemLifeTime += usedtime/60;//min
  304. APP_SystemLifeTimeDataWriteRead(TRUE,(UINT8 *)&dataSystemLifeTime);//Write time to flash
  305. }
  306. }
  307. }
  308. #endif
  309. void MAINAPP_AddEevnetToTable(UINT32 dMessage,UINT32 dParm)
  310. {
  311. UINT8 count = 0;
  312. for(count=0; count < NUM_RESEND_MESSAGE; count++)
  313. {
  314. if(gResentMessageTable[count].dResendMessage == 0)
  315. {
  316. gResentMessageTable[count].dResendMessage = dMessage;
  317. gResentMessageTable[count].dResendMessageParm = dParm;
  318. break;
  319. }
  320. }
  321. }
  322. UINT8 MAINAPP_SendOutEventToAction(UINT32 dMessage, UINT32 dParam)
  323. {
  324. UINT32 message = 0xffffffff;
  325. UINT32 Index = 0;
  326. if(MAIN_APP_SUCCESS != MAINAPP_GetActiveSystemAppIndex(&Index))
  327. {
  328. mainapp_printf("[%s: %d] get active system app fail\n",__FUNCTION__, __LINE__);
  329. return 0;
  330. }
  331. #ifdef CONFIG_SCART_SUPPORT
  332. if(dMessage == FW_SCART_INPUTSTATUS_CHANGE)
  333. {
  334. APP_SCARTIN_ResetPin8Status();
  335. }
  336. #ifdef CONFIG_ATV_SUPPORT
  337. if (Index == SYS_APP_ATV)
  338. {
  339. switch (dMessage)
  340. {
  341. case FW_SCART_INPUTSRC_CHANGE:
  342. message = APP_ATV_GLOBAL_EVENT_SCARTINPUT_CHANGE|PASS_TO_SYSAPP;
  343. break;
  344. case FW_SCART_INPUTSTATUS_CHANGE:
  345. APP_SCARTIN_Pin8Function(dParam);
  346. break;
  347. default:
  348. break;
  349. }
  350. }
  351. #endif
  352. #ifdef CONFIG_DTV_SUPPORT
  353. if(Index == SYS_APP_DVB)
  354. {
  355. switch (dMessage)
  356. {
  357. case FW_SCART_INPUTSTATUS_CHANGE:
  358. #ifdef CONFIG_SUPPORT_PVR
  359. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_DVB, DVB_GUIOBJ_PVR_REC)
  360. || SYSAPP_GOBJ_GUIObjectExist(SYS_APP_DVB, DVB_GUIOBJ_PVR_PLAYINFO))
  361. {
  362. break;
  363. }
  364. #endif
  365. //APP_SCARTIN_Pin8Function(dParam);
  366. break;
  367. default:
  368. break;
  369. }
  370. }
  371. #endif
  372. #ifdef CONFIG_MEDIA_ENABLE
  373. if(Index == SYS_APP_FILE_PLAYER)
  374. {
  375. switch (dMessage)
  376. {
  377. case FW_SCART_INPUTSTATUS_CHANGE:
  378. APP_SCARTIN_Pin8Function(dParam);
  379. break;
  380. default:
  381. break;
  382. }
  383. }
  384. #endif
  385. #endif
  386. #ifdef CONFIG_DTV_SUPPORT
  387. #ifdef CONFIG_DVB_SYSTEM_DVBS_SUPPORT
  388. if(Index == SYS_APP_DVB)
  389. {
  390. switch (dMessage)
  391. {
  392. case FW_DB_LOAD_DEFAULT:
  393. MAINAPP_SendGlobalEvent(FW_DB_LOAD_DEFAULT, AL_DBTYPE_DVB_S);
  394. break;
  395. default:
  396. break;
  397. }
  398. return TRUE;
  399. }
  400. #endif
  401. #endif
  402. if (message != 0xffffffff)
  403. {
  404. SYSAPP_IF_SendGlobalEventWithIndex(Index, message, dParam);
  405. }
  406. return TRUE;
  407. }
  408. void MAINAPP_ResendEventTableInTransition(void)
  409. {
  410. UINT32 dActiveSysApp = 0;
  411. UINT8 u8Count = 0;
  412. switch (MAINAPP_GetActiveSystemAppIndex(&dActiveSysApp))
  413. {
  414. case MAIN_APP_IN_TRANSITION:
  415. mainapp_printf(" In Transition State, wait and retry.\n");
  416. break;
  417. case MAIN_APP_SUCCESS:
  418. for (u8Count = 0; u8Count < NUM_RESEND_MESSAGE; u8Count++)
  419. {
  420. if(gResentMessageTable[u8Count].dResendMessage == FW_SCART_INPUTSRC_CHANGE
  421. || gResentMessageTable[u8Count].dResendMessage == FW_SCART_INPUTSTATUS_CHANGE
  422. || gResentMessageTable[u8Count].dResendMessage == FW_DB_LOAD_DEFAULT
  423. )
  424. {
  425. if(TRUE == MAINAPP_SendOutEventToAction(gResentMessageTable[u8Count].dResendMessage, gResentMessageTable[u8Count].dResendMessageParm))
  426. {
  427. gResentMessageTable[u8Count].dResendMessage = 0;
  428. gResentMessageTable[u8Count].dResendMessageParm = 0;
  429. }
  430. }
  431. else if (gResentMessageTable[u8Count].dResendMessage > 0)
  432. {
  433. MSG_FILTER_DispatchMessage(gResentMessageTable[u8Count].dResendMessage, gResentMessageTable[u8Count].dResendMessageParm);
  434. gResentMessageTable[u8Count].dResendMessage = 0;
  435. gResentMessageTable[u8Count].dResendMessageParm = 0;
  436. }
  437. }
  438. break;
  439. default:
  440. mainapp_printf("[%s] In Invalid State\n",__FUNCTION__);
  441. for (u8Count = 0; u8Count < NUM_RESEND_MESSAGE; u8Count++)
  442. {
  443. gResentMessageTable[u8Count].dResendMessage = 0;
  444. gResentMessageTable[u8Count].dResendMessageParm = 0;
  445. }
  446. break;
  447. }
  448. }
  449. static void _MAINAPP_ResendEventInTransition(void)
  450. {
  451. UINT32 dActiveSysApp = 0;
  452. UINT8 u8Count1 = 0;
  453. UINT8 u8Count2 = 0;
  454. switch (MAINAPP_GetActiveSystemAppIndex(&dActiveSysApp))
  455. {
  456. case MAIN_APP_IN_TRANSITION:
  457. mainapp_printf(" In Transition State, wait and retry.\n");
  458. break;
  459. case MAIN_APP_SUCCESS:
  460. for (u8Count1 = 0; u8Count1 < NUM_RESEND_MESSAGE_TYPE; u8Count1++)
  461. {
  462. for (u8Count2 = 0; u8Count2 < NUM_RESEND_MESSAGE_OF_TYPE; u8Count2++)
  463. {
  464. if (gdResentMessage[u8Count1][u8Count2] > 0)
  465. {
  466. MSG_FILTER_DispatchMessage(gdResentMessage[u8Count1][u8Count2], gdResentParam[u8Count1][u8Count2]);
  467. }
  468. }
  469. }
  470. break;
  471. default:
  472. mainapp_printf("[%s] In Invalid State\n",__FUNCTION__);
  473. for (u8Count1 = 0; u8Count1 < NUM_RESEND_MESSAGE_TYPE; u8Count1++)
  474. {
  475. for (u8Count2 = 0; u8Count2 < NUM_RESEND_MESSAGE_OF_TYPE; u8Count2++)
  476. {
  477. gdResentMessage[u8Count1][u8Count2] = 0;
  478. gdResentParam[u8Count1][u8Count2] = 0;
  479. }
  480. }
  481. break;
  482. }
  483. }
  484. static void _MAINAPP_SetEventInTransition(UINT32 dMessage, UINT32 dParam)
  485. {
  486. UINT8 u8Count = 0;
  487. if (((dMessage-DMN_EVENT_DEVICE_DETECT_MIN) > 0)
  488. && ((dMessage-DMN_EVENT_DEVICE_DETECT_MIN-1) < NUM_RESEND_MESSAGE_TYPE))
  489. {
  490. for (u8Count = 0; u8Count < NUM_RESEND_MESSAGE_OF_TYPE; u8Count++)
  491. {
  492. //zhongbaoxing added @20120313. no need to record the exist messages
  493. if((gdResentMessage[dMessage-DMN_EVENT_DEVICE_DETECT_MIN-1][u8Count] == dMessage)
  494. &&(gdResentParam[dMessage-DMN_EVENT_DEVICE_DETECT_MIN-1][u8Count] == dParam))
  495. {
  496. break;
  497. }
  498. if (gdResentMessage[dMessage-DMN_EVENT_DEVICE_DETECT_MIN-1][u8Count] == 0)
  499. {
  500. gdResentMessage[dMessage-DMN_EVENT_DEVICE_DETECT_MIN-1][u8Count] = dMessage;
  501. gdResentParam[dMessage-DMN_EVENT_DEVICE_DETECT_MIN-1][u8Count] = dParam;
  502. break;
  503. }
  504. }
  505. }
  506. }
  507. static void _MAINAPP_ClearEventInTransition(UINT32 dMessage, UINT32 dParam)
  508. {
  509. UINT8 u8Count = 0;
  510. if (((dMessage-DMN_EVENT_DEVICE_DETECT_MIN) > 0)
  511. && ((dMessage-DMN_EVENT_DEVICE_DETECT_MIN-1) < NUM_RESEND_MESSAGE_TYPE))
  512. {
  513. for (u8Count = 0; u8Count < NUM_RESEND_MESSAGE_OF_TYPE; u8Count++)
  514. {
  515. if ((gdResentMessage[dMessage-DMN_EVENT_DEVICE_DETECT_MIN-1][u8Count] == dMessage)
  516. &&(gdResentParam[dMessage-DMN_EVENT_DEVICE_DETECT_MIN-1][u8Count] == dParam))
  517. {
  518. gdResentMessage[dMessage-DMN_EVENT_DEVICE_DETECT_MIN-1][u8Count] = 0;
  519. gdResentParam[dMessage-DMN_EVENT_DEVICE_DETECT_MIN-1][u8Count] = 0;
  520. break;
  521. }
  522. }
  523. }
  524. }
  525. /*****************************************************************************
  526. ** FUNCTION : _MAINAPP_GUIFeedbackEventHandler
  527. **
  528. ** DESCRIPTION :
  529. ** main app feedback event handler
  530. **
  531. ** PARAMETERS :
  532. ** dMessage: feadback message
  533. ** dParam: feadback message's paramter
  534. **
  535. ** RETURN VALUES:
  536. ** None
  537. *****************************************************************************/
  538. void _MAINAPP_GUIFeedbackEventHandler(UINT32 dMessage, UINT32 dParam)
  539. {
  540. switch(dMessage)
  541. {
  542. default:
  543. mainapp_printf(" Unknown GUI feedback message received.\n");
  544. break;
  545. }
  546. return;
  547. }
  548. /*****************************************************************************
  549. ** FUNCTION : _MAINAPP_UIEventHandler
  550. **
  551. ** DESCRIPTION :
  552. ** main app UI event handler
  553. **
  554. ** PARAMETERS :
  555. ** dMessage: UI message
  556. ** dParam: UI message's paramter
  557. **
  558. ** RETURN VALUES:
  559. ** None
  560. *****************************************************************************/
  561. int _MAINAPP_UIEventHandler(UINT32 dMessage, UINT32 dParam)
  562. {
  563. UINT32 dIndex = 0;
  564. APP_Source_Type_t eSourceType;
  565. eSourceType = APP_SOURCE_MAX;
  566. //if (MAIN_APP_SUCCESS == MAINAPP_GetActiveSystemAppIndex(&dIndex))
  567. {
  568. APP_GUIOBJ_Source_GetCurrSource(&eSourceType);
  569. #if (defined CONFIG_DTV_SUPPORT)
  570. if (eSourceType == APP_SOURCE_DTV || eSourceType == APP_SOURCE_RADIO)
  571. {
  572. if ((SYSAPP_GOBJ_GUIObjectExist(SYS_APP_DVB, DVB_GUIOBJ_SCAN_PROCESS))
  573. &&(dMessage != UI_EVENT_POWER)
  574. &&(dMessage != UI_EVENT_MUTE))
  575. {
  576. return MAIN_APP_SUCCESS;
  577. }
  578. if((SYSAPP_GOBJ_GUIObjectExist(SYS_APP_DVB, DVB_GUIOBJ_SCAN_PROCESS))
  579. && dMessage == UI_EVENT_POWER
  580. && APP_GetAskPowerOffInSearching() == TRUE)
  581. {
  582. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_DVB,
  583. APP_GLOBAL_EVENT_POPMSG_CONFIRM_POWER_OFF, 0);
  584. return MAIN_APP_SUCCESS;
  585. }
  586. }
  587. #endif
  588. #if (defined CONFIG_ATV_SUPPORT)
  589. if (eSourceType == APP_SOURCE_ATV)
  590. {
  591. if ((SYSAPP_GOBJ_GUIObjectExist(SYS_APP_ATV, ATV_GUIOBJ_SCAN_PROCESS))
  592. &&(dMessage != UI_EVENT_POWER)
  593. &&(dMessage != UI_EVENT_MUTE))
  594. {
  595. return MAIN_APP_SUCCESS;
  596. }
  597. if((SYSAPP_GOBJ_GUIObjectExist(SYS_APP_ATV, ATV_GUIOBJ_SCAN_PROCESS))
  598. && dMessage == UI_EVENT_POWER
  599. && APP_GetAskPowerOffInSearching() == TRUE)
  600. {
  601. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_ATV,
  602. APP_GLOBAL_EVENT_POPMSG_CONFIRM_POWER_OFF, 0);
  603. return MAIN_APP_SUCCESS;
  604. }
  605. }
  606. #endif
  607. }
  608. if (MAIN_APP_SUCCESS == MAINAPP_GetActiveSystemAppIndex(&dIndex))
  609. {
  610. #ifdef CONFIG_SUPPORT_OTA_UPGRADE
  611. if (SYS_APP_DVB == dIndex)
  612. {
  613. if (SYSAPP_GOBJ_GUIObjectExist(dIndex, DVB_GUIOBJ_OTA_UPGRADE_PROGRESS) && (AL_POWER_STATE_MAX != dParam))
  614. {
  615. return MAIN_APP_SUCCESS;
  616. }
  617. }
  618. #endif
  619. #ifndef CONFIG_SUPPORT_MONITOR
  620. #ifdef CONFIG_SUPPORT_USB_UPGRADE
  621. if (SYSAPP_GOBJ_GUIObjectExist(dIndex, APP_GUIOBJ_SOFTWARE_UPGRADE))
  622. {
  623. return MAIN_APP_SUCCESS;
  624. }
  625. #endif
  626. #endif
  627. }
  628. switch (dMessage)
  629. {
  630. case UI_EVENT_POWER:
  631. #ifdef CONFIG_SUPPORT_MALAYSIA_CERTIFICATION
  632. {
  633. APP_Source_Type_t eSourceType = APP_SOURCE_MAX;
  634. al_uint32 totalServNum = 0;
  635. APP_GUIOBJ_Source_GetCurrSource(&eSourceType);
  636. AL_DB_GetRecordsTotalNum(AL_DBTYPE_DVB_T, AL_RECTYPE_DVBSERVICE, &totalServNum);
  637. if ((APP_SOURCE_DTV == eSourceType) && (totalServNum != 0) &&
  638. (AREA_MALAYSIA ==g_stChannelData.Country) && (APP_RF_TYPE_DVB_T ==g_stChannelData.TV_Connection))
  639. {
  640. g_PowerOnDurRescan = 0;
  641. g_isStandyByRescan = 1;
  642. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_DVB, APP_GLOBAL_EVENT_RESCAN|PASS_TO_SYSAPP, 0);
  643. Cmd_SetPanelBacklightPower(0);
  644. Cmd_SetPanelPower(FALSE);
  645. APP_Video_SetMute(TRUE, FALSE, APP_MUTE_MODE_NO_SIGNALE, APP_SOURCE_MAX);
  646. APP_Audio_SetMute(TRUE, FALSE, APP_MUTE_MODE_STATEMAX, APP_SOURCE_MAX);
  647. do
  648. {
  649. GL_TaskSleep(5000);
  650. }while (AL_CS_IsStopFinish() == al_false);
  651. g_isStandyByRescan = 0;
  652. if (g_PowerOnDurRescan)
  653. {
  654. return MAIN_APP_SUCCESS;
  655. }
  656. }
  657. }
  658. #endif
  659. #ifdef CONFIG_BT_RDA5856
  660. APP_BT_DisConnect_CurrentBT();
  661. #endif
  662. #ifdef CONFIG_SUPPORT_INDONESIA_EWS
  663. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_DVB, DVB_GUIOBJ_EWS_AWAS))
  664. {
  665. printf("[%s,%d]:dParam = %d\n",__FUNCTION__,__LINE__,dParam);
  666. if (dParam == AL_POWER_STATE_OFF)
  667. {
  668. //do nothing
  669. }
  670. else
  671. {
  672. return MAIN_APP_SUCCESS;
  673. }
  674. }
  675. #endif
  676. #ifdef SUPPORT_WAKEUP_TIMER_IN_STANDBY
  677. if (APP_WAKEUP_GetBootFlag() == TRUE)
  678. {
  679. #ifdef AC_ON_AUTO_GET_TIME
  680. if (g_fBackgroundGetTime == TRUE)
  681. {
  682. g_fBackgroundGetTime = FALSE;
  683. }
  684. #endif
  685. g_fRecorderNeedEntryStandby = FALSE;
  686. /*< for CI+ Module */
  687. #ifdef CONFIG_SUPPORT_PVR
  688. if (MID_RecorderIsCurRecording() == DRV_SUCCESS)
  689. {
  690. mainapp_printf("REC Mode Chang to MID_REC_MODE_MANUAL\n\n\n");
  691. MID_RecorderModeChange(MID_REC_MODE_MANUAL);
  692. }
  693. #endif
  694. /*< light backlight */
  695. APP_WAKEUP_RealPowerUp();
  696. return MAIN_APP_SUCCESS;
  697. }
  698. else
  699. #endif
  700. {
  701. #ifdef CHECK_USB_FOR_SLEEP_AND_STANDBY
  702. /*
  703. * if the POWER event is from handset, check usb status for schedruler rec
  704. */
  705. if (APP_IsUIMessageType())
  706. {
  707. USB_PvrSt_t USB_ST = USB_MSG_SUCCESS;
  708. UINT32 dActiveSysApp = 0;
  709. USB_ST = APP_CheckUSBStatus();
  710. if (MAINAPP_GetActiveSystemAppIndex(&dActiveSysApp) == MAIN_APP_SUCCESS)
  711. {
  712. UINT32 u32PopMsgName = POPMSG_PROMPT_NO_PROG;
  713. #ifdef CONFIG_MEDIA_ENABLE
  714. UINT32 u32MMPopName = FILE_POP_PLAYBACK_NONE;
  715. if (SYS_APP_FILE_PLAYER == dActiveSysApp)
  716. {
  717. u32MMPopName = MM_PopMsg_GetCurrentPopup();
  718. }
  719. else
  720. #endif
  721. if ((SYS_APP_ATV== dActiveSysApp)
  722. || (SYS_APP_DVB== dActiveSysApp))
  723. {
  724. APP_GUIOBJ_PopMsg_GetMsgDialogType(&u32PopMsgName);
  725. }
  726. if ((u32PopMsgName != POPMSG_CONFIRM_INSERT_USB)
  727. && (u32PopMsgName != POPMSG_CONFIRM_INVALID_USB)
  728. #ifdef CONFIG_MEDIA_ENABLE
  729. && (u32MMPopName != FILE_POP_PVR_INSERT_USB_CONFIRM)
  730. && (u32MMPopName != FILE_POP_PVR_INVALID_USB_CONFIRM)
  731. #endif
  732. )
  733. {
  734. switch(USB_ST)
  735. {
  736. case USB_MSG_SUCCESS:
  737. break;
  738. case USB_MSG_FAIL_NO_STORAGE:
  739. SYSAPP_IF_SendGlobalEventWithIndex(dActiveSysApp, APP_GLOBAL_EVENT_PVR_INSERT_USB_CONFIRM|PASS_TO_SYSAPP, 0);
  740. return MAIN_APP_SUCCESS;
  741. default:
  742. SYSAPP_IF_SendGlobalEventWithIndex(dActiveSysApp, APP_GLOBAL_EVENT_PVR_INVALID_USB_CONFIRM|PASS_TO_SYSAPP, 0);
  743. return MAIN_APP_SUCCESS;
  744. }
  745. }
  746. }
  747. }
  748. #endif
  749. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER, 0,
  750. sizeof(APP_SETTING_FactoryUser_t), &(g_stFactoryUserData));
  751. if (g_stFactoryUserData.n_FactSet_BurningMode == 1)
  752. {
  753. return MAIN_APP_SUCCESS;
  754. }
  755. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO, 0,
  756. sizeof(APP_SETTING_UserInfo_t), &(g_stUserInfoData));
  757. #ifdef CONFIG_SUPPORT_PVR
  758. if (
  759. #ifdef CONFIG_MOD_PACK_DTV
  760. (g_stUserInfoData.SourceIndex == APP_SOURCE_DTV || g_stUserInfoData.SourceIndex == APP_SOURCE_RADIO) &&
  761. #endif
  762. MID_RecorderIsCurRecording() == DRV_SUCCESS)
  763. {
  764. MID_REC_MODE MIDRecMode = MID_Recorder_GetRecMode();
  765. if (MID_REC_MODE_MANUAL == MIDRecMode)
  766. {
  767. #ifndef SUPPORT_FREE_RECORD_TIME
  768. //if (!APP_GUIOBJ_DVB_PvrRec_GetDurationTime())
  769. #endif
  770. {
  771. if (APP_GetAskPowerOffInRecording() == TRUE)
  772. {
  773. //for cultravier spec, mantis 0163493
  774. //pop up to ask whether continu recording with panel off when receive POWER KEY
  775. SYSAPP_IF_SendGlobalEventWithIndex(dIndex,
  776. APP_GLOGAL_EVENT_PVR_ASKFORSTANDBY|PASS_TO_SYSAPP, 0);
  777. APP_GUIOBJ_SleepTimer_SetTimeoutPowerOffStatus(FALSE);
  778. return MAIN_APP_SUCCESS;
  779. }
  780. #ifdef SUPPORT_PVR_RECORD_CONFLICT_WITH_SLEEPTIME
  781. else if (APP_GUIOBJ_DVB_PvrPOwer_GetMode() != SCREENDOWN_MODE)
  782. {
  783. DVBApp_StopRecord();
  784. }
  785. #ifdef SUPPORT_PVR_RECORD_PLAY_CURRENTRECORD
  786. if (DVBAPP_Pvr_GetRECPlayFlag() == TRUE)
  787. {
  788. DVBApp_StopTimeshift(FALSE);
  789. }
  790. #endif
  791. APP_GUIOBJ_DVB_PvrPOwer_ResetMode();
  792. #endif
  793. }
  794. }
  795. else if((MID_REC_MODE_TIMESHIFT_AFTER_REC == MIDRecMode)
  796. && (APP_GetAskPowerOffInRecording() == TRUE))
  797. {
  798. UINT32 u32PopMsgDialogType = POPMSG_PROMPT_NO_PROG;
  799. APP_GUIOBJ_PopMsg_GetMsgDialogType(&u32PopMsgDialogType);
  800. if(!((SYSAPP_GOBJ_GUIObjectExist(SYS_APP_DVB, DVB_GUIOBJ_POPMSG))&&(u32PopMsgDialogType == POPMSG_CONFIRM_PVR_TIMESHIFT_STANDBY)))
  801. {
  802. SYSAPP_IF_SendGlobalEventWithIndex(dIndex,
  803. APP_GLOGAL_EVENT_PVR_TIMESHIFT_STANDBY|PASS_TO_SYSAPP, 0);
  804. }
  805. APP_GUIOBJ_SleepTimer_SetTimeoutPowerOffStatus(FALSE);
  806. return MAIN_APP_SUCCESS;
  807. }
  808. else
  809. {
  810. Cmd_SetPanelBacklightPower(0);
  811. Cmd_SetPanelPower(FALSE);
  812. APP_Video_SetMute(TRUE, FALSE, APP_MUTE_MODE_NO_SIGNALE, APP_SOURCE_MAX);
  813. APP_Audio_SetMute(TRUE, FALSE, APP_MUTE_MODE_STATEMAX, APP_SOURCE_MAX);
  814. DVBApp_StopTimeshift(TRUE);
  815. }
  816. }
  817. APP_SetAskPowerOffInRecording(TRUE);
  818. /*< check if enter panel off mode -- recording or recorder timer is less than 2 minute */
  819. if (APP_WAKEUP_Recorder_CheckPanelOffMode() == TRUE)
  820. {
  821. mainapp_printf(" UI_EVENT_POWER receive and enter panel off mode.\n");
  822. APP_GUIOBJ_SleepTimer_SetTimeoutPowerOffStatus(FALSE);
  823. return MAIN_APP_SUCCESS;
  824. }
  825. #endif
  826. mainapp_printf(" UI_EVENT_POWER received.\n");
  827. #ifdef CONFIG_AUTO_USB_STORE_IRSEQ
  828. extern int AUTO_IF_Stop(void);
  829. AUTO_IF_Stop();
  830. #endif
  831. #ifdef SUPPORT_WAKEUP_TIMER_IN_STANDBY
  832. #ifdef CONFIG_SUPPORT_USB_UPGRADE
  833. #ifndef CONFIG_SUPPORT_MONITOR
  834. extern bool g_bUpgradeForceStandby;
  835. #endif
  836. #endif
  837. if((APP_WAKEUP_CheckTimer() == FALSE)
  838. #ifdef CONFIG_SUPPORT_USB_UPGRADE
  839. #ifndef CONFIG_SUPPORT_MONITOR
  840. || (g_bUpgradeForceStandby == TRUE)
  841. #endif
  842. #endif
  843. )
  844. #endif
  845. {
  846. //zhongbaoxing added to mute the video for mantis 0166639 @20120224
  847. #ifdef CONFIG_SUPPORT_SUBTITLE
  848. if (MAIN_APP_SUCCESS == MAINAPP_GetActiveSystemAppIndex(&dIndex))
  849. {
  850. if (dIndex == SYS_APP_DVB)
  851. {
  852. DVBApp_DataApplicationSwitch(OSD2CTRLMDL_DISABLE|OSD2CTRLMDL_SUB);
  853. }
  854. }
  855. #endif
  856. #ifdef CONFIG_SUPPORT_TTX
  857. if (MAIN_APP_SUCCESS == MAINAPP_GetActiveSystemAppIndex(&dIndex))
  858. {
  859. #ifdef CONFIG_DTV_SUPPORT
  860. if (SYS_APP_DVB == dIndex)
  861. {
  862. #ifdef CONFIG_SUPPORT_TTX
  863. if (SYSAPP_GOBJ_GUIObjectExist(dIndex, DVB_GUIOBJ_TTX))
  864. {
  865. SYSAPP_GOBJ_DestroyGUIObject(dIndex, DVB_GUIOBJ_TTX);
  866. }
  867. #endif
  868. }
  869. #endif
  870. #ifdef CONFIG_ATV_SUPPORT
  871. if(SYS_APP_ATV == dIndex)
  872. {
  873. if (SYSAPP_GOBJ_GUIObjectExist(dIndex, ATV_GUIOBJ_TTX))
  874. {
  875. SYSAPP_GOBJ_DestroyGUIObject(dIndex, ATV_GUIOBJ_TTX);
  876. }
  877. }
  878. #endif
  879. }
  880. #endif
  881. #ifdef CONFIG_CC_SUPPORT
  882. if (MAIN_APP_SUCCESS == MAINAPP_GetActiveSystemAppIndex(&dIndex))
  883. {
  884. if(dIndex == SYS_APP_ATV)
  885. {
  886. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_ATV, ATV_GUIOBJ_CC))
  887. {
  888. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_ATV, ATV_GUIOBJ_CC);
  889. }
  890. }
  891. }
  892. #endif
  893. #ifdef SUPPORT_CEC_TV
  894. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FEATURE, 0,
  895. sizeof(APP_SETTING_Feature_t), &(g_stFeatureData));
  896. if (( APP_SWITCH_ON == g_stFeatureData.Enable_HDMILink)
  897. &&(APP_SWITCH_ON == g_stFeatureData.HDMI_AutoStandby))
  898. {
  899. if (CECTV_GetCECEnable()==CECTV_ENABLE)
  900. {
  901. //CECTV_SendCmd(CECTV_SINGLE_ACT_CMD_STANDBY, 0);
  902. // use queue maybe power off first do, and no send standby cmd, so call func directly
  903. _Stop();
  904. CECTV_SetCECTaskStatus(CEC_TASK_Standby);
  905. /*mainapp_printf("[%s]:Waiting for CECTV_SINGLE_ACT_CMD_STANDBY Send Complete !!!!!\n\n", __FUNCTION__);
  906. UINT8 i=0;
  907. while(CECTV_GetCECTaskStatus()!=CEC_TASK_Standby)//Waiting for CEC Message Send complete
  908. {
  909. i++;
  910. GL_TaskSleep(10);
  911. if (i > 50)
  912. {
  913. break;
  914. }
  915. }*/
  916. }
  917. }
  918. #endif
  919. #ifdef CONFIG_SUPPORT_USB_MCAST
  920. if (MAIN_APP_SUCCESS == MAINAPP_GetActiveSystemAppIndex(&dIndex))
  921. {
  922. #ifdef CONFIG_SUPPORT_NETAPP
  923. if(dIndex == SYS_APP_NETWORK)
  924. {
  925. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_USB_MCAST_PAGE))
  926. {
  927. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_USB_MCAST_PAGE);
  928. }
  929. }
  930. #endif
  931. }
  932. #endif
  933. #ifdef CONFIG_BLUETOOTH_SUPPORT
  934. Al_Bluetooth_Disable();
  935. GL_TaskSleep(50);
  936. Al_Bluetooth_Destory();
  937. #endif
  938. Cmd_gpio_WriteOnLevel(GPIO_AUDIO_CTL);
  939. Cmd_gpio_WriteOffLevel(GPIO_12V_EN);
  940. #if defined(CONFIG_DTV_SUPPORT) || defined(CONFIG_ATV_SUPPORT)
  941. /* power down when scan, must stop scan thread first
  942. * Note: when return from AL_CS_Stop(), is it already stop?
  943. */
  944. if (AL_CS_IsStopFinish() == al_false)
  945. {
  946. AL_CS_Stop();
  947. do{
  948. GL_TaskSleep(20);
  949. }while(AL_CS_IsStopFinish() == al_false);
  950. //#ifndef CONFIG_ISDB_SYSTEM
  951. UINT32 dIndex;
  952. MAINAPP_GetActiveSystemAppIndex(&dIndex);
  953. if (SYSAPP_GOBJ_GUIObjectExist(dIndex, APP_GUIOBJ_INITINSTALL))
  954. {
  955. SYSAPP_GOBJ_DestroyGUIObject(dIndex, APP_GUIOBJ_INITINSTALL);
  956. #ifdef SUPPORT_LCN
  957. AL_DB_EDBType_t eNetType = APP_DVB_Playback_GetCurrentNetType();
  958. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_SYSINFO, 0,
  959. sizeof(APP_SETTING_SystemInfo_t), &(g_stSysInfoData));
  960. #ifdef SUPPORT_DVBS_LCN
  961. if (g_stSysInfoData.LcnOnOff == LCN_ON && (eNetType == AL_DBTYPE_DVB_T || eNetType == AL_DBTYPE_DVB_C|| eNetType == AL_DBTYPE_DVB_S))
  962. #else
  963. if (g_stSysInfoData.LcnOnOff == LCN_ON && (eNetType == AL_DBTYPE_DVB_T || eNetType == AL_DBTYPE_DVB_C))
  964. #endif
  965. {
  966. DBLCNConfInfo_t *pLcnConf = AL_LCN_GetLCNConfChannel();
  967. LCN_PreJudgeLCN();
  968. LCN_QueryLCNConflict(pLcnConf);
  969. if (pLcnConf->ConfCount > 0)
  970. {
  971. LCN_AutoAssignConflictLCN();
  972. }
  973. LCN_PostJudgeLCN();
  974. }
  975. #endif
  976. #ifdef CONFIG_DTV_SUPPORT
  977. extern void APP_DVB_ChannelOrderChecking(void);
  978. APP_DVB_ChannelOrderChecking();
  979. #endif
  980. }
  981. //#endif
  982. }
  983. #endif
  984. AL_Power_SetPowerState(dParam, eSourceType);
  985. /* g_stUserInfoData.PowerStatus = APP_SWITCH_OFF; // power off
  986. AL_Setting_Write(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO,
  987. ITEM_OFFSET(APP_SETTING_UserInfo_t, PowerStatus),
  988. sizeof(g_stUserInfoData.PowerStatus), &(g_stUserInfoData.PowerStatus));
  989. AL_Setting_Store(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO,
  990. ITEM_OFFSET(APP_SETTING_UserInfo_t, PowerStatus), sizeof(g_stUserInfoData.PowerStatus));*/
  991. #ifdef TEAC_SYSTEMINFO_SUPPORT
  992. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP,0,
  993. sizeof(APP_SETTING_Setup_t), &(g_stSetupData));
  994. usedtime = GL_GetRtc32()/1000 - currtime;
  995. g_stSetupData.PanelTime += usedtime;
  996. AL_Setting_Write(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP,
  997. ITEM_OFFSET(APP_SETTING_Setup_t, PanelTime),
  998. sizeof(g_stSetupData.PanelTime),&(g_stSetupData.PanelTime));
  999. AL_Setting_Store(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP, 0,
  1000. sizeof(APP_SETTING_Setup_t));
  1001. APP_GUIOBJ_Source_GetCurrSource(&eCurrSourType);
  1002. if(eCurrSourType == APP_SOURCE_DVD)
  1003. {
  1004. usedtime = (GL_GetRtc32() - DVDcurrtime)/1000;
  1005. g_stSetupData.DVDTime += usedtime;
  1006. AL_Setting_Write(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP,
  1007. ITEM_OFFSET(APP_SETTING_Setup_t, DVDTime),
  1008. sizeof(g_stSetupData.DVDTime),&(g_stSetupData.DVDTime));
  1009. AL_Setting_Store(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP, 0,
  1010. sizeof(APP_SETTING_Setup_t));
  1011. }
  1012. #endif
  1013. #ifdef CONFIG_SUPPORT_SYSTEM_LIFETIME
  1014. MAINAPP_UpdateSystemLifeTimeToFlash(FALSE);
  1015. #endif
  1016. #ifdef AC_ON_AUTO_GET_TIME
  1017. if (g_fBackgroundGetTime == TRUE)
  1018. {
  1019. /* keep the latest source if get time over */
  1020. g_fBackgroundGetTime = FALSE;
  1021. APP_Source_Type_t SourceIndex;
  1022. SourceIndex = APP_GUIOBJ_Source_GetStandbySource();
  1023. g_stUserInfoData.SourceIndex = SourceIndex;
  1024. AL_Setting_Write(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO,
  1025. ITEM_OFFSET(APP_SETTING_UserInfo_t, SourceIndex),
  1026. sizeof(g_stUserInfoData.SourceIndex),&(g_stUserInfoData.SourceIndex));
  1027. AL_Setting_Store(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO,
  1028. ITEM_OFFSET(APP_SETTING_UserInfo_t, SourceIndex),
  1029. sizeof(g_stUserInfoData.SourceIndex));
  1030. }
  1031. #endif
  1032. #ifdef CONFIG_SUPPORT_MIRACAST
  1033. WriteP2pConfigToFlash();
  1034. #endif
  1035. MAINAPP_FinalizeFlow(dParam);
  1036. }
  1037. }
  1038. break;
  1039. case UI_EVENT_MUTE:
  1040. if (MAINAPP_GetActiveSystemAppIndex(&dIndex) == MAIN_APP_SUCCESS)
  1041. {
  1042. SYSAPP_IF_SendGlobalEventWithIndex(dIndex,(dMessage | PASS_TO_SYSAPP), dParam);
  1043. }
  1044. break;
  1045. case UI_EVENT_SOURCE:
  1046. mainapp_printf("[%s]: UI_EVENT_SOURCE!!!!!\n\n", __FUNCTION__);
  1047. break;
  1048. #ifdef SUPPORT_USB_UPGRADE_LONG_PRESS_KEYPAD_POWER
  1049. case UI_EVENT_KEYPAD_POWER_UPGRADE:
  1050. if (MAINAPP_GetActiveSystemAppIndex(&dIndex) == MAIN_APP_SUCCESS)
  1051. {
  1052. dMessage = APP_GLOBAL_EVENT_USB_UPGRADE | PASS_TO_SYSAPP;
  1053. SYSAPP_IF_SendGlobalEventWithIndex(dIndex, dMessage, 0); // 1:EraseAll,0:not EraseAll
  1054. g_CheckUpgrade = TRUE;
  1055. }
  1056. break;
  1057. #endif
  1058. #ifdef CONFIG_SUPPORT_PVR
  1059. case APP_GLOGAL_EVENT_PVR_TIEMRREC_CHECKSTANDBY:
  1060. APP_WAKEUP_CompleteNotify();
  1061. break;
  1062. #endif
  1063. /* add by qinhe for 64M D(T+C)+M */
  1064. #ifdef CONFIG_ENABLE_UMF_MODULES
  1065. case APP_GLOBAL_EVENT_FINALIZE_SYSAPP:
  1066. {
  1067. #ifdef CONFIG_MEDIA_ENABLE
  1068. UINT8 bState = 0xff;
  1069. UINT16 TryTimes = 100;
  1070. int RetValue = SYSTEM_APP_ERROR_CODE_MAX;
  1071. if (((dParam == SYS_APP_FILE_PLAYER) && !umf_checkModuleLoaded(UMFMOD_MEDIA))
  1072. #ifdef CONFIG_MOD_PACK_ATV
  1073. || ((dParam == SYS_APP_ATV) && !umf_checkModuleLoaded(UMFMOD_ATV))
  1074. #endif
  1075. #ifdef CONFIG_MOD_PACK_DTV
  1076. || ((dParam == SYS_APP_DVB) && (eSourceType != APP_SOURCE_MEDIA && eSourceType != APP_SOURCE_MEDIA1))//change source from DTV to None MEDIA not need unload mod
  1077. || ((dParam == SYS_APP_DVB) && !umf_checkModuleLoaded(UMFMOD_DTV))
  1078. #endif
  1079. )
  1080. {
  1081. break;
  1082. }
  1083. SYSAPP_IF_GetSysAppStateByIndex(dParam, &bState);
  1084. while (bState != SYSTEM_IDLE && TryTimes > 0)
  1085. {
  1086. GL_TaskSleep(5);
  1087. SYSAPP_IF_GetSysAppStateByIndex(dParam, &bState);
  1088. TryTimes--;
  1089. }
  1090. MAINAPP_FinalizeSystemApp(dParam);
  1091. #ifdef CONFIG_MOD_PACK_DTV
  1092. if ((dParam == SYS_APP_ATV) && (eSourceType == APP_SOURCE_MEDIA || eSourceType == APP_SOURCE_MEDIA1))//change sysapp from ATV to Media
  1093. {
  1094. MAINAPP_FinalizeSystemApp(SYS_APP_DVB);
  1095. }
  1096. #endif
  1097. TryTimes = 100;
  1098. RetValue = SYSAPP_IF_GetSystemAppQueueHandle(dParam, NULL);
  1099. while (RetValue != SYSTEM_APP_DATA_ERROR && TryTimes > 0)
  1100. {
  1101. GL_TaskSleep(3);
  1102. RetValue = SYSAPP_IF_GetSystemAppQueueHandle(dParam, NULL);
  1103. TryTimes--;
  1104. }
  1105. if (RetValue != SYSTEM_APP_DATA_ERROR)
  1106. {
  1107. printf("[%s:%d] error unload %d +++++++++++++++++++++++++++++\n",__FUNCTION__,__LINE__,dParam);
  1108. }
  1109. if (dParam == SYS_APP_FILE_PLAYER)
  1110. {
  1111. if (1 == umf_checkModuleLoaded(UMFMOD_FFMPEG))
  1112. {
  1113. umf_unloadModule(UMFMOD_FFMPEG);
  1114. #ifdef CONFIG_RUNAV_USE_RESERVE_MEMORY
  1115. extern void av_mmap_uninit(void);
  1116. av_mmap_uninit();
  1117. #endif
  1118. }
  1119. if (RetValue == SYSTEM_APP_DATA_ERROR)
  1120. {
  1121. umf_unloadModule(UMFMOD_MEDIA);
  1122. }
  1123. else
  1124. {
  1125. printf("[%s:%d] error unload MEDIA +++++++++++++++++++++++++++++\n",__FUNCTION__,__LINE__);
  1126. }
  1127. }
  1128. #endif
  1129. #ifdef CONFIG_ENABLE_UMF_MODULES
  1130. #ifdef CONFIG_MOD_PACK_ATV
  1131. if ((RetValue == SYSTEM_APP_DATA_ERROR) && (dParam == SYS_APP_ATV))
  1132. {
  1133. umf_unloadModule(UMFMOD_ATV);
  1134. #ifdef CONFIG_MOD_PACK_DTV
  1135. if (eSourceType == APP_SOURCE_MEDIA || eSourceType == APP_SOURCE_MEDIA1)//change sysapp from ATV to Media
  1136. {
  1137. TryTimes = 100;
  1138. RetValue = SYSAPP_IF_GetSystemAppQueueHandle(SYS_APP_DVB, NULL);
  1139. while (RetValue != SYSTEM_APP_DATA_ERROR && TryTimes > 0)
  1140. {
  1141. GL_TaskSleep(3);
  1142. RetValue = SYSAPP_IF_GetSystemAppQueueHandle(SYS_APP_DVB, NULL);
  1143. TryTimes--;
  1144. }
  1145. APP_GUIOBJ_DVB_MultAud_FreeData();
  1146. AL_FW_DTVExit();
  1147. umf_unloadModule(UMFMOD_DTV);
  1148. }
  1149. #endif
  1150. }
  1151. #endif
  1152. #endif
  1153. #ifdef CONFIG_ENABLE_UMF_MODULES
  1154. #ifdef CONFIG_MOD_PACK_DTV
  1155. if ((RetValue == SYSTEM_APP_DATA_ERROR) && (dParam == SYS_APP_DVB))
  1156. {
  1157. if (eSourceType == APP_SOURCE_MEDIA || eSourceType == APP_SOURCE_MEDIA1)//change sysapp from DTV to Media
  1158. {
  1159. APP_GUIOBJ_DVB_MultAud_FreeData();
  1160. AL_FW_DTVExit();
  1161. umf_unloadModule(UMFMOD_DTV);
  1162. }
  1163. }
  1164. #endif
  1165. #endif
  1166. }
  1167. break;
  1168. #endif
  1169. case APP_GLOBAL_EVENT_OSD_CAPTURE:
  1170. {
  1171. mainapp_printf("\n\n%s APP_GLOBAL_EVENT_OSD_CAPTURE\n", __FUNCTION__);
  1172. //extern int app_capture_osd_handler(void);
  1173. //app_capture_osd_handler();
  1174. //mainapp_printf("capture OK! \n");
  1175. char szMountName[20];
  1176. char szTempName[20] = {0};
  1177. char fileNameStringtemp[50] = {0};
  1178. char fileNameString[200] = {0};
  1179. struct stat stStat;
  1180. memset(fileNameStringtemp, 0, 50);
  1181. memset(fileNameString, 0, 200);
  1182. memset(szMountName, 0, sizeof(szMountName));
  1183. MID_PartitionList_GetMountName(0, szMountName);
  1184. if(strcmp(szMountName, szTempName))
  1185. {
  1186. sprintf(fileNameStringtemp,"%s/%s", szMountName,"SPOSD");
  1187. if (stat(fileNameStringtemp, &stStat) < 0)
  1188. {
  1189. if (mkdir(fileNameStringtemp, O_WRONLY | O_CREAT) < 0)
  1190. {
  1191. mainapp_printf("%s mkdir failed\n", __FUNCTION__);
  1192. break;
  1193. }
  1194. }
  1195. static int fn = 0;
  1196. fn++;
  1197. sprintf(fileNameString,"%s/%s%d_%.3d%.2d.bmp", fileNameStringtemp,"OSD_",fn,rand()%1000,rand()%100);
  1198. mainapp_printf("\nfileNameString:%s\n",fileNameString);
  1199. OSD_ChangeIntoBitmap(fileNameString);
  1200. mainapp_printf("\n\n%s capture ok!\n", __FUNCTION__);
  1201. }
  1202. break;
  1203. }
  1204. case FW_DB_LOAD_DEFAULT:
  1205. #ifdef CONFIG_DVB_SYSTEM_DVBS_SUPPORT
  1206. if (AL_DBTYPE_DVB_S == APP_DVB_Playback_GetCurrentNetType() && dParam == AL_DBTYPE_DVB_S)
  1207. {
  1208. /* wait for DVB-S becomes acticve */
  1209. while(AL_FW_CheckActiveDBModule(AL_DBTYPE_DVB_S) != al_true);
  1210. DVBApp_LoadCustomerDB(AL_DBTYPE_DVB_S);
  1211. AL_DB_Sync(AL_DBTYPE_DVB_S, al_true);
  1212. }
  1213. #endif
  1214. break;
  1215. default:
  1216. mainapp_printf(" Un-handled UI Eventid: 0x%x.\n", dMessage);
  1217. break;
  1218. }
  1219. return MAIN_APP_SUCCESS;
  1220. }
  1221. #ifdef CONFIG_SUPPORT_MEDIA_AUTO_PLAY
  1222. /******************************************************************************/
  1223. /**
  1224. * @brief Check Folder Path Exist
  1225. * @param char* const Folder_Path : Folder Path
  1226. * @return TRUE : Folder is exist\n
  1227. * FALSE : Folder is not exist
  1228. *
  1229. ******************************************************************************/
  1230. static BOOL FileSystem_Lib_Com_IsFolderExist(char* const Folder_Path)
  1231. {
  1232. if (Folder_Path == NULL)
  1233. {
  1234. mainapp_printf("Folder_Path = NULL\n");
  1235. return FALSE;
  1236. }
  1237. DIR* dir;
  1238. dir = opendir(Folder_Path);
  1239. if (dir == NULL)
  1240. {
  1241. mainapp_printf("Folder Path = %s is not exist!\n", Folder_Path);
  1242. return FALSE;
  1243. }
  1244. if (closedir(dir) != 0)
  1245. {
  1246. mainapp_printf("call closedir fail\n");
  1247. return FALSE;
  1248. }
  1249. dir = NULL;
  1250. return TRUE;
  1251. }
  1252. static UINT16 FileSystem_Lib_Com_GetTotalSupportedPartitionNumber(void)
  1253. {
  1254. int MountedCount = MID_PartitionList_GetMountedCount();
  1255. if (MountedCount > MAX_COM_PARTITION_NUM)
  1256. {
  1257. mainapp_printf("Partition Num = %d is more than %d\n", MountedCount, MAX_COM_PARTITION_NUM);
  1258. MountedCount = MAX_COM_PARTITION_NUM;
  1259. }
  1260. return MountedCount;
  1261. }
  1262. static BOOLEAN MM_AutoPlay_Com_SetFlag(void)
  1263. {
  1264. UINT16 TotalPartition = FileSystem_Lib_Com_GetTotalSupportedPartitionNumber();
  1265. UINT16 i = 0;
  1266. char Name[INTERNAL_COM_DISK_NAME_LEN + 1];
  1267. for (i = 0; i < TotalPartition; i++)
  1268. {
  1269. MID_PartitionList_GetMountName(i, Name);
  1270. memset(PlayComFilePath, 0, MAX_COM_BUF_SIZE);
  1271. snprintf(PlayComFilePath, MAX_COM_BUF_SIZE, "%s/%s", Name, MM_COMMON_AUTO_PLAY);
  1272. mainapp_printf("[%s:%d] FilePath = %s \n", __FUNCTION__, __LINE__, PlayComFilePath);
  1273. if (FileSystem_Lib_Com_IsFolderExist(PlayComFilePath))
  1274. {
  1275. mainapp_printf("[%s:%d]i = [%d] folder exist \n", __FUNCTION__, __LINE__, i);
  1276. return TRUE;
  1277. }
  1278. }
  1279. //mainapp_printf("[%s:%d]: bAutoPlay = %d \n", __FUNCTION__, __LINE__, bAutoPlay);
  1280. return FALSE;
  1281. }
  1282. #endif
  1283. /*****************************************************************************
  1284. ** FUNCTION : _MAINAPP_DaemonEventHandler
  1285. **
  1286. ** DESCRIPTION :
  1287. ** main app daemon event handler
  1288. **
  1289. ** PARAMETERS :
  1290. ** dMessage: daemon message
  1291. ** dParam: daemon message's paramter
  1292. **
  1293. ** RETURN VALUES:
  1294. ** None
  1295. *****************************************************************************/
  1296. void _MAINAPP_DaemonEventHandler(UINT32 dMessage, UINT32 dParam)
  1297. {
  1298. #ifdef CONFIG_NET_SUPPORT
  1299. #ifdef NET_APP_SUPPORT
  1300. UINT8 i;
  1301. UINT8 bFlag = 0;
  1302. char *pcMountName = NULL;
  1303. int iPtnHandle = 0;
  1304. #endif
  1305. #endif
  1306. UINT32 dActiveSysApp = 0;
  1307. int sdPtIdx = -1;
  1308. INT32 iRet = AL_FAILURE;
  1309. #if defined(CONFIG_SUPPORT_USB_AUTO_UPGRADE)
  1310. app_data_keyupgrade_status_e updateCI = APP_DATA_KEYUPGRADE_NOT_UPGRADE;
  1311. app_data_keyupgrade_status_e updateHDCP = APP_DATA_KEYUPGRADE_NOT_UPGRADE;
  1312. #if defined(CONFIG_SUPPORT_AUTO_IMPORTR_FM_PICTUREMODE)
  1313. Clone_t updatePQ = APP_DATA_KEYUPGRADE_NOT_UPGRADE;
  1314. #endif
  1315. UINT32 dKeyparam = 0;
  1316. UINT32 dKeyUpgradeEvent = 0;
  1317. #endif
  1318. #ifdef CONFIG_MOD_PACK_DTV
  1319. APP_Source_Type_t eAPPSrcType = APP_SOURCE_MAX;
  1320. APP_GUIOBJ_Source_GetCurrSource(&eAPPSrcType);
  1321. #endif
  1322. #if defined(CONFIG_NET_ET_SUPPORT) || defined (CONFIG_NET_N32_SUPPORT)
  1323. MainAppUIEventHandlerInfo_t *pstEventInfo = &stUIEventHandlerInfo;
  1324. #endif
  1325. switch (dMessage)
  1326. {
  1327. case DMN_EVENT_BD_VIDEO_DISC_INSERTED:
  1328. case DMN_EVENT_DVD_VIDEO_DISC_INSERTED:
  1329. case DMN_EVENT_VCD_DISC_INSERTED:
  1330. case DMN_EVENT_TEMPTEST_START_USB_DVD:
  1331. break;
  1332. case DMN_EVENT_USB_HDD_ATTACHED:
  1333. case DMN_EVENT_USB_LOADER_ATTACHED:
  1334. case DMN_EVENT_CARD_DEV_ATTACHED:
  1335. case DMN_EVENT_IDE_HDD_ATTACHED:
  1336. case DMN_EVENT_IDE_LOADER_ATTACHED:
  1337. case DMN_EVENT_NAND_ATTACHED:
  1338. {
  1339. #if defined(CONFIG_AUTO_USB_STORE_IRSEQ) && defined(CONFIG_QSD_AUTOIR)
  1340. AUTO_IF_Start(SEQUENTIAL_TEST, 0);
  1341. #endif
  1342. #ifdef SUPPORT_USB_UPGRADE_LONG_PRESS_KEYPAD_POWER
  1343. if(dMessage == DMN_EVENT_USB_HDD_ATTACHED)
  1344. {
  1345. USB_ATTACHED = TRUE;
  1346. }
  1347. #endif
  1348. #ifdef CONFIG_STORE_MSG_TO_USB
  1349. {
  1350. UINT8 isEnablePrintToUSB = 1;
  1351. ioctl(kmfdev, KMF_IOC_PRINTOFILEENABLE, &isEnablePrintToUSB);
  1352. }
  1353. #endif
  1354. iRet = APP_Data_USB_Upgrade_ChecFileAndBuildTime();
  1355. //mainapp_printf("[L%d] DEV_ATTACHED(%d) received.\n", __LINE__,dMessage);
  1356. switch (MAINAPP_GetActiveSystemAppIndex(&dActiveSysApp))
  1357. {
  1358. case MAIN_APP_IN_TRANSITION:
  1359. //mainapp_printf("[L%d] In Transition State, wait and retry.\n",__LINE__);
  1360. _MAINAPP_SetEventInTransition(dMessage, dParam);
  1361. return;
  1362. case MAIN_APP_SUCCESS:
  1363. //mainapp_printf("[L%d] MAIN_APP_SUCCESS!!!\n",__LINE__);
  1364. break;
  1365. default:
  1366. mainapp_printf("[%s %d] In Invalid State\n",__FUNCTION__,__LINE__);
  1367. return;
  1368. }
  1369. _MAINAPP_ClearEventInTransition(dMessage, dParam);
  1370. #if defined(CONFIG_SUPPORT_USB_AUTO_UPGRADE)
  1371. #if defined(CONFIG_CIPLUS_SUPPORT)
  1372. updateCI = APP_Data_CIKey_Upgrade_AutoStart(iRet);
  1373. #endif
  1374. updateHDCP = APP_Data_HDCPKey_Upgrade_AutoStart(iRet);
  1375. dKeyparam = (updateHDCP<<4) | updateCI;
  1376. #if defined(CONFIG_SUPPORT_AUTO_IMPORTR_FM_PICTUREMODE)
  1377. updatePQ = APP_Clone_Move_SystemData_From_USB_To_FlashBackup(FM_PICTUREMODE_DATA);
  1378. if(updatePQ == SC_SUCCESS)
  1379. updatePQ = APP_DATA_KEYUPGRADE_SUCCESS;
  1380. else
  1381. updatePQ = APP_DATA_KEYUPGRADE_NOT_UPGRADE;
  1382. dKeyparam = (updatePQ<<8) | (updateHDCP<<4) | updateCI;
  1383. #endif
  1384. dKeyUpgradeEvent = APP_GLOBAL_EVENT_CIHDCPKEY_RESULT | PASS_TO_SYSAPP;
  1385. SYSAPP_IF_SendGlobalEventWithIndex(dActiveSysApp, dKeyUpgradeEvent, dKeyparam);
  1386. #endif
  1387. #ifdef CONFIG_NET_SUPPORT
  1388. MID_PartitionList_Mount(sdPtIdx, MntModule_Network);
  1389. #ifdef CONFIG_NET_ET_SUPPORT
  1390. _MAINAPP_EtMountHandle(pstEventInfo, dParam);
  1391. #endif
  1392. #ifdef CONFIG_NET_N32_SUPPORT
  1393. _MAINAPP_N32MountHandle(pstEventInfo, dParam);
  1394. #endif
  1395. #endif
  1396. #ifdef CONFIG_NET_SUPPORT
  1397. #ifdef NET_APP_SUPPORT
  1398. pcMountName = (char *)GL_MemAlloc(_SPAL_PARTITION_NAME_MAX_LENGTH);
  1399. memset(pcMountName, 0, _SPAL_PARTITION_NAME_MAX_LENGTH2);
  1400. iPtnHandle = MID_PartitionList_FindItem(dParam);
  1401. if (iPtnHandle == -1)
  1402. {
  1403. mainapp_printf("get ptn handle\n");
  1404. }
  1405. if (MID_PartitionList_GetMountName(iPtnHandle, pcMountName) == NULL)
  1406. {
  1407. mainapp_printf("Get Mount Name\n");
  1408. }
  1409. if (strcmp(pcMountName, stNetConfigStorage.stParName) == 0)
  1410. {
  1411. Net_Cfg_SetDlPath(stNetConfigStorage.stParName);
  1412. }
  1413. if (NULL != pcMountName)
  1414. {
  1415. GL_MemFree(pcMountName);
  1416. }
  1417. if (stNetConfigStorage.u8IsSetNetConfigStorage == 0)
  1418. {
  1419. stNetConfigStorage.u8IsSetNetConfigStorage = 1;
  1420. stNetConfigStorage.u8NetConfigStorage = 0;
  1421. MID_PartitionList_GetMountName((int)stNetConfigStorage.u8NetConfigStorage, stNetConfigStorage.stParName);
  1422. Net_Cfg_SetDlPath(stNetConfigStorage.stParName);
  1423. }
  1424. #endif
  1425. #endif
  1426. #if 0//def CONFIG_SUPPORT_PVR
  1427. int iPtListIdx = -1;
  1428. if (MID_RecorderGetDefaultPartition(&iPtListIdx) != MID_REC_FS_OK)
  1429. {
  1430. /* aps new don't support NTFS fs */
  1431. if (APP_GUIOBJ_DVB_PartitionList_GetFirstFat(&iPtListIdx) == TRUE)
  1432. {
  1433. MID_RecorderSetDefaultPartition(iPtListIdx, MID_REC_PARTITION_SET_FORCE); //set partition 0 for default partition
  1434. }
  1435. }
  1436. #endif
  1437. SYSAPP_IF_SendGlobalEventWithIndex(dActiveSysApp, dMessage, (UINT32)sdPtIdx);
  1438. #ifdef CONFIG_SUPPORT_OTA_UPGRADE
  1439. if(
  1440. #ifdef CONFIG_MOD_PACK_DTV
  1441. eAPPSrcType == APP_SOURCE_DTV &&
  1442. #endif
  1443. TRUE == DVBApp_GetOTAStatus())
  1444. {
  1445. break;
  1446. }
  1447. #endif
  1448. #if (defined(CONFIG_SUPPORT_USB_AUTO_UPGRADE) && defined(CONFIG_CIPLUS_SUPPORT))
  1449. if(g_CheckUpgradeCIPLUS == FALSE)
  1450. {
  1451. #if 0
  1452. if (APP_Data_USB_Upgrade_CIPlus_Mergerom_Get_ValidPath() == AL_SUCCESS)
  1453. {
  1454. APP_CIPlus_AutoInstall_Process(1); //Auto-Install Mergerom : 1, Auto-Install Product key : 0
  1455. g_CheckUpgradeCIPLUS = TRUE;
  1456. break;
  1457. }
  1458. else
  1459. #endif
  1460. #if 0 // TODO: later do this
  1461. if (APP_Data_USB_Upgrade_CIPlus_KeyInstall_Get_ValidPath() == AL_SUCCESS)
  1462. {
  1463. APP_CIPlus_AutoInstall_Process(0); //Auto-Install Mergerom : 1, Auto-Install Product key : 0
  1464. g_CheckUpgradeCIPLUS = TRUE;
  1465. break;
  1466. }
  1467. #endif
  1468. }
  1469. #endif
  1470. #if (defined(SUPPORT_FACTORY_AUTO_TEST)||defined(SUPPORT_FACTORY_AUTO_TEST_MODE2))
  1471. if (APP_Factory_GetAutoTestOnOff() == TRUE)
  1472. {
  1473. Cmd_SetPanelBacklightPower(1);
  1474. }
  1475. #endif
  1476. #ifdef SUPPORT_FACTORY_AUTO_TEST
  1477. if ((APP_Factory_GetAutoTestOnOff() == TRUE)&&(iRet == AL_FAILURE))
  1478. {
  1479. extern void Enable_Debug_Message(UINT32 DBGStatus);
  1480. Enable_Debug_Message(1<<MODULEID_UMF);
  1481. //mainapp_printf("Test Start\n");
  1482. Enable_Debug_Message(0);
  1483. if(AcPowerOnNoRomBinFlag== FALSE)
  1484. AcPowerOnNoRomBinFlag= TRUE;
  1485. }
  1486. #endif
  1487. if(g_CheckUpgrade)
  1488. {
  1489. break;
  1490. }
  1491. if((iRet == AL_SUCCESS)
  1492. #ifdef SUPPORT_WAKEUP_TIMER_IN_STANDBY
  1493. && (APP_WAKEUP_GetBootFlag() == FALSE)
  1494. #endif
  1495. )
  1496. {
  1497. mainapp_printf("[L%d] APP_Data_USB_Upgrade_ChecFileAndBuildTime() Success!!!\n",__LINE__);
  1498. #ifdef SUPPORT_FACTORY_AUTO_TEST
  1499. extern int APP_Factory_GetAutoTestOnOff(void);
  1500. extern int APP_Factory_GetUpgradeandAutoTestFlag(void);
  1501. extern void APP_Factory_SetUpgradeandAutoTestFlag(Boolean Flag);
  1502. if(AcPowerOnNoRomBinFlag == TRUE)
  1503. {
  1504. mainapp_printf("In AutoTest Factory mode\n");
  1505. }
  1506. else if((APP_Factory_GetAutoTestOnOff() == TRUE)&&(APP_Factory_GetUpgradeandAutoTestFlag() == FALSE))
  1507. {
  1508. dMessage = APP_GLOBAL_EVENT_USB_UPGRADE | PASS_TO_SYSAPP;
  1509. gFACTESTResentMessage.dResendMessage = dMessage;
  1510. gFACTESTResentMessage.dResendMessageParm = 0;
  1511. //SYSAPP_IF_SendGlobalEventWithIndex(dActiveSysApp, dMessage, 0); // 1:EraseAll,0:not EraseAll
  1512. //APP_Factory_SetAutoTestOnOff(FALSE);
  1513. //APP_Factory_SetUpgradeandAutoTestFlag(TRUE);
  1514. //g_CheckUpgrade = TRUE;
  1515. }
  1516. else if((APP_Factory_GetAutoTestOnOff() == TRUE)&&(APP_Factory_GetUpgradeandAutoTestFlag() == TRUE))
  1517. {
  1518. mainapp_printf("In AutoTest Factory mode\n");
  1519. }
  1520. else
  1521. {
  1522. #ifndef CONFIG_SUPPORT_USB_AUTO_UPGRADE
  1523. if(FALSE == gUSBUpgradeBinIsSupperBin)
  1524. {
  1525. break;
  1526. }
  1527. #endif
  1528. dMessage = APP_GLOBAL_EVENT_USB_UPGRADE | PASS_TO_SYSAPP;
  1529. SYSAPP_IF_SendGlobalEventWithIndex(dActiveSysApp, dMessage, 0);
  1530. g_CheckUpgrade = TRUE;
  1531. }
  1532. #else
  1533. #ifndef CONFIG_SUPPORT_USB_AUTO_UPGRADE
  1534. if(FALSE == gUSBUpgradeBinIsSupperBin)
  1535. {
  1536. break;
  1537. }
  1538. #endif
  1539. dMessage = APP_GLOBAL_EVENT_USB_UPGRADE | PASS_TO_SYSAPP;
  1540. SYSAPP_IF_SendGlobalEventWithIndex(dActiveSysApp, dMessage, 0);
  1541. g_CheckUpgrade = TRUE;
  1542. #endif
  1543. }
  1544. else
  1545. if(dMessage == DMN_EVENT_USB_HDD_ATTACHED)
  1546. {
  1547. #ifdef N32_GAME_SUPPORT
  1548. UINT8 ret;
  1549. ret = APP_Clone_Game_First_Check();
  1550. if(ret == SC_SUCCESS || ret == SC_ERR_SIZE_NOT_ENOUGH)
  1551. {
  1552. dMessage = APP_GLOBAL_EVENT_GAME_UPGRADE | PASS_TO_SYSAPP;
  1553. SYSAPP_IF_SendGlobalEventWithIndex(dActiveSysApp, dMessage, ret);
  1554. }
  1555. #endif
  1556. }
  1557. #ifdef CONFIG_SUPPORT_MEDIA_AUTO_PLAY
  1558. //BOOLEAN MM_AutoPlay_SetFlag(void);
  1559. if(MM_AutoPlay_Com_SetFlag())
  1560. {
  1561. if (APP_GUIOBJ_Source_GetSourceTransState() == TRUE)
  1562. {
  1563. gb_NeedAutoPlay = TRUE;
  1564. }
  1565. else
  1566. {
  1567. APP_GUIOBJ_Source_SetAppSource(APP_SOURCE_MEDIA);
  1568. }
  1569. }
  1570. #endif
  1571. }
  1572. break;
  1573. case DMN_EVENT_USB_HDD_DETACHED:
  1574. case DMN_EVENT_USB_LOADER_DETACHED:
  1575. case DMN_EVENT_CARD_DEV_DETACHED:
  1576. case DMN_EVENT_IDE_HDD_DETACHED:
  1577. case DMN_EVENT_IDE_LOADER_DETACHED:
  1578. case DMN_EVENT_NAND_DETACHED:
  1579. mainapp_printf(" DEV_DETACHED(%d) received.\n", dMessage);
  1580. switch (MAINAPP_GetActiveSystemAppIndex(&dActiveSysApp))
  1581. {
  1582. case MAIN_APP_IN_TRANSITION:
  1583. //mainapp_printf("[L%d] In Transition State, wait and retry.\n",__LINE__);
  1584. _MAINAPP_SetEventInTransition(dMessage, dParam);
  1585. return;
  1586. case MAIN_APP_SUCCESS:
  1587. //mainapp_printf("[L%d] MAIN_APP_SUCCESS!!!\n",__LINE__);
  1588. break;
  1589. default:
  1590. mainapp_printf("[%s %d] In Invalid State\n",__FUNCTION__,__LINE__);
  1591. return;
  1592. }
  1593. _MAINAPP_ClearEventInTransition(dMessage, dParam);
  1594. if(dMessage == DMN_EVENT_USB_HDD_DETACHED)
  1595. {
  1596. g_CheckUpgrade = FALSE;
  1597. #ifdef SUPPORT_USB_UPGRADE_LONG_PRESS_KEYPAD_POWER
  1598. USB_ATTACHED = FALSE;
  1599. #endif
  1600. }
  1601. #ifdef CONFIG_CONFIRM_AUTO_UPGRADE
  1602. UINT32 u32PopMsgName;
  1603. APP_GUIOBJ_PopMsg_GetMsgDialogType(&u32PopMsgName);
  1604. if(u32PopMsgName == POPMSG_CONFIRM_START_AUTO_UPGRADE)
  1605. {
  1606. #ifdef CONFIG_ATV_SUPPORT
  1607. if(SYS_APP_ATV == dActiveSysApp)
  1608. {
  1609. ATVApp_ClosePopup(POPMSG_CONFIRM_START_AUTO_UPGRADE, UI_EVENT_NULL);
  1610. }
  1611. #endif
  1612. #ifdef CONFIG_DTV_SUPPORT
  1613. if(SYS_APP_DVB== dActiveSysApp)
  1614. {
  1615. DVBApp_ClosePopup(POPMSG_CONFIRM_START_AUTO_UPGRADE, UI_EVENT_NULL);
  1616. }
  1617. #endif
  1618. }
  1619. #endif
  1620. #ifdef CONFIG_NET_ET_SUPPORT
  1621. _MAINAPP_EtUnmountHandle(pstEventInfo, dParam);
  1622. #endif
  1623. #ifdef CONFIG_NET_N32_SUPPORT
  1624. _MAINAPP_N32UnmountHandle(pstEventInfo, dParam);
  1625. #endif
  1626. #ifdef CONFIG_NET_SUPPORT
  1627. #ifdef NET_APP_SUPPORT
  1628. #if defined(CONFIG_DVB_SYSTEM_DVBC_SUPPORT)
  1629. Dvb_GUIOBJ_Networking_PartitionInfoUpdate();
  1630. #endif
  1631. pcMountName = (char *)GL_MemAlloc(_SPAL_PARTITION_NAME_MAX_LENGTH);
  1632. memset(pcMountName, 0, _SPAL_PARTITION_NAME_MAX_LENGTH2);
  1633. for (i = 0; i < MID_PartitionList_GetMountedCount(); i++)
  1634. {
  1635. MID_PartitionList_GetMountName(i, pcMountName);
  1636. if (strcmp(pcMountName, stNetConfigStorage.stParName) == 0)
  1637. {
  1638. bFlag++;
  1639. }
  1640. }
  1641. if (NULL != pcMountName)
  1642. {
  1643. GL_MemFree(pcMountName);
  1644. }
  1645. if (bFlag == 0)
  1646. {
  1647. if (MID_PartitionList_GetMountedCount() == 0)
  1648. {
  1649. memset(stNetConfigStorage.stParName, 0, sizeof(char)*_SPAL_PARTITION_NAME_MAX_LENGTH);
  1650. stNetConfigStorage.u8IsSetNetConfigStorage = 0;
  1651. stNetConfigStorage.u8NetConfigStorage = 0;
  1652. }
  1653. else
  1654. {
  1655. stNetConfigStorage.u8IsSetNetConfigStorage = 1;
  1656. stNetConfigStorage.u8NetConfigStorage = 0;
  1657. MID_PartitionList_GetMountName((int)stNetConfigStorage.u8NetConfigStorage, stNetConfigStorage.stParName);
  1658. }
  1659. }
  1660. Net_Cfg_SetDlPath(stNetConfigStorage.stParName);
  1661. #endif
  1662. #endif
  1663. SYSAPP_IF_SendGlobalEventWithIndex(dActiveSysApp, dMessage, (UINT32)sdPtIdx);
  1664. break;
  1665. case DMN_EVENT_SCREEN_SAVER_ON:
  1666. mainapp_printf(" DMN_EVENT_SCREEN_SAVER_ON received.\n");
  1667. break;
  1668. case DMN_EVENT_SCREEN_SAVER_OFF:
  1669. mainapp_printf(" DMN_EVENT_SCREEN_SAVER_OFF received.\n");
  1670. break;
  1671. #ifdef CONFIG_NET_SUPPORT
  1672. case DMN_EVENT_NET_LINKER_DETACHED:
  1673. mainapp_printf("DMN_EVENT_NET_LINKER_DETACHED received.\n");
  1674. #if defined( SAMBA_SUPPORT ) && defined( SUPPORT_ETHERNET )
  1675. DVB_Network_UnMountSmbFs();
  1676. #endif
  1677. pstEventInfo->stNetDriveCtrlInfo.eState = NET_DRIVE_STATE_SHUT_DOWN;
  1678. if (MAINAPP_GetActiveSystemAppIndex(&dActiveSysApp) == MAIN_APP_SUCCESS)
  1679. {
  1680. SYSAPP_IF_SendGlobalEventWithIndex(dActiveSysApp, dMessage, dParam);
  1681. }
  1682. break;
  1683. case DMN_EVENT_NET_LINKER_ATTACHED:
  1684. mainapp_printf("DMN_EVENT_NET_LINKER_ATTACHED received.\n");
  1685. #if defined( SAMBA_SUPPORT ) && defined( SUPPORT_ETHERNET )
  1686. DVB_Network_MountSmbFs();
  1687. #endif
  1688. pstEventInfo->stNetDriveCtrlInfo.eState = NET_DRIVE_STATE_BOOTUP;
  1689. if (MAINAPP_GetActiveSystemAppIndex(&dActiveSysApp) == MAIN_APP_SUCCESS)
  1690. {
  1691. SYSAPP_IF_SendGlobalEventWithIndex(dActiveSysApp, dMessage, dParam);
  1692. }
  1693. break;
  1694. #endif
  1695. case DMN_EVENT_MAINAPP_STARTS:
  1696. mainapp_printf(" DMN_EVENT_MAINAPP_STARTS received.\n");
  1697. #ifdef CONFIG_NET_SUPPORT
  1698. MAINAPP_NetAPInit();
  1699. #endif
  1700. break;
  1701. default:
  1702. mainapp_printf(" Un-handled Daemon Eventid: 0x%x.\n", dMessage);
  1703. break;
  1704. }
  1705. return;
  1706. }
  1707. /*****************************************************************************
  1708. ** FUNCTION : MAINAPP_OnTimerUpdate
  1709. **
  1710. ** DESCRIPTION :
  1711. ** main app 100ms message handler
  1712. **
  1713. ** PARAMETERS :
  1714. ** None
  1715. **
  1716. ** RETURN VALUES:
  1717. ** None
  1718. *****************************************************************************/
  1719. int MAINAPP_OnTimerUpdate(void)
  1720. {
  1721. UINT32 dIndex = 0;
  1722. /*mark for S2tek */
  1723. #if defined CONFIG_ENABLE_UMF_MODULES && defined CONFIG_DTV_SUPPORT && defined CONFIG_SUPPORT_DEBUG_MESSAGE
  1724. if(0){
  1725. static UINT32 TimeCount = 0;
  1726. TimeCount ++;
  1727. if (TimeCount >= 50)
  1728. {
  1729. TimeCount = 0;
  1730. #if (defined CONFIG_SUPPORT_TTX) && (defined CONFIG_SUPPORT_SUBTITLE)
  1731. #if (defined CONFIG_MOD_PACK_SUB) || (defined CONFIG_MOD_PACK_TT)
  1732. if (umf_checkModuleLoaded(UMFMOD_TT)==1 && umf_checkModuleLoaded(UMFMOD_SUB)==1)
  1733. #endif
  1734. {
  1735. #if (defined CONFIG_MOD_PACK_SUB) || (defined CONFIG_MOD_PACK_TT)
  1736. extern void MMap_meminfo(unsigned int *total_size, unsigned int *max_size, unsigned int *used_size);
  1737. unsigned int total_size = 0;
  1738. unsigned int used_size = 0;
  1739. MMap_meminfo(&total_size, NULL, &used_size);
  1740. printf("TT/Subtitle reserve memory info: total_size = %d, used_size : %d\n", total_size, used_size);
  1741. #endif
  1742. //extern UINT32 pagebuff;
  1743. //extern UINT32 SubTotalSize;
  1744. //printf("pagebuff ======== %d, SubTotalSize ======== %d\n",pagebuff,SubTotalSize);
  1745. }
  1746. #endif
  1747. #ifdef CONFIG_MOD_PACK_DTV
  1748. if (umf_checkModuleLoaded(UMFMOD_DTV)==1)
  1749. #endif
  1750. {
  1751. #ifdef CONFIG_EPG_USE_RESERVE_MM
  1752. extern void EPG_MM_meminfo(unsigned int *total_size, unsigned int *max_size, unsigned int *used_size);
  1753. unsigned int total_size = 0;
  1754. unsigned int used_size = 0;
  1755. EPG_MM_meminfo(&total_size, NULL, &used_size);
  1756. printf("EPG reserve memory info: total_size = %d, used_size : %d\n", total_size, used_size);
  1757. #endif
  1758. //extern UINT32 EpgTotalSize;
  1759. //extern UINT32 EpgDataSize;
  1760. //printf("EpgTotalSize ====== %d, EpgDataSize: %d\n",EpgTotalSize, EpgDataSize);
  1761. }
  1762. system("cat /proc/meminfo");
  1763. }
  1764. }
  1765. #endif
  1766. #ifdef SUPPORT_FACTORY_AUTO_TEST
  1767. if((APP_Factory_GetAutoTestOnOff() == TRUE) && (APP_Factory_GetUpgradeandAutoTestFlag() == FALSE))
  1768. {
  1769. static UINT8 CheckCount = 0;
  1770. //100ms * 50
  1771. CheckCount++;
  1772. CheckCount %= 255;
  1773. if(CheckCount >= 50 && gFACTESTResentMessage.dResendMessage != 0)
  1774. {
  1775. APP_Factory_SetAutoTestOnOff(FALSE);
  1776. APP_Factory_SetUpgradeandAutoTestFlag(TRUE);
  1777. MSG_FILTER_DispatchMessage(gFACTESTResentMessage.dResendMessage, gFACTESTResentMessage.dResendMessageParm);
  1778. g_CheckUpgrade = TRUE;
  1779. gFACTESTResentMessage.dResendMessage = 0;
  1780. gFACTESTResentMessage.dResendMessageParm= 0;
  1781. }
  1782. }
  1783. #endif
  1784. _MAINAPP_ResendEventInTransition();
  1785. MAINAPP_ResendEventTableInTransition();
  1786. AL_Time_Timeout();
  1787. if (APP_SleepTimer_GetDetectFlag())
  1788. {
  1789. if(!(APP_MenuMgr_Exist_Factory_Menu()))
  1790. {
  1791. if (APP_GUIOBJ_SleepTimer_Timeout())
  1792. {
  1793. #ifdef CONFIG_ATV_SUPPORT
  1794. if(APP_GUIOBJ_SOURCE_IsATVSource() && SYSAPP_GOBJ_GUIObjectExist(SYS_APP_ATV, APP_GUIOBJ_SLEEP_INFO))
  1795. {
  1796. APP_GUIOBJ_SleepTimer_SetSleepPopConflict(TRUE);
  1797. }
  1798. #endif
  1799. MAINAPP_GetActiveSystemAppIndex(&dIndex);
  1800. SYSAPP_IF_SendGlobalEventWithIndex(dIndex,
  1801. (APP_GLOBAL_EVENT_SLEEP_TIMER_INFO | PASS_TO_SYSAPP), APP_POWERDOWN_SLEEP);
  1802. APP_SleepTimer_SetDetectFlag(FALSE);
  1803. }
  1804. }
  1805. }
  1806. if (APP_AutoPowerOff_Timeout())
  1807. {
  1808. MAINAPP_GetActiveSystemAppIndex(&dIndex);
  1809. if (SYSAPP_GOBJ_GUIObjectExist(dIndex, APP_GUIOBJ_SLEEP_INFO) && (APP_GUIOBJ_SleepTimer_GetStandbyPopConflict() == FALSE))
  1810. {
  1811. APP_GUIOBJ_SleepTimer_SetStandbyPopConflict(TRUE);
  1812. }
  1813. printf("[%s,%d]:send APP_GLOBAL_EVENT_SLEEP_TIMER_INFO msg!!!!!\n",__FUNCTION__,__LINE__);
  1814. SYSAPP_IF_SendGlobalEventWithIndex(dIndex,
  1815. (APP_GLOBAL_EVENT_SLEEP_TIMER_INFO | PASS_TO_SYSAPP), APP_POWERDOWN_AUTOPOWEROFF);
  1816. #if 0
  1817. while(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_DVB, APP_GUIOBJ_SLEEP_INFO))
  1818. {
  1819. MAINAPP_SendGlobalEvent(UI_EVENT_POWER, AL_POWER_STATE_OFF);
  1820. }
  1821. #endif
  1822. }
  1823. #ifdef TEAC_SYSTEMINFO_SUPPORT
  1824. PanelCountTimer ++;
  1825. if(PanelCountTimer == 36000)
  1826. {
  1827. currtime = GL_GetRtc32()/1000;
  1828. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP,0,
  1829. sizeof(APP_SETTING_Setup_t), &(g_stSetupData));
  1830. g_stSetupData.PanelTime += 3600;
  1831. AL_Setting_Write(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP,
  1832. ITEM_OFFSET(APP_SETTING_Setup_t, PanelTime),
  1833. sizeof(g_stSetupData.PanelTime),&(g_stSetupData.PanelTime));
  1834. AL_Setting_Store(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP, 0,
  1835. sizeof(APP_SETTING_Setup_t));
  1836. PanelCountTimer = 0;
  1837. }
  1838. ePrevSourType = eCurrSourType;
  1839. APP_GUIOBJ_Source_GetCurrSource(&eCurrSourType);
  1840. if((ePrevSourType != APP_SOURCE_DVD)&&(eCurrSourType == APP_SOURCE_DVD))
  1841. {
  1842. DVDcurrtime = GL_GetRtc32();
  1843. }
  1844. else if((ePrevSourType == APP_SOURCE_DVD)&&(eCurrSourType != APP_SOURCE_DVD))
  1845. {
  1846. DVDusedtime = (GL_GetRtc32() - DVDcurrtime)/1000;
  1847. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP,0,
  1848. sizeof(APP_SETTING_Setup_t), &(g_stSetupData));
  1849. g_stSetupData.DVDTime += DVDusedtime;
  1850. AL_Setting_Write(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP,
  1851. ITEM_OFFSET(APP_SETTING_Setup_t, DVDTime),
  1852. sizeof(g_stSetupData.DVDTime),&(g_stSetupData.DVDTime));
  1853. AL_Setting_Store(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP, 0,
  1854. sizeof(APP_SETTING_Setup_t));
  1855. }
  1856. if(eCurrSourType == APP_SOURCE_DVD )
  1857. {
  1858. DVDCountTimer ++;
  1859. if(DVDCountTimer == 36000)
  1860. {
  1861. DVDcurrtime = GL_GetRtc32();
  1862. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP,0,
  1863. sizeof(APP_SETTING_Setup_t), &(g_stSetupData));
  1864. g_stSetupData.DVDTime += 3600;
  1865. AL_Setting_Write(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP,
  1866. ITEM_OFFSET(APP_SETTING_Setup_t, DVDTime),
  1867. sizeof(g_stSetupData.DVDTime),&(g_stSetupData.DVDTime));
  1868. AL_Setting_Store(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP, 0,
  1869. sizeof(APP_SETTING_Setup_t));
  1870. DVDCountTimer = 0;
  1871. }
  1872. }
  1873. #endif
  1874. #ifdef CONFIG_SUPPORT_SYSTEM_LIFETIME
  1875. SystemLifeTimerCount ++;
  1876. if(SystemLifeTimerCount >= 600*SAVE_SYSTEM_LIFETIME_TIME)
  1877. {
  1878. MAINAPP_UpdateSystemLifeTimeToFlash(TRUE);
  1879. }
  1880. #endif
  1881. #ifdef SUPPORT_SHOP_DEMO_MODE
  1882. if (APP_ShopDemo_Timeout())
  1883. {
  1884. APP_GUIOBJ_Picture_SetPictureMode(TV_IDS_String_Picture_dynamic);
  1885. APP_GUIOBJ_Picture_SetColourTemp(TV_IDS_String_Standard);
  1886. APP_Video_OSD_PQSet(APP_VIDEO_OSD_ITEM_BACKLIGHT, 100);
  1887. }
  1888. #endif
  1889. #ifdef CONFIG_SUPPORT_3D_EN
  1890. if(APP_GUIOBJ_3DMenu_Timer())
  1891. {
  1892. MAINAPP_GetActiveSystemAppIndex(&dIndex);
  1893. if (1
  1894. #ifdef CONFIG_DTV_SUPPORT
  1895. &&(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_DVB, DVB_GUIOBJ_SCAN_PROCESS))
  1896. && (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_DVB, DVB_GUIOBJ_AUTO_SEARCH))
  1897. #endif
  1898. && (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_ATV, ATV_GUIOBJ_SCAN_PROCESS))
  1899. && (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_ATV, ATV_GUIOBJ_ANALOG_MANUAL_SEARCH))
  1900. && (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_ATV, ATV_GUIOBJ_AMS_SEARCH))
  1901. && (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_ATV, ATV_GUIOBJ_AMS_FINE_TUNE))
  1902. #ifndef CONFIG_SUPPORT_MONITOR
  1903. #ifdef CONFIG_SUPPORT_USB_UPGRADE
  1904. && (!SYSAPP_GOBJ_GUIObjectExist(dIndex, APP_GUIOBJ_SOFTWARE_UPGRADE))
  1905. #endif
  1906. #endif
  1907. #if (defined CONFIG_DVB_SYSTEM_DVBT_SUPPORT)
  1908. && (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_DVB, DVB_GUIOBJ_DVB_T_MANUAL_SEARCH))
  1909. #endif
  1910. #if (defined CONFIG_DVB_SYSTEM_DVBC_SUPPORT)
  1911. && (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_ATV, ATV_GUIOBJ_DVBC_AUTO))
  1912. && (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_DVB, DVB_GUIOBJ_DVBC_AUTO))
  1913. && (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_DVB, DVB_GUIOBJ_DVB_C_MANUAL_SEARCH))
  1914. #endif
  1915. #if (defined CONFIG_DVB_SYSTEM_DVBS_SUPPORT)
  1916. && (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_ATV, ATV_GUIOBJ_DVBS_AUTO))
  1917. && (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_DVB, DVB_GUIOBJ_DVBS_SCAN))
  1918. && (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_DVB, DVB_GUIOBJ_DVBS_AUTO))
  1919. #endif
  1920. )
  1921. {
  1922. APP_GUIOBJ_3DMenu_TimerCountdown(0);
  1923. SYSAPP_IF_SendGlobalEventWithIndex(dIndex,
  1924. (APP_GLOBAL_EVENT_3D_TIMER_INFO|PASS_TO_SYSAPP),0);
  1925. }
  1926. }
  1927. #endif
  1928. #ifdef CONFIG_SUPPORT_PVR
  1929. APP_WAKEUP_Recorder_Timeout();
  1930. #ifdef AC_ON_AUTO_GET_TIME
  1931. APP_BackgroundGetTime_Timeout();
  1932. #endif
  1933. #endif
  1934. #if defined(CONFIG_SUPPORT_SET_CLOCK_ONOFFTIME)|| defined (TEAC_ONOFF_TIMER_SUPPORT)
  1935. APP_OffTimer_Check();
  1936. #ifdef TEAC_ONOFF_TIMER_SUPPORT
  1937. APP_OnTimer_Check_WhenPanelOff();
  1938. #endif
  1939. #endif
  1940. #ifdef CONFIG_CIPLUS_SUPPORT
  1941. if (g_CIPlus_update.isUpdate)
  1942. {
  1943. if (0 == g_CIPlus_update.updateTime)
  1944. {
  1945. g_CIPlus_update.isUpdate = FALSE;
  1946. MAINAPP_GetActiveSystemAppIndex(&dIndex);
  1947. SYSAPP_IF_SendGlobalEventWithIndex(dIndex,(APP_GLOBAL_EVENT_ASK_PROFILE_ACTION | PASS_TO_SYSAPP), 0);
  1948. }
  1949. g_CIPlus_update.updateTime--;
  1950. }
  1951. #endif
  1952. #if defined(CONFIG_BT_RDA5856)
  1953. if(APP_BT_GetHeartTimer() >= 50)
  1954. {
  1955. if(APP_BT_GetHeartTimer()!= 0xff)
  1956. {
  1957. APP_BT_SetHeartTimer(0xff);
  1958. MSG_FILTER_DispatchMessage(DMN_EVENT_BLUETOOTH_WAITCONNECT,0);
  1959. }
  1960. }
  1961. else
  1962. {
  1963. APP_BT_SetHeartTimer(APP_BT_GetHeartTimer()+1);
  1964. }
  1965. if(g_SystemPowerOnReadyNeedReconnectBT == TRUE)
  1966. {
  1967. APP_Source_Type_t getCurrSourType = APP_SOURCE_MAX;
  1968. APP_GUIOBJ_Source_GetCurrSource(&getCurrSourType);
  1969. if(getCurrSourType != APP_SOURCE_BLUETOOTH)
  1970. {
  1971. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP,0,
  1972. sizeof(APP_SETTING_Setup_t), &(g_stSetupData));
  1973. UINT8 NULLADDR[6] = "";
  1974. if(APP_BT_GetBTIsReady() == TRUE)
  1975. {
  1976. g_SystemPowerOnReadyNeedReconnectBT = FALSE;
  1977. if((g_stSetupData.BTMode != BT_MODE_SEND)
  1978. ||(memcmp((const void *)g_stSetupData.BTAddrs,(const void *)NULLADDR,sizeof(t_bdaddr)) == 0))
  1979. {
  1980. ;//do nothing
  1981. }
  1982. else
  1983. {
  1984. APP_BT_Auto_ReconnectBTDevice();
  1985. }
  1986. }
  1987. }
  1988. else
  1989. {
  1990. g_SystemPowerOnReadyNeedReconnectBT = FALSE;
  1991. }
  1992. }
  1993. #endif
  1994. #ifdef CONFIG_SUPPORT_MEDIA_AUTO_PLAY
  1995. if (gb_NeedAutoPlay && APP_GUIOBJ_Source_GetSourceTransState() == FALSE && MM_AutoPlay_Com_SetFlag())
  1996. {
  1997. APP_GUIOBJ_Source_SetAppSource(APP_SOURCE_MEDIA);
  1998. gb_NeedAutoPlay = FALSE;
  1999. }
  2000. #endif
  2001. #ifdef CONFIG_SUPPORT_DETECT_USBPLL
  2002. UINT32 val = 0;
  2003. UINT8 detectfalg = MID_TVFE_GetUSBPLLDectetFalg(&val);
  2004. if(detectfalg == TRUE)
  2005. {
  2006. if(g_SendMessageTo == TRUE)
  2007. {
  2008. MAINAPP_GetActiveSystemAppIndex(&dIndex);
  2009. SYSAPP_IF_SendGlobalEventWithIndex(dIndex, (APP_GLOBAL_EVENT_USBPLL_RESULT | PASS_TO_SYSAPP), val);
  2010. g_SendMessageTo = FALSE;
  2011. }
  2012. }
  2013. #endif
  2014. #ifdef CONFIG_SUPPORT_BREATHING_LIGHT
  2015. static UINT8 ledCount = 0;
  2016. if(ledCount <= 20)
  2017. {
  2018. if(ledCount%2 == 0)
  2019. tv_SetPWMParam(1,500,ledCount*5);
  2020. ledCount++;
  2021. }
  2022. else if(ledCount <= 40)
  2023. {
  2024. if(ledCount%2 == 0)
  2025. tv_SetPWMParam(1,500,100-(ledCount-20)*5);
  2026. ledCount++;
  2027. }
  2028. else
  2029. {
  2030. ledCount = 0;
  2031. }
  2032. #endif
  2033. #ifdef CONFIG_SKIP_AC_POWERKEY
  2034. UINT8 key0State = GPIO_LEVEL_LOW;
  2035. static UINT8 checkHighTimes = 0;
  2036. Cmd_gpio_Read(GPIO_KEY0_PIN,&key0State);
  2037. if(GPIO_LEVEL_HIGH == key0State)
  2038. {
  2039. checkHighTimes++;
  2040. if(checkHighTimes >= 10)
  2041. {
  2042. MAINAPP_SendGlobalEvent(UI_EVENT_POWER, AL_POWER_STATE_OFF);
  2043. }
  2044. }
  2045. #endif
  2046. return SP_SUCCESS;
  2047. }
  2048. /*****************************************************************************
  2049. ** FUNCTION : MAINAPP_OnEvent
  2050. **
  2051. ** DESCRIPTION :
  2052. ** main app external event handler
  2053. **
  2054. ** PARAMETERS :
  2055. ** dMessage : message
  2056. ** dParam : the parameter for dMessage
  2057. **
  2058. ** RETURN VALUES:
  2059. ** None
  2060. *****************************************************************************/
  2061. int MAINAPP_OnEvent(UINT32 dMessage, UINT32 dParam)
  2062. {
  2063. if((dMessage < UI_EVENT_NULL)
  2064. || ((dMessage > APP_GLOBAL_EVENT_MIN) && (dMessage < APP_GLOBAL_EVENT_MAX)))
  2065. {
  2066. //mainapp_printf("==================_MAINAPP_UIEventHandler()=================\n");
  2067. _MAINAPP_UIEventHandler(dMessage, dParam);
  2068. }
  2069. else if ((dMessage > DMN_EVENT_MIN && dMessage < DMN_EVENT_MAX)
  2070. || (dMessage > DMN_EVENT_DEVICE_DETECT_MIN && dMessage < DMN_EVENT_DEVICE_DETECT_MAX))
  2071. {
  2072. //mainapp_printf("==================_MAINAPP_DaemonEventHandler()=================\n");
  2073. _MAINAPP_DaemonEventHandler(dMessage, dParam);
  2074. }
  2075. else if (dMessage > GUI_RESPOND_MIN && dMessage < GUI_RESPOND_MAX)
  2076. {
  2077. //mainapp_printf("==================_MAINAPP_GUIFeedbackEventHandler()=================\n");
  2078. _MAINAPP_GUIFeedbackEventHandler(dMessage, dParam);
  2079. }
  2080. return SP_SUCCESS;
  2081. }
  2082. /*****************************************************************************
  2083. ** FUNCTION : MAINAPP_GetPowerOffState
  2084. **
  2085. ** DESCRIPTION :
  2086. ** Get power off state
  2087. **
  2088. ** PARAMETERS :
  2089. ** None
  2090. **
  2091. ** RETURN VALUES:
  2092. ** g_bPowerOffFlag: power off state
  2093. *****************************************************************************/
  2094. Boolean MAINAPP_GetPowerOffState(void)
  2095. {
  2096. return g_bPowerOffFlag;
  2097. }
  2098. /*****************************************************************************
  2099. ** FUNCTION : MAINAPP_SetPowerOffState
  2100. **
  2101. ** DESCRIPTION :
  2102. ** Set power off state
  2103. **
  2104. ** PARAMETERS :
  2105. ** PowerOffFlag - power off state
  2106. **
  2107. ** RETURN VALUES:
  2108. ** None
  2109. *****************************************************************************/
  2110. void MAINAPP_SetPowerOffState(Boolean PowerOffFlag)
  2111. {
  2112. g_bPowerOffFlag = PowerOffFlag;
  2113. }
  2114. #ifdef CONFIG_NET_ET_SUPPORT
  2115. static void MAINAPP_NetAPInit(void)
  2116. {
  2117. NetDaemonCfg_t stNetDaemon;
  2118. stNetDaemon.pfEventCallBack = NetDaemon_callback;
  2119. #ifdef NET_WIFI_SUPPORT
  2120. Net_WifiFlashiInit();
  2121. #endif
  2122. if (NET_IF_Initialize(&stNetDaemon) != NET_DAEMON_IF_SUCCESSFUL)
  2123. {
  2124. mainapp_printf("ERROR: init net daemon\n");
  2125. }
  2126. if (APP_NET_Initialize() != APP_NET_IF_SUCCESSFUL)
  2127. {
  2128. mainapp_printf("ERROR: app init net daemon\n");
  2129. }
  2130. #ifdef SUPPORT_NET_TESTING
  2131. if (NetTest_Init(1) != 0)
  2132. {
  2133. mainapp_printf("ERROR: Init Net Testing Thread\n");
  2134. }
  2135. #endif
  2136. }
  2137. MainAppUIEventHandlerInfo_t *MAINAPP_GetNetHandlerInfo(void)
  2138. {
  2139. return &stUIEventHandlerInfo;
  2140. }
  2141. static void _MAINAPP_EtMountHandle(MainAppUIEventHandlerInfo_t *pstEventInfo, UINT32 dDevNum)
  2142. {
  2143. int iPtnHandle = 0;
  2144. char *pszMountPonit = NULL;
  2145. if (!pstEventInfo)
  2146. {
  2147. mainapp_printf("%s\n", __FUNCTION__);
  2148. return;
  2149. }
  2150. pszMountPonit = GL_MemAlloc(ET_PATH_NAME_MAX_LENTH);
  2151. if (!pszMountPonit)
  2152. {
  2153. mainapp_printf("alloc et new path name\n");
  2154. return;
  2155. }
  2156. memset(pszMountPonit, 0, ET_PATH_NAME_MAX_LENTH);
  2157. do
  2158. {
  2159. iPtnHandle = MID_PartitionList_FindItem(dDevNum);
  2160. if (iPtnHandle == -1)
  2161. {
  2162. mainapp_printf("invalidate ptn handle\n");
  2163. break;
  2164. }
  2165. if (MID_PartitionList_GetMountName(iPtnHandle, pszMountPonit) == NULL)
  2166. {
  2167. mainapp_printf("get ptn mount point error!\n");
  2168. break;
  2169. }
  2170. pstEventInfo->stSysDriveCtrlInfo.iSysCurPtnHnd = iPtnHandle;
  2171. }
  2172. while (0);
  2173. GL_MemFree(pszMountPonit);
  2174. }
  2175. static void _MAINAPP_EtUnmountHandle(MainAppUIEventHandlerInfo_t *pstEventInfo, UINT32 dDevNum)
  2176. {
  2177. int iPtnHandle = 0;
  2178. char *pszMountPonit = NULL;
  2179. if (!pstEventInfo)
  2180. {
  2181. mainapp_printf("%s\n", __FUNCTION__);
  2182. return;
  2183. }
  2184. pszMountPonit = GL_MemAlloc(ET_PATH_NAME_MAX_LENTH);
  2185. if (!pszMountPonit)
  2186. {
  2187. mainapp_printf("alloc et new path name\n");
  2188. return;
  2189. }
  2190. memset(pszMountPonit, 0, ET_PATH_NAME_MAX_LENTH);
  2191. do
  2192. {
  2193. iPtnHandle = MID_PartitionList_FindItem(dDevNum);
  2194. if (iPtnHandle == -1)
  2195. {
  2196. mainapp_printf("invalidate ptn handle\n");
  2197. break;
  2198. }
  2199. if (MID_PartitionList_GetMountName(iPtnHandle, pszMountPonit) == NULL)
  2200. {
  2201. mainapp_printf("get ptn mount point error!\n");
  2202. break;
  2203. }
  2204. #if 0
  2205. sdReturnValue = NET_IF_InstOps(NET_DAEMON_INST_ET, NET_DAEMON_INST_OPS_UNMOUNT_CHECK, (UINT32)pszMountPonit);
  2206. if (sdReturnValue < NET_DAEMON_IF_SUCCESSFUL)
  2207. {
  2208. mainapp_printf("boot up check et download\n");
  2209. break;
  2210. }
  2211. #endif
  2212. pstEventInfo->stSysDriveCtrlInfo.iSysCurPtnHnd = iPtnHandle;
  2213. }
  2214. while (0);
  2215. GL_MemFree(pszMountPonit);
  2216. }
  2217. #endif
  2218. #ifdef CONFIG_NET_N32_SUPPORT
  2219. static void _MAINAPP_N32MountHandle(MainAppUIEventHandlerInfo_t *pstEventInfo, UINT32 dDevNum)
  2220. {
  2221. INT32 sdReturnValue = MAIN_APP_SUCCESS;
  2222. int iPtnHandle = 0;
  2223. char *pszMountPonit = NULL;
  2224. if (!pstEventInfo)
  2225. {
  2226. mainapp_printf("%s\n", __FUNCTION__);
  2227. return;
  2228. }
  2229. pszMountPonit = GL_MemAlloc(DLMGR_IF_FILEPATH_MAX_LEN);
  2230. if (!pszMountPonit)
  2231. {
  2232. mainapp_printf("alloc et new path name\n");
  2233. return;
  2234. }
  2235. memset(pszMountPonit, 0, DLMGR_IF_FILEPATH_MAX_LEN);
  2236. do
  2237. {
  2238. iPtnHandle = MID_PartitionList_FindItem(dDevNum);
  2239. if (iPtnHandle == -1)
  2240. {
  2241. mainapp_printf("get ptn handle\n");
  2242. break;
  2243. }
  2244. if (MID_PartitionList_GetMountName(iPtnHandle, pszMountPonit) == NULL)
  2245. {
  2246. mainapp_printf("get ptn mount point error!\n");
  2247. break;
  2248. }
  2249. //add by ztli 2010/08/04 for mantis bug 96324 start {
  2250. if (iPtnHandle == 0)
  2251. {
  2252. Net_Cfg_SetDlPath(pszMountPonit);
  2253. }
  2254. //add by ztli end }
  2255. //sdReturnValue = NET_IF_InstOps(NET_DAEMON_INST_N32,NET_DAEMON_N32_INST_OPS_MOUNT_CHECK,(UINT32)pszMountPonit);
  2256. //if(sdReturnValue < NET_DAEMON_IF_SUCCESSFUL)
  2257. sdReturnValue = APP_NET_InstCtrl(APP_NET_INST_N32, APP_NET_INST_OPS_MOUNT, (UINT32)pszMountPonit);
  2258. if (sdReturnValue < APP_NET_IF_SUCCESSFUL)
  2259. {
  2260. mainapp_printf("boot up check et download\n");
  2261. break;
  2262. }
  2263. }
  2264. while (0);
  2265. GL_MemFree(pszMountPonit);
  2266. }
  2267. static void _MAINAPP_N32UnmountHandle(MainAppUIEventHandlerInfo_t *pstEventInfo, UINT32 dDevNum)
  2268. {
  2269. INT32 sdReturnValue = MAIN_APP_SUCCESS;
  2270. int iPtnHandle = 0;
  2271. char *pszMountPonit = NULL;
  2272. if (!pstEventInfo)
  2273. {
  2274. mainapp_printf("%s\n", __FUNCTION__);
  2275. return;
  2276. }
  2277. pszMountPonit = GL_MemAlloc(DLMGR_IF_FILEPATH_MAX_LEN);
  2278. if (!pszMountPonit)
  2279. {
  2280. mainapp_printf("alloc et new path name\n");
  2281. return;
  2282. }
  2283. memset(pszMountPonit, 0, DLMGR_IF_FILEPATH_MAX_LEN);
  2284. do
  2285. {
  2286. iPtnHandle = MID_PartitionList_FindItem(dDevNum);
  2287. if (iPtnHandle == -1)
  2288. {
  2289. mainapp_printf("invalidate ptn handle\n");
  2290. break;
  2291. }
  2292. if (MID_PartitionList_GetMountName(iPtnHandle, pszMountPonit) == NULL)
  2293. {
  2294. mainapp_printf("get ptn mount point error!\n");
  2295. break;
  2296. }
  2297. //sdReturnValue = NET_IF_InstOps(NET_DAEMON_INST_N32,NET_DAEMON_N32_INST_OPS_UNMOUNT_CHECK,(UINT32)pszMountPonit);
  2298. //if(sdReturnValue < NET_DAEMON_IF_SUCCESSFUL)
  2299. sdReturnValue = APP_NET_InstCtrl(APP_NET_INST_N32, APP_NET_INST_OPS_UNMOUNT, (UINT32)pszMountPonit);
  2300. if (sdReturnValue < APP_NET_IF_SUCCESSFUL)
  2301. {
  2302. mainapp_printf("boot up check et download\n");
  2303. break;
  2304. }
  2305. }
  2306. while (0);
  2307. GL_MemFree(pszMountPonit);
  2308. }
  2309. #endif