network_app.c 76 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <ctype.h>
  4. #include <types.h>
  5. #include "app_infra/sysapp_if.h"
  6. //#include "app_infra/cbk_event.h"
  7. #include "sysapp_table.h"
  8. #include "app_event.h"
  9. #include "app_guiobj_source.h"
  10. #include "app_guiobj_popmsg.h"
  11. #include "app_guiobj_mainmenupop.h"
  12. #include "app_gui.h"
  13. #include "app_guiobj_mute.h"
  14. #include "app_data_setting.h"
  15. #include "util_ioctl.h"
  16. #include "app_audio.h"
  17. #include "main_app.h"
  18. #include "network_app.h"
  19. #include "network_gui_object_table.h"
  20. #ifdef CONFIG_SUPPORT_HDMI_PLUGIN_CHANGE_SOURCE
  21. #include "cecd_interface.h"
  22. #endif
  23. #ifdef SUPPORT_CEC_TV
  24. #include "umf_cec.h"
  25. #endif
  26. #include "app_guiobj_hdmilink.h"
  27. #include "app_guiobj_mainmenu.h"
  28. //#include "airplay_app_gui_data.h"
  29. #ifdef CONFIG_DTV_SUPPORT
  30. #include "app_dvb_event.h"
  31. #endif
  32. #ifdef CONFIG_SUPPORT_WIFI
  33. #include "netsetting_if.h"
  34. #include "net_ip_setting.h"
  35. #endif
  36. #ifdef CONFIG_SUPPORT_MIRACAST
  37. #include "wfd_if.h"
  38. #include "wfd_core.h"
  39. #include "app_guiobj_mute.h"
  40. #include "umf_miracast.h"
  41. #include "media_flow_ctrl.h"
  42. #endif
  43. #if defined (CONFIG_SUPPORT_DLNA)
  44. #include "net_video_flow_ctrl.h"
  45. #endif
  46. #if defined (CONFIG_SUPPORT_NET_PLAY_RTSP) || defined(CONFIG_SUPPORT_NET_PLAY_HTTP)
  47. #include "netctrl_video_flow_ctrl.h"
  48. #endif
  49. #include "app_video.h"
  50. #ifdef CONFIG_SUPPORT_DLNA
  51. #include "dlna_mw_if.h"
  52. #endif
  53. #ifdef CONFIG_SUPPORT_WIFI
  54. #include "netsetting_if.h"
  55. #endif
  56. #include "app_guiobj_adjust.h"
  57. #include "app_guiobj_Network_Information.h"
  58. #include "app_menumgr.h"
  59. #include "NET_homepage_gui.h"
  60. #ifdef CONFIG_SUPPORT_NET_OTA
  61. #include "net_ota.h"
  62. #include "app_usb_upgrade.h"
  63. #endif
  64. #ifdef CONFIG_SUPPORT_NEW_AIRPLAY
  65. #include "airplay.h"
  66. #endif
  67. //#define NETWORK_GUI_OBJECT_TABLE_DEFINE_HERE
  68. #define NET_DEBUG
  69. #ifdef NET_DEBUG
  70. #define net_printf(fmt, arg...) printf("[NETWORK]"fmt,##arg)
  71. #else
  72. #define net_printf(a,...) do{}while(0)
  73. #endif
  74. //pthread_t nMiracastThread;
  75. static int Network_App_OnCreate(void** ppPrivateData);
  76. static int Network_App_OnDestroy(void** ppPrivateData);
  77. static int Network_App_OnRun(void* pPrivateData, UINT32 dParam);
  78. static int Network_App_OnTerminate(void* pPrivateData, UINT32 dParam);
  79. static int Network_App_OnTimerUpdate(void* pPrivateData);
  80. static int Network_App_OnEvent(void* pPrivateData, UINT32 dMessage, UINT32 dParam);
  81. static UINT8 g_u8SourceTrastTimer = 0;
  82. #ifdef CONFIG_SUPPORT_NET_SETTING
  83. static pthread_t gNetworkConnect_task;
  84. #endif
  85. #ifdef CONFIG_SUPPORT_WIFI
  86. static pthread_t gWiFiDongleAttachCheck_task;
  87. #endif
  88. #if (defined CONFIG_SUPPORT_WIFI) && (defined CONFIG_SUPPORT_NET_SETTING)
  89. static UINT8 g_WifiConnecting = 0;
  90. #endif
  91. #ifdef CONFIG_SUPPORT_DLNA
  92. static GL_Semaphore_t gDlnaSema = NULL;
  93. static pthread_t gDlnaInitThread;
  94. static bool gDlnaInitThreadValid = false;
  95. static bool gDlnaInitThreadRunning = false;
  96. static bool gDlnaInited = false;
  97. #endif
  98. #ifdef SUPPORT_CEC_TV
  99. static INT32 g_u32Mutekeydelaytime = 10;
  100. static INT32 g_u32MuteIconHandle = 10;
  101. static INT32 MUTE_KEY_INTERVAL = 10;
  102. #endif
  103. #define URL_LEN 128
  104. #ifdef CONFIG_SUPPORT_WIFI
  105. extern Boolean bWifiDongle;
  106. #endif
  107. #ifdef CONFIG_SUPPORT_NET_PLAY_RTSP
  108. static void _Play_RTSP_Stream()
  109. {
  110. char szRtpUrl[URL_LEN] = "\0";
  111. UINT8 u8Mute = 0;
  112. memset(szRtpUrl, '\0', URL_LEN * sizeof(char));
  113. snprintf(szRtpUrl, URL_LEN * sizeof(char), "%s", "rtsp://192.168.0.100:8092/28MX.flv");
  114. NetCtrl_SetMediaInfo(szRtpUrl);
  115. /* mute/unmute audio */
  116. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO, 0,
  117. sizeof(APP_SETTING_UserInfo_t), &(g_stUserInfoData));
  118. u8Mute = g_stUserInfoData.Mute;
  119. APP_Audio_SetMute(u8Mute, TRUE, APP_MUTE_MODE_SIGNAL_DETECT, APP_SOURCE_NET);
  120. APP_Video_SetMute(FALSE, TRUE, APP_MUTE_MODE_SIGNAL_DETECT, APP_SOURCE_NET);
  121. }
  122. #elif defined(CONFIG_SUPPORT_NET_PLAY_HTTP)
  123. static void _Play_HTTP_Stream()
  124. {
  125. char szRtpUrl[URL_LEN] = "\0";
  126. UINT8 u8Mute = 0;
  127. memset(szRtpUrl, '\0', URL_LEN * sizeof(char));
  128. snprintf(szRtpUrl, URL_LEN * sizeof(char), "%s", "http://192.168.0.100:8088/28.ts");
  129. NetCtrl_SetMediaInfo(szRtpUrl);
  130. /* mute/unmute audio */
  131. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO, 0,
  132. sizeof(APP_SETTING_UserInfo_t), &(g_stUserInfoData));
  133. u8Mute = g_stUserInfoData.Mute;
  134. APP_Audio_SetMute(u8Mute, TRUE, APP_MUTE_MODE_SIGNAL_DETECT, APP_SOURCE_NET);
  135. APP_Video_SetMute(FALSE, TRUE, APP_MUTE_MODE_SIGNAL_DETECT, APP_SOURCE_NET);
  136. }
  137. #endif
  138. #ifdef CONFIG_SUPPORT_NET_SETTING
  139. static void _APP_GUIOBJ_NetworkInformation_Connect(void *param)
  140. {
  141. #ifdef CONFIG_SUPPORT_WIFI
  142. Al_APPW_t *pAPPW = NULL;
  143. int retry_count = 0;
  144. MID_NWSI_MAC_Addr_t mac;
  145. #endif
  146. pthread_detach(pthread_self());
  147. #if (defined CONFIG_SUPPORT_WIFI) && (defined CONFIG_SUPPORT_NET_SETTING)
  148. g_WifiConnecting = TRUE;
  149. #endif
  150. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP, 0,
  151. sizeof(APP_SETTING_Setup_t), &(g_stSetupData));
  152. switch (g_stSetupData.NetworkConnectMode)
  153. {
  154. #ifdef CONFIG_SUPPORT_ETHERNET
  155. case e_AL_Network_Mode_Ethernet:
  156. Al_Network_Ctrl_Set_ConnectMode(e_AL_Network_Mode_Ethernet);
  157. Al_Network_Ctrl_SetDhcpStatic(e_AL_Network_Mode_Ethernet, g_stSetupData.EthernetConnectMode, &g_stSetupData.IPSetting);
  158. break;
  159. #endif
  160. #ifdef CONFIG_SUPPORT_WIFI
  161. case e_AL_Network_Mode_Wireless:
  162. {
  163. printf("e_AL_Network_Mode_Wireless =%d\n",g_stSetupData.WiFiSetting.bConnectedWifi);
  164. while(((MID_NWSI_GetMAC(E_MID_NWSI_CONNECT_TYPE_WIRELESS, &mac) != 0)
  165. || ((MID_NWSI_GetIFFlag(E_MID_NWSI_CONNECT_TYPE_WIRELESS) & E_MID_NWSI_IF_UP) != E_MID_NWSI_IF_UP))
  166. && retry_count < 40)
  167. {
  168. usleep(200000);
  169. retry_count ++;
  170. printf("wait dongle firmware ready\n");
  171. }
  172. Al_Network_Ctrl_Set_ConnectMode(e_AL_Network_Mode_Wireless);
  173. if(g_stSetupData.WiFiSetting.bConnectedWifi)
  174. {
  175. pAPPW = &g_stSetupData.WiFiSetting.WiFiPassword.APPW[0];
  176. Al_Network_Ctrl_SetIPMode(e_AL_IPMode_Auto);
  177. printf("@@@@@@@@@@@@@@@@ %s %d %d%d%d%d%d%d%d%d%d %d\n",g_stSetupData.WiFiSetting.ConnectAPData.name, pAPPW->PWlen, pAPPW->PassWord[0],pAPPW->PassWord[1],pAPPW->PassWord[2],pAPPW->PassWord[3],
  178. pAPPW->PassWord[4],pAPPW->PassWord[5],pAPPW->PassWord[6],pAPPW->PassWord[7],pAPPW->PassWord[8],pAPPW->PassWord[9]);
  179. if(Al_Network_Ctrl_ConnectAP(g_stSetupData.WiFiSetting.ConnectAPData, pAPPW->PWlen, pAPPW->PassWord) == AL_SUCCESS)
  180. {
  181. Al_Network_Ctrl_SetDhcpStatic(e_AL_Network_Mode_Wireless, g_stSetupData.EthernetConnectMode, &g_stSetupData.IPSetting);
  182. }
  183. }
  184. }
  185. break;
  186. #endif
  187. default:
  188. break;
  189. }
  190. gNetworkConnect_task = 0;
  191. #if (defined CONFIG_SUPPORT_WIFI) && (defined CONFIG_SUPPORT_NET_SETTING)
  192. g_WifiConnecting = FALSE;
  193. #endif
  194. pthread_exit(NULL);
  195. }
  196. #endif
  197. /******************************************************************************/
  198. /**
  199. * @brief
  200. * @param
  201. * @return
  202. *
  203. ******************************************************************************/
  204. #if ((defined CONFIG_SUPPORT_WIFI) || (defined CONFIG_SUPPORT_ETHERNET)) && (defined CONFIG_SUPPORT_NET_SETTING)
  205. void Network_App_Reconnect(void)
  206. {
  207. pthread_attr_t AVAttr;
  208. int pthread_kill_err=ESRCH;
  209. pthread_attr_init(&AVAttr);
  210. pthread_attr_setstacksize(&AVAttr, 1*1024*1024);
  211. if(gNetworkConnect_task!=0)
  212. pthread_kill_err=pthread_kill(gNetworkConnect_task, 0);
  213. if(pthread_kill_err == ESRCH)
  214. {
  215. if(pthread_create(&gNetworkConnect_task, &AVAttr, (void *)_APP_GUIOBJ_NetworkInformation_Connect, NULL) !=0)
  216. {
  217. printf("Network_Connect pthread_create fail\n");
  218. }
  219. }
  220. pthread_attr_destroy(&AVAttr);
  221. }
  222. #endif
  223. #if (defined CONFIG_SUPPORT_WIFI) && (defined CONFIG_SUPPORT_NET_SETTING)
  224. void Network_App_DisconnectWifi(void)
  225. {
  226. int retry_count = 0;
  227. while(g_WifiConnecting && retry_count < 60)
  228. {
  229. usleep(200000);
  230. retry_count ++;
  231. printf("wait wifi connect finish \n");
  232. }
  233. Al_Network_Ctrl_Set_ConnectMode(e_AL_Network_Mode_None);
  234. Al_Network_Ctrl_DisconnectAP();
  235. }
  236. UINT8 Network_App_GetWifiConnectStatus()
  237. {
  238. return g_WifiConnecting;
  239. }
  240. #endif
  241. #ifdef CONFIG_SUPPORT_WIFI
  242. static void _APP_Network_WifiDongle_Attached(void)
  243. {
  244. UINT8 retry_count = 0;
  245. #ifdef CONFIG_SUPPORT_NET_SETTING
  246. Al_IP_t Get_IPaddress = {0};
  247. UINT32 dRetry = 0;
  248. UINT8 ifflag = E_MID_NWSI_IF_OFF;
  249. AL_Return_t ret = AL_FAILURE;
  250. #endif
  251. while((MID_NWSI_GetIFFlag(E_MID_NWSI_CONNECT_TYPE_WIRELESS) & E_MID_NWSI_IF_UP) != E_MID_NWSI_IF_UP && retry_count < 20)
  252. {
  253. usleep(200000);
  254. retry_count ++;
  255. printf("wait interface up\n");
  256. }
  257. retry_count = 0;
  258. #ifdef CONFIG_SUPPORT_NET_SETTING
  259. if(Al_Network_Ctrl_GetIP(&Get_IPaddress) != AL_SUCCESS)
  260. {
  261. if(MID_NWSI_WLAN_GetAPState() == E_MID_NWSI_WLAN_CONNECT_STATE_ON)
  262. {
  263. Al_APPW_t *pAPPW = NULL;
  264. pAPPW = &g_stSetupData.WiFiSetting.WiFiPassword.APPW[0];
  265. if(Al_Network_Ctrl_ConnectAP(g_stSetupData.WiFiSetting.ConnectAPData, pAPPW->PWlen, pAPPW->PassWord) == AL_SUCCESS)
  266. {
  267. Al_Network_Ctrl_SetDhcpStatic(e_AL_Network_Mode_Wireless, g_stSetupData.EthernetConnectMode, &g_stSetupData.IPSetting);
  268. }
  269. MID_NWSI_WLAN_WiFiEnable(TRUE);
  270. while(ret != AL_SUCCESS && dRetry < 30)
  271. {
  272. ret = Al_Network_Ctrl_GetIP(&Get_IPaddress);
  273. ifflag = MID_NWSI_GetIFFlag(e_AL_Network_Mode_Wireless);
  274. if(ret == AL_SUCCESS && (ifflag&E_MID_NWSI_IF_RUNNING))
  275. {
  276. return;
  277. }
  278. dRetry ++;
  279. }
  280. }
  281. }
  282. #endif
  283. }
  284. void Network_WifiDongle_Attached_Check(void)
  285. {
  286. pthread_attr_t AVAttr;
  287. int pthread_kill_err=ESRCH;
  288. pthread_attr_init(&AVAttr);
  289. pthread_attr_setstacksize(&AVAttr, 1*1024*1024);
  290. // if(gWiFiDongleAttachCheck_task!=0)
  291. // pthread_kill_err=pthread_kill(gWiFiDongleAttachCheck_task, 0);
  292. if(pthread_kill_err == ESRCH)
  293. {
  294. if(pthread_create(&gWiFiDongleAttachCheck_task, &AVAttr, (void *)_APP_Network_WifiDongle_Attached, NULL) !=0)
  295. {
  296. printf("Network_Connect pthread_create fail\n");
  297. }
  298. }
  299. pthread_attr_destroy(&AVAttr);
  300. }
  301. #endif
  302. void NET_DestroyAppointedGUI(void)
  303. {
  304. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_POPMSG))
  305. {
  306. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_POPMSG);
  307. }
  308. #ifdef SUPPORT_FACTORY_AUTO_TEST_MODE2
  309. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_FAC_AUTOTEST))
  310. {
  311. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_FAC_AUTOTEST);
  312. }
  313. #endif
  314. if (APP_MenuMgr_Exist_Main_Menu())
  315. {
  316. APP_MenuMgr_Exit_Main_Menu();
  317. }
  318. if (APP_MenuMgr_Exist_Factory_Menu())
  319. {
  320. APP_MenuMgr_Exit_Factory_Menu();
  321. }
  322. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_OPTIONMENU))
  323. {
  324. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_OPTIONMENU);
  325. }
  326. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_MAINMENUPOP))
  327. {
  328. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_MAINMENUPOP);
  329. }
  330. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_LANGUAGE))
  331. {
  332. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_LANGUAGE);
  333. }
  334. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_SOURCE))
  335. {
  336. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_SOURCE);
  337. }
  338. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_SOURCE_CEC))
  339. {
  340. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_SOURCE_CEC);
  341. }
  342. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_BANNER))
  343. {
  344. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_BANNER);
  345. }
  346. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_ADJUST))
  347. {
  348. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_ADJUST);
  349. }
  350. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_AMPLIFIERVOLUME))
  351. {
  352. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_AMPLIFIERVOLUME);
  353. }
  354. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_SLEEP_INFO))
  355. {
  356. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_SLEEP_INFO);
  357. }
  358. }
  359. /******************************************************************************/
  360. /**
  361. * @brief
  362. * @param
  363. * @return
  364. *
  365. ******************************************************************************/
  366. static int NET_DestroyPartialObjects(bool bIsCleanAll)
  367. {
  368. int i = 0;
  369. UINT32 u32TotalObj;
  370. UINT8 u8FilteredObj = 0;
  371. UINT32 u32GuiObjID[NET_GUIOBJ_MAX];
  372. UINT32 u32CloseGuiObjID[NET_GUIOBJ_MAX] = {0};
  373. /*
  374. when we call this api to destroty all gui object, the the current gui object will not
  375. implement lose foucus function,this means that some ui resource will not free,so
  376. create a null gui object to let the current gui object lost focus--gadenia
  377. */
  378. if(bIsCleanAll)
  379. {
  380. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, NET_GUIOBJ_NULL, 0);
  381. }
  382. if (SYSAPP_GOBJ_GetTotalCreatedObjects(SYS_APP_NETWORK, &u32TotalObj) \
  383. == SYSTEM_APP_INDEX_ERROR)
  384. {
  385. net_printf("%s() %d\n", __FUNCTION__, __LINE__);
  386. return SP_ERR_FAILURE;
  387. }
  388. for (i = u32TotalObj - 1; i >= 0; i--)
  389. {
  390. if (SYSAPP_GOBJ_GetObjectIDByIndex(SYS_APP_NETWORK, i , &u32GuiObjID[u8FilteredObj]) \
  391. == SYSTEM_APP_INDEX_ERROR)
  392. {
  393. net_printf("%s() %d\n", __FUNCTION__, __LINE__);
  394. return SP_ERR_FAILURE;
  395. }
  396. if (
  397. (u32GuiObjID[u8FilteredObj] == NET_GUIOBJ_HOMEPAGE
  398. || u32GuiObjID[u8FilteredObj] == APP_GUIOBJ_MUTE
  399. || u32GuiObjID[u8FilteredObj] == NET_GUIOBJ_POPMSG
  400. )
  401. && (!bIsCleanAll)
  402. )
  403. {
  404. continue;
  405. }
  406. u8FilteredObj++;
  407. }
  408. for (i = u8FilteredObj - 1; i >= 0; i--)
  409. {
  410. u32CloseGuiObjID[u8FilteredObj - i - 1] = u32GuiObjID[i];
  411. if(u32GuiObjID[i] == APP_GUIOBJ_MUTE)
  412. {
  413. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  414. APP_GUIOBJ_MUTE, APP_INTRA_EVENT_HIDE_MUTE, 0);
  415. }
  416. }
  417. SYSAPP_GOBJ_DestroyPartialGUIObjects(SYS_APP_NETWORK, u32CloseGuiObjID, u8FilteredObj);
  418. return SP_SUCCESS;
  419. }
  420. SysAppInstDef stNetwork_Inst =
  421. {
  422. SYS_APP_NETWORK,
  423. Network_App_OnCreate,
  424. Network_App_OnDestroy,
  425. Network_App_OnRun,
  426. Network_App_OnTerminate,
  427. Network_App_OnTimerUpdate,
  428. Network_App_OnEvent,
  429. SYSTEM_IDLE, //system state.
  430. NETWORK_GUI_Obj_List, //GUI object table
  431. NET_GUIOBJ_MAX, //GUI object table size
  432. NULL, //System Application Infrastructure (should not be modified)
  433. NULL //System Application private data (created in OnInitialize function)
  434. };
  435. static bool g_bOpenHomeMenuAfterCloseNetMenu = FALSE;
  436. static PopmsgParam_t stPopupWaitingList[Network_APP_POP_MSG_MAX-Network_APP_POP_MSG_NONE];
  437. static UINT32 g_u32OldPopup = Network_APP_POP_MSG_NONE;
  438. static UINT32 g_dCurPopup = Network_APP_POP_MSG_NONE;
  439. static UINT32 g_u32PopupWaitingList = 0;
  440. INT32 Network_App_SchedulePopup(PopmsgParam_t Popup)
  441. {
  442. UINT32 u32CurPopup = Network_APP_POP_MSG_NONE;
  443. UINT8 bTimeoutFlag = 0;
  444. switch (Popup.eType)
  445. {
  446. case POPMSG_TYPE_CONFIRM:
  447. u32CurPopup = Popup.extend.stConfirm.eConfirmType;
  448. break;
  449. case POPMSG_TYPE_PWD:
  450. u32CurPopup = Popup.extend.stPwd.ePwdType;
  451. break;
  452. case POPMSG_TYPE_PROMPT:
  453. u32CurPopup = Popup.extend.stPrompt.ePromptType;
  454. if (Popup.extend.stPrompt.iTimeout > 0)
  455. {
  456. if (g_dCurPopup == u32CurPopup)
  457. {
  458. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK,
  459. APP_GLOBAL_EVENT_POPMSG_RESET_TIMEOUT,
  460. Popup.extend.stPrompt.iTimeout);
  461. return 0;
  462. }
  463. bTimeoutFlag = 1;
  464. }
  465. break;
  466. default:
  467. return 0;
  468. }
  469. if (u32CurPopup > Network_APP_POP_MSG_NONE)
  470. {
  471. if (bTimeoutFlag == 0)
  472. {
  473. g_u32PopupWaitingList |= 1 << (u32CurPopup - Network_APP_POP_MSG_NONE);
  474. stPopupWaitingList[u32CurPopup-Network_APP_POP_MSG_NONE] = Popup;
  475. }
  476. if (u32CurPopup > g_u32OldPopup)
  477. {
  478. g_u32OldPopup = u32CurPopup;
  479. if (APP_MenuMgr_Exist_Main_Menu()
  480. || SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_SOURCE)
  481. || SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_SOURCE_CEC)
  482. )
  483. {
  484. g_u32OldPopup = Network_APP_POP_MSG_NONE;
  485. g_dCurPopup = u32CurPopup;
  486. return 0;
  487. }
  488. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_POPMSG))
  489. {
  490. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_POPMSG);
  491. }
  492. APP_MenuMgr_SetMsgPopup(TRUE);
  493. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, NET_GUIOBJ_POPMSG, (UINT32)&Popup);
  494. }
  495. }
  496. else
  497. {
  498. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_POPMSG))
  499. {
  500. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_POPMSG);
  501. }
  502. APP_MenuMgr_SetMsgPopup(TRUE);
  503. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, NET_GUIOBJ_POPMSG, (UINT32)&Popup);
  504. }
  505. g_dCurPopup = u32CurPopup;
  506. return 1;
  507. }
  508. INT32 Network_App_ClosePopup(UINT32 u32ClosePopup, UINT32 dMessage)
  509. {
  510. UINT32 dCheckFlag;
  511. APP_MenuMgr_SetMsgPopup(FALSE);
  512. if (u32ClosePopup > Network_APP_POP_MSG_NONE)
  513. {
  514. if (u32ClosePopup == g_u32OldPopup)
  515. {
  516. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_POPMSG))
  517. {
  518. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_POPMSG);
  519. }
  520. }
  521. if (dMessage != UI_EVENT_NULL)
  522. {
  523. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_NETWORK, dMessage, g_dCurPopup);
  524. }
  525. g_u32PopupWaitingList &= ~(1 << (u32ClosePopup - Network_APP_POP_MSG_NONE));
  526. if (u32ClosePopup == g_u32OldPopup)
  527. {
  528. g_u32OldPopup = Network_APP_POP_MSG_NONE;
  529. g_dCurPopup = Network_APP_POP_MSG_NONE;
  530. for (dCheckFlag = Network_APP_POP_MSG_MAX - 1;
  531. dCheckFlag > Network_APP_POP_MSG_NONE; dCheckFlag--)
  532. {
  533. if (g_u32PopupWaitingList & (1 << (dCheckFlag - Network_APP_POP_MSG_NONE)))
  534. {
  535. Network_App_SchedulePopup(stPopupWaitingList[
  536. dCheckFlag-Network_APP_POP_MSG_NONE]);
  537. break;
  538. }
  539. }
  540. }
  541. }
  542. else
  543. {
  544. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_POPMSG))
  545. {
  546. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_POPMSG);
  547. }
  548. if (dMessage != UI_EVENT_NULL)
  549. {
  550. SYSAPP_IF_SendCriticalGlobalEventWithIndex(SYS_APP_NETWORK, dMessage, g_dCurPopup);
  551. }
  552. if (g_u32OldPopup != Network_APP_POP_MSG_NONE)
  553. {
  554. g_u32OldPopup = Network_APP_POP_MSG_NONE;
  555. }
  556. g_dCurPopup = Network_APP_POP_MSG_NONE;
  557. if (dMessage == UI_EVENT_EXIT) //use g_stPopMsgParam.stParam.dParam1 to indicate that no need to pop scheculed pop.
  558. {
  559. return 1;
  560. }
  561. for (dCheckFlag = Network_APP_POP_MSG_MAX - 1; dCheckFlag > Network_APP_POP_MSG_NONE; dCheckFlag--)
  562. {
  563. if (g_u32PopupWaitingList & (1 << (dCheckFlag - Network_APP_POP_MSG_NONE)))
  564. {
  565. Network_App_SchedulePopup(stPopupWaitingList[
  566. dCheckFlag-Network_APP_POP_MSG_NONE]);
  567. break;
  568. }
  569. }
  570. }
  571. return 1;
  572. }
  573. /*****************************************************************************
  574. ** FUNCTION : Network_App_IsPopupExist
  575. **
  576. ** DESCRIPTION :
  577. ** Judge popmsg is exist
  578. **
  579. ** PARAMETERS :
  580. ** u32TargetPopup - popmsg type
  581. **
  582. ** RETURN VALUES:
  583. ** TRUE - exist
  584. ** FALSE - not exist
  585. *****************************************************************************/
  586. UINT8 Network_App_IsPopupExist(UINT32 u32TargetPopup)
  587. {
  588. if (u32TargetPopup == g_u32OldPopup)
  589. {
  590. return TRUE;
  591. }
  592. else
  593. {
  594. if((u32TargetPopup > Network_APP_POP_MSG_NONE)
  595. && (g_u32PopupWaitingList & (1 << (u32TargetPopup - Network_APP_POP_MSG_NONE))))
  596. {
  597. return TRUE;
  598. }
  599. else
  600. {
  601. return FALSE;
  602. }
  603. }
  604. }
  605. static void Network_App_ShowPopup(Network_AppPopMsgType_t ePopType)
  606. {
  607. PopmsgParam_t stPopup;
  608. memset(&stPopup, 0x0, sizeof(PopmsgParam_t));
  609. switch (ePopType)
  610. {
  611. #ifdef CONFIG_SUPPORT_MIRACAST
  612. case Network_APP_POP_MSG_CONNECTING:
  613. stPopup.eType = POPMSG_TYPE_PROMPT;
  614. stPopup.u16Exitkeys = POPMSG_EXIT_KEY_NONE;
  615. stPopup.u16ReturnType = GUI_OBJECT_POST_EVENT | GUI_OBJECT_EVENT_BYPASS;
  616. stPopup.extend.stPrompt.ePromptType = POPMSG_PROMPT_WFD_CONNECTING;
  617. stPopup.extend.stPrompt.iTimeout = 3;
  618. break;
  619. case Network_APP_POP_MSG_EXIT:
  620. stPopup.eType = POPMSG_TYPE_CONFIRM;
  621. stPopup.u16Exitkeys = POPMSG_EXIT_KEY_NONE;
  622. stPopup.u16ReturnType = GUI_OBJECT_POST_EVENT | GUI_OBJECT_EVENT_BYPASS;
  623. stPopup.extend.stConfirm.eConfirmType = POPMSG_PROMPT_WFD_EXIT;
  624. stPopup.extend.stConfirm.u8Default = POPMSG_NO;
  625. break;
  626. case Network_APP_POP_MSG_NETWORK_ERROR:
  627. stPopup.eType = POPMSG_TYPE_PROMPT;
  628. stPopup.u16Exitkeys = POPMSG_EXIT_KEY_NONE;
  629. stPopup.u16ReturnType = GUI_OBJECT_POST_EVENT | GUI_OBJECT_EVENT_BYPASS;
  630. stPopup.extend.stPrompt.ePromptType = POPMSG_PROMPT_WFD_NETWORK_ERROR;
  631. stPopup.extend.stPrompt.iTimeout = 3;
  632. break;
  633. #endif
  634. #ifdef CONFIG_SUPPORT_DLNA
  635. case Network_APP_POP_MSG_DLNA_MSG:
  636. stPopup.eType = POPMSG_TYPE_PROMPT;
  637. stPopup.u16Exitkeys = POPMSG_EXIT_KEY_NONE;
  638. stPopup.u16ReturnType = GUI_OBJECT_POST_EVENT | GUI_OBJECT_EVENT_BYPASS;
  639. stPopup.extend.stPrompt.ePromptType = POPMSG_PROMPT_DLNA_MESSAGE;
  640. break;
  641. #endif
  642. #ifdef CONFIG_SUPPORT_NET_OTA
  643. case Network_APP_POP_ERASE_WHOLE_FLASH_OTA:
  644. stPopup.eType = POPMSG_TYPE_CONFIRM;
  645. stPopup.u16Exitkeys = POPMSG_EXIT_EXIT | POPMSG_EXIT_RECALL;
  646. stPopup.u16ReturnType = GUI_OBJECT_POST_EVENT | GUI_OBJECT_EVENT_BYPASS;
  647. stPopup.extend.stConfirm.eConfirmType = POPMSG_CONFIRM_OTA;
  648. stPopup.extend.stConfirm.u8Default = POPMSG_NO;
  649. break;
  650. case Network_APP_POP_FTP_FILE_DOWNLOAD_WAITING:
  651. stPopup.eType = POPMSG_TYPE_PROMPT;
  652. stPopup.u16ReturnType = GUI_OBJECT_NO_POST_ACTION ;
  653. stPopup.extend.stPrompt.iTimeout = 0;
  654. stPopup.extend.stPrompt.ePromptType = POPMSG_FTP_FILE_DOWNLOAD_WAITING;
  655. break;
  656. #endif
  657. case Network_APP_POP_MSG_NOT_SUPPORT:
  658. stPopup.eType = POPMSG_TYPE_PROMPT;
  659. stPopup.u16Exitkeys = POPMSG_EXIT_KEY_NONE;
  660. stPopup.u16ReturnType = GUI_OBJECT_POST_EVENT | GUI_OBJECT_EVENT_BYPASS;
  661. stPopup.extend.stPrompt.ePromptType = POPMSG_PROMPT_UNSUPPORT_FILE;
  662. stPopup.extend.stPrompt.iTimeout = 2;
  663. break;
  664. default:
  665. return;
  666. }
  667. if (stNetwork_Inst.bAppState == SYSTEM_IDLE)
  668. {
  669. return;
  670. }
  671. Network_App_SchedulePopup(stPopup);
  672. }
  673. #ifdef CONFIG_SUPPORT_MIRACAST
  674. BOOL SysApp_Miracast_AL_CallBackFuc(AL_MEDIA_PLAYER_Event_t Event)
  675. {
  676. net_printf("\n\n\n\n------only test ----callback message from al middleware\n");
  677. net_printf("[%s] 0x%x\n\n\n", __FUNCTION__, Event);
  678. switch (Event)
  679. {
  680. case MEDIA_PLAYER_AV_EVENT_INITOK:
  681. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_INITOK), 0);
  682. break;
  683. case MEDIA_PLAYER_AV_EVENT_DECODE_START:
  684. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_DECODE_START), 0);
  685. break;
  686. case MEDIA_PLAYER_AV_EVENT_PLAY_DONE:
  687. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_PLAY_DONE), 0);
  688. break;
  689. default:
  690. net_printf("[%s] Unknown message type received.\n", __FUNCTION__);
  691. break;
  692. }
  693. return TRUE;
  694. }
  695. #endif
  696. #if defined (CONFIG_SUPPORT_NET_PLAY_RTSP) || defined(CONFIG_SUPPORT_NET_PLAY_HTTP)
  697. BOOL SysApp_Network_AL_CallBackFuc(AL_NET_PLAYER_Event_t Event)
  698. {
  699. net_printf("\n\n\n\n------only test ----callback message from al middleware\n");
  700. net_printf("[%s] 0x%x\n\n\n", __FUNCTION__, Event);
  701. switch (Event)
  702. {
  703. case NET_PLAYER_AV_EVENT_INITOK:
  704. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_INITOK|PASS_TO_SYSAPP), 0);
  705. break;
  706. case NET_PLAYER_AV_EVENT_INIT_FAILED:
  707. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_INIT_FAIL|PASS_TO_SYSAPP), 0);
  708. break;
  709. case NET_PLAYER_AV_EVENT_DECODE_START:
  710. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_DECODE_START|PASS_TO_SYSAPP), 0);
  711. break;
  712. case NET_PLAYER_AV_EVENT_PLAY_DONE:
  713. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_PLAY_DONE|PASS_TO_SYSAPP), 0);
  714. break;
  715. default:
  716. net_printf("[%s] Unknown message type received.\n", __FUNCTION__);
  717. break;
  718. }
  719. return TRUE;
  720. }
  721. #endif
  722. #ifdef CONFIG_SUPPORT_DLNA
  723. BOOL SysApp_DLNA_AL_CallBackFuc(AL_DLNA_PLAYER_Event_t Event)
  724. {
  725. net_printf("\n\n\n\n------only test ----callback message from al middleware\n");
  726. net_printf("[%s] 0x%x\n\n\n", __FUNCTION__, Event);
  727. switch (Event)
  728. {
  729. case DLNA_PLAYER_AV_EVENT_INITOK:
  730. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_INITOK|PASS_TO_SYSAPP), 0);
  731. break;
  732. case DLNA_PLAYER_AV_EVENT_INIT_FAILED:
  733. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_INIT_FAIL|PASS_TO_SYSAPP), 0);
  734. break;
  735. case DLNA_PLAYER_AV_EVENT_DECODE_START:
  736. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_DECODE_START|PASS_TO_SYSAPP), 0);
  737. break;
  738. case DLNA_PLAYER_AV_EVENT_PLAY_DONE:
  739. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_PLAY_DONE|PASS_TO_SYSAPP), 0);
  740. break;
  741. case DLNA_PLAYER_PIC_EVENT_DECODE_START:
  742. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_PIC_DECODE_START|PASS_TO_SYSAPP), 0);
  743. break;
  744. case DLNA_PLAYER_PIC_EVENT_DECODE_FINISH:
  745. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_PIC_DECODE_FINISH|PASS_TO_SYSAPP), 0);
  746. break;
  747. case DLNA_PLAYER_PIC_EVENT_DECODE_ERROR:
  748. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_PIC_DECODE_ERROR|PASS_TO_SYSAPP), 0);
  749. break;
  750. case DLNA_PLAYER_AV_EVENT_BUFFERING_START:
  751. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_BUFFERING_START|PASS_TO_SYSAPP), 0);
  752. break;
  753. case DLNA_PLAYER_AV_EVENT_BUFFERING_END:
  754. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_BUFFERING_END|PASS_TO_SYSAPP), 0);
  755. break;
  756. case DLNA_PLAYER_AV_EVENT_POOR_NETWORK:
  757. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_POOR_NETWORK), 0);
  758. break;
  759. default:
  760. net_printf("[%s] Unknown message type received.\n", __FUNCTION__);
  761. break;
  762. }
  763. return TRUE;
  764. }
  765. INT32 Dlna_App_CallbackFunc(DLNA_MW_CallbackType_e eCallbackType, UINT32 dParam)
  766. {
  767. UINT32 dMsgType = CBK_EVENT_DLNA_MW_EVENT_MAX;
  768. printf("~~~~~~~~eCallbackType is [%d] ~~~~~dParam is [%d]\n", eCallbackType, dParam);
  769. switch (eCallbackType)
  770. {
  771. case DLNA_MW_CBK_DMS_CONTENT_LIST_ERROR:
  772. dMsgType = CBK_EVENT_DLNA_CONTENT_LIST_ERROR;
  773. break;
  774. case DLNA_MW_CBK_DMS_CONTENT_LIST_DONE:
  775. dMsgType = CBK_EVENT_DLNA_CONTENT_LIST_DONE;
  776. break;
  777. case DLNA_MW_CBK_DMS_ADD:
  778. dMsgType = CBK_EVENT_DLNA_ADD_DMS_DONE;
  779. break;
  780. case DLNA_MW_CBK_DMS_DELETE:
  781. dMsgType = CBK_EVENT_DLNA_DELETE_DMS_DONE;
  782. break;
  783. case DLNA_MW_CBK_DRAW_LARGE_PIC_DONE:
  784. dMsgType = CBK_EVENT_DLNA_LARGE_PIC_DONE;
  785. break;
  786. case DLNA_MW_CBK_DRAW_LARGE_PIC_ERROR:
  787. dMsgType = CBK_EVENT_DLNA_LARGE_PIC_ERROR;
  788. break;
  789. case DLNA_MW_CBK_DRAW_THUMBNAIL_DONE:
  790. dMsgType = CBK_EVENT_DLNA_THUMBNAIL_DONE;
  791. break;
  792. case DLNA_MW_CBK_DRAW_THUMBNAIL_ERROR:
  793. dMsgType = CBK_EVENT_DLNA_THUMBNAIL_ERROR;
  794. break;
  795. case DLNA_WM_CBK_DATA_DONE:
  796. dMsgType = CBK_EVENT_DLNA_SMALL_PIC_DONE;
  797. break;
  798. case DLNA_WM_CBK_DATA_FAIL:
  799. dMsgType = CBK_EVENT_DLNA_SMALL_PIC_FAIL;
  800. break;
  801. case DLNA_MW_CBK_PLAY_FINISH:
  802. dMsgType = CBK_EVENT_VOD_CALLBACK_PLAYBACK_FINISH;
  803. break;
  804. case DLNA_MW_CBK_CACHE_START:
  805. dMsgType = CBK_EVENT_DLNA_CACHE_START;
  806. break;
  807. case DLNA_MW_CBK_STARTUP_FAIL:
  808. dMsgType = CBK_EVENT_VOD_CALLBACK_ADD_TASK_FAIL;
  809. break;
  810. case DLNA_MW_CBK_CACHE_STOP:
  811. dMsgType = CBK_EVENT_DLNA_CACHE_STOP;
  812. break;
  813. case DLNA_MW_CBK_SHOW_PLAY:
  814. dMsgType = CBK_EVENT_SHOW_PLAY_DMR;
  815. printf("CBK_EVENT_SHOW_PLAY_DMR=%x\n",CBK_EVENT_SHOW_PLAY_DMR);
  816. break;
  817. case DLNA_MW_CBK_SHOW_STOP:
  818. dMsgType = CBK_EVENT_SHOW_STOP_DMR;
  819. break;
  820. case DLNA_MW_CBK_SHOW_STOP_FAIL:
  821. dMsgType = CBK_EVENT_VOD_CALLBACK_PLAYBACK_STOP_FAIL;
  822. break;
  823. case DLNA_MW_CBK_FAIL:
  824. dMsgType = CBK_EVENT_VOD_CALLBACK_PLAYBACK_NEXT_FAIL;
  825. break;
  826. case DLNA_MW_CBK_SHOW_PAUSE:
  827. dMsgType = CBK_EVENT_SHOW_PAUSE_DMR;
  828. break;
  829. case DLNA_MW_CBK_SHOW_FF:
  830. dMsgType = CBK_EVENT_VOD_CALLBACK_PLAYBACK_FF_DONE;
  831. break;
  832. case DLNA_MW_CBK_SHOW_FR:
  833. dMsgType = CBK_EVENT_VOD_CALLBACK_PLAYBACK_FB_DONE;
  834. break;
  835. case DLNA_MW_CBK_SHOW_FR_FILE_BEGIN:
  836. dMsgType = CBK_EVENT_FASTBACK_TO_END;
  837. break;
  838. case DLNA_MW_CBK_SHOW_NEXT:
  839. dMsgType = CBK_EVENT_SHOW_NEXT_DMR;
  840. break;
  841. case DLNA_MW_CBK_SHOW_PREV:
  842. dMsgType = CBK_EVENT_SHOW_PREV_DMR;
  843. break;
  844. case DLNA_MW_CBK_SET_MUTE:
  845. dMsgType = CBK_EVENT_SET_MUTE;
  846. break;
  847. case DLNA_MW_CBK_GET_MUTE:
  848. {
  849. UINT32 *pdMute = (UINT32*)dParam;
  850. //dMsgType = CBK_EVENT_GET_MUTE;
  851. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO, 0,
  852. sizeof(APP_SETTING_UserInfo_t), &(g_stUserInfoData));
  853. *pdMute = g_stUserInfoData.Mute;
  854. return SYSTEM_APP_SUCCESFUL;
  855. }
  856. case DLNA_MW_CBK_SET_VOLUME:
  857. dMsgType = CBK_EVENT_SET_VOLUME;
  858. break;
  859. case DLNA_MW_CBK_GET_VOLUME:
  860. //dMsgType = CBK_EVENT_GET_VOLUME;
  861. break;
  862. case DLNA_MW_CBK_PLAY_DONE:
  863. dMsgType = CBK_EVENT_VIDEO_PLAY_DONE;
  864. break;
  865. case DLNA_MW_CBK_STARTUP_DONE:
  866. dMsgType = CBK_EVENT_STARTUP_DONE;
  867. break;
  868. case DLNA_MW_CBK_PLAY_START:
  869. dMsgType = CBK_EVENT_BPIC_STATR_PLAY;//add for mantis 0160705
  870. break;
  871. case DLNA_MW_CBK_SHOW_FF_FAIL:
  872. dMsgType = CBK_EVENT_VOD_CALLBACK_PLAYBACK_FF_FAIL;
  873. break;
  874. case DLNA_MW_CBK_SHOW_FR_FAIL:
  875. dMsgType = CBK_EVENT_VOD_CALLBACK_PLAYBACK_FB_FAIL;
  876. break;
  877. case DLNA_MW_CBK_CHANGE2_NORMAL_PLAY_DONE:
  878. dMsgType = CBK_EVENT_VOD_CALLBACK_PLAYBACK_CHANGE2_NORMAL_PLAY_DONE;
  879. break;
  880. case DLNA_MW_CBK_PE_NO_VIDEO_TRACK:
  881. dMsgType = CBK_EVENT_PE_NO_VIDEO_TRACK;
  882. break;
  883. case DLNA_MW_CBK_PE_NOT_SUPPORT_AUDIO:
  884. dMsgType = CBK_EVENT_PE_NOT_SUPPORT_AUDIO;
  885. break;
  886. default:
  887. break;
  888. }
  889. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, dMsgType|PASS_TO_SYSAPP, dParam);
  890. return SYSTEM_APP_SUCCESFUL;
  891. }
  892. static INT32 getDlnaDeviceName(char *name)
  893. {
  894. MID_NWSI_MAC_Addr_t mac;
  895. if(S_OK == MID_NWSI_GetMAC( MID_NWSI_GetConnectMode(), &mac ))
  896. {
  897. #ifdef CONFIG_DLNA_DEVICE_NAME
  898. snprintf(name, 50, CONFIG_DLNA_DEVICE_NAME "-%02X%02X", mac.E, mac.F);
  899. return 1;
  900. #endif
  901. }
  902. return 0;
  903. }
  904. static void* DLNAInitTask(void *arg)
  905. {
  906. Al_IP_t ip = {0};
  907. net_printf("Enter DLNAInitTask\n");
  908. while(gDlnaInitThreadRunning)
  909. {
  910. if( Al_Network_Ctrl_GetIP(&ip) == AL_SUCCESS)
  911. break;
  912. sleep(1);
  913. }
  914. if(!gDlnaInitThreadRunning) // thread is canceled
  915. {
  916. net_printf("Exit DLNAInitTask - canceled\n");
  917. pthread_exit(NULL);
  918. }
  919. if (gDlnaSema == NULL)
  920. {
  921. GL_Status_t dRetVal;
  922. dRetVal = GL_SemaphoreCreate("DLNA Quit Semaphore", 1, 1, &gDlnaSema);
  923. if (dRetVal != GL_SUCCESS)
  924. {
  925. net_printf("DLNA Quit Semaphore create fail!!");
  926. }
  927. }
  928. DLNA_MW_IF_SetDeviceNameRetrieveAPI(getDlnaDeviceName);
  929. DLNA_MWInitPara stInitData;
  930. memset(&stInitData, 0, sizeof(DLNA_MWInitPara));
  931. stInitData.semaQuit = gDlnaSema;
  932. stInitData.eMode = DLNA_DMR;
  933. if (DLNA_MW_IF_Initialize(&stInitData, Dlna_App_CallbackFunc) != DLNA_MW_IF_SUCCESSFUL)
  934. {
  935. net_printf("Init middleware fail\n");
  936. pthread_exit(NULL);
  937. }
  938. if (DLNA_MW_IF_NetPlayerInitialize() != DLNA_MW_IF_SUCCESSFUL)
  939. {
  940. net_printf("Init play fail\n");
  941. DLNA_MW_IF_Finalize();
  942. if(gDlnaSema != NULL)
  943. {
  944. GL_SemaphoreDelete(gDlnaSema);
  945. gDlnaSema = NULL;
  946. }
  947. pthread_exit(NULL);
  948. }
  949. gDlnaInited = true;
  950. net_printf("Exit DLNAInitTask\n");
  951. pthread_exit(NULL);
  952. }
  953. INT32 DLNAInit(void)
  954. {
  955. net_printf("Enter DLNAInit\n");
  956. if(!gDlnaInitThreadValid)
  957. {
  958. gDlnaInitThreadRunning = true;
  959. gDlnaInitThreadValid = (pthread_create(&gDlnaInitThread, NULL, DLNAInitTask, NULL) == 0);
  960. gDlnaInitThreadRunning = gDlnaInitThreadValid;
  961. }
  962. else
  963. {
  964. net_printf("DLNA is being initialized.");
  965. }
  966. net_printf("Exit DLNAInit\n");
  967. return 0;
  968. }
  969. void DLNA_EXIT(void)
  970. {
  971. net_printf("Enter DLNA_EXIT - 1\n");
  972. if(gDlnaInitThreadValid)
  973. {
  974. gDlnaInitThreadRunning = false;
  975. pthread_join(gDlnaInitThread, NULL);
  976. gDlnaInitThreadValid = false;
  977. }
  978. net_printf("Enter DLNA_EXIT - 2\n");
  979. if(gDlnaInited)
  980. {
  981. DLNA_MW_IF_NetPlayerFinalize();
  982. DLNA_MW_IF_Finalize();
  983. if(gDlnaSema != NULL)
  984. {
  985. GL_SemaphoreDelete(gDlnaSema);
  986. gDlnaSema = NULL;
  987. }
  988. }
  989. gDlnaInited = false;
  990. net_printf("Exit DLNA_EXIT\n");
  991. }
  992. void MonitorIPChange(void)
  993. {
  994. static Al_IP_t old_ip = {0};
  995. Al_IP_t ip = {0};
  996. if( Al_Network_Ctrl_GetIP(&ip) == AL_SUCCESS
  997. && memcmp(&ip, &old_ip, sizeof(Al_IP_t)) != 0)
  998. {
  999. net_printf("Detect IP changed from [%u.%u.%u.%u] to [%u.%u.%u.%u]\n", old_ip.IPA, old_ip.IPB, old_ip.IPC, old_ip.IPD, ip.IPA, ip.IPB, ip.IPC, ip.IPD);
  1000. memcpy(&old_ip, &ip, sizeof(Al_IP_t));
  1001. if(gDlnaInited)
  1002. {
  1003. net_printf("restart DMR now\n");
  1004. DLNA_MW_IF_ReStartDMR();
  1005. }
  1006. }
  1007. else if(Al_Network_Ctrl_GetIP(&ip) != AL_SUCCESS)
  1008. {
  1009. #ifdef CONFIG_SUPPORT_WIFI
  1010. if(MID_NWSI_WLAN_GetAPState() == E_MID_NWSI_WLAN_CONNECT_STATE_ON)
  1011. {
  1012. Al_APPW_t *pAPPW = NULL;
  1013. pAPPW = &g_stSetupData.WiFiSetting.WiFiPassword.APPW[0];
  1014. if(Al_Network_Ctrl_ConnectAP(g_stSetupData.WiFiSetting.ConnectAPData, pAPPW->PWlen, pAPPW->PassWord) == AL_SUCCESS)
  1015. {
  1016. Al_Network_Ctrl_SetDhcpStatic(e_AL_Network_Mode_Wireless, g_stSetupData.EthernetConnectMode, &g_stSetupData.IPSetting);
  1017. }
  1018. MID_NWSI_WLAN_WiFiEnable(TRUE);
  1019. }
  1020. #endif
  1021. }
  1022. }
  1023. #endif
  1024. #ifdef CONFIG_SUPPORT_NEW_AIRPLAY
  1025. bool SysApp_Airplay_CallBackFuc(Airplay_Event_t Event, int param)
  1026. {
  1027. net_printf("\n\n\n\n------only test ----callback message from airplay middleware\n");
  1028. net_printf("[%s] 0x%x\n\n\n", __FUNCTION__, Event);
  1029. switch (Event)
  1030. {
  1031. case AIRPLAY_AV_EVENT_INITOK:
  1032. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_INITOK|PASS_TO_SYSAPP), 0);
  1033. break;
  1034. case AIRPLAY_AV_EVENT_PLAY_DONE:
  1035. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, (NET_GLOBAL_EVENT_MEDIA_PLAY_DONE|PASS_TO_SYSAPP), 0);
  1036. break;
  1037. case AIRPLAY_AV_EVENT_NOT_HTTP:
  1038. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_AIRPLAY_NEW))
  1039. {
  1040. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_AIRPLAY_NEW, CBK_EVENT_AIRPLAY_MW_NOT_HTTP, 0);
  1041. }
  1042. break;
  1043. case AIRPLAY_AV_EVENT_SET_METADATA:
  1044. {
  1045. Airplay_Audio_MetaData_t metadata;
  1046. if(Airplay_GetAudioMetadata(&metadata) == AIRPLAY_SUCCESS)
  1047. {
  1048. net_printf("\n\n------- Audio metadata -------\n");
  1049. net_printf("Album = [%.*s]\n", metadata.songAlbum.size, metadata.songAlbum.data);
  1050. net_printf("Year = [%u]\n", metadata.songYear);
  1051. net_printf("AlbumArtist = [%.*s]\n", metadata.songArtist.size, metadata.songArtist.data);
  1052. net_printf("Artist = [%.*s]\n", metadata.songArtist.size, metadata.songArtist.data);
  1053. net_printf("Name = [%.*s]\n", metadata.songName.size, metadata.songName.data);
  1054. net_printf("Composer = [%.*s]\n", metadata.songComposer.size, metadata.songComposer.data);
  1055. net_printf("Genre = [%.*s]\n", metadata.songGenre.size, metadata.songGenre.data);
  1056. net_printf("TrackCount = [%u]\n", metadata.songTrackCount);
  1057. net_printf("TotalTime = [%u]\n", metadata.totalTime);
  1058. net_printf("\n-------------------------------\n");
  1059. }
  1060. break;
  1061. }
  1062. case AIRPLAY_AV_EVENT_SET_COVERART:
  1063. {
  1064. Airplay_Audio_CoverArt_t cover;
  1065. if(Airplay_GetAudioCoverArt(&cover) == AIRPLAY_SUCCESS)
  1066. {
  1067. net_printf("Get cover art, size = %u, data = %p\n", cover.size, cover.data);
  1068. // TODO: decode cover art here
  1069. Airplay_FreeAudioCoverArt(&cover);
  1070. }
  1071. break;
  1072. }
  1073. case AIRPLAY_AV_EVENT_SET_VOLUME:
  1074. #if 0 // forbid volume control from iDevice
  1075. g_stVariationalData.Volume = param >= ADJUST_MAX_VALUE ? ADJUST_MAX_VALUE : param;
  1076. APP_Audio_SetVolume((UINT32)g_stVariationalData.Volume);
  1077. AL_Setting_Write(APP_Data_UserSetting_Handle(), SYS_SET_ID_VARIATIONAL,
  1078. ITEM_OFFSET(APP_SETTING_Variational_t, Volume),
  1079. sizeof(g_stVariationalData.Volume), &(g_stVariationalData.Volume));
  1080. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_ADJUST))
  1081. {
  1082. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1083. APP_GUIOBJ_ADJUST, APP_GLOBAL_EVENT_UPDATE_VOLUMEMENU, g_stVariationalData.Volume);
  1084. }
  1085. else
  1086. {
  1087. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, APP_GUIOBJ_ADJUST, ADJUST_VOLUME);
  1088. }
  1089. #endif
  1090. break;
  1091. case AIRPLAY_AV_EVENT_SCREEN_ON:
  1092. net_printf("AIRPLAY SCREEN ON\n");
  1093. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_AIRPLAY_NEW))
  1094. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_AIRPLAY_NEW, CBK_EVENT_AIRPLAY_AV_SCREEN_ON, 0);
  1095. break;
  1096. case AIRPLAY_AV_EVENT_SCREEN_OFF:
  1097. net_printf("AIRPLAY SCREEN OFF\n");
  1098. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_AIRPLAY_NEW))
  1099. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_AIRPLAY_NEW, CBK_EVENT_AIRPLAY_AV_SCREEN_OFF, 0);
  1100. break;
  1101. default:
  1102. net_printf("[%s] Unknown message type received.\n", __FUNCTION__);
  1103. break;
  1104. }
  1105. return TRUE;
  1106. }
  1107. #endif
  1108. static int Network_App_OnCreate(void** ppPrivateData)
  1109. {
  1110. net_printf("OnInitialize function is called.\n");
  1111. stNetwork_Inst.bAppState = SYSTEM_IDLE;
  1112. #ifdef CONFIG_SUPPORT_MIRACAST
  1113. MediaCtrl_Player_RegisterMsgRouteway(SysApp_Miracast_AL_CallBackFuc);
  1114. #endif
  1115. #if defined (CONFIG_SUPPORT_NET_PLAY_RTSP) || defined(CONFIG_SUPPORT_NET_PLAY_HTTP)
  1116. NetCtrl_NET_Player_RegisterMsgRouteway(SysApp_Network_AL_CallBackFuc);
  1117. #endif
  1118. #ifdef CONFIG_SUPPORT_DLNA
  1119. DLNA_MediaCtrl_NET_Player_RegisterMsgRouteway(SysApp_DLNA_AL_CallBackFuc);
  1120. #endif
  1121. #ifdef CONFIG_SUPPORT_NEW_AIRPLAY
  1122. Airplay_RegisterCBKFunc(SysApp_Airplay_CallBackFuc);
  1123. #endif
  1124. return NET_APP_SUCCESS;
  1125. }
  1126. static int Network_App_OnDestroy(void** ppPrivateData)
  1127. {
  1128. net_printf("OnDestroy() is called.\n");
  1129. return NET_APP_SUCCESS;
  1130. }
  1131. static int Network_App_OnRun(void* pPrivateData, UINT32 dParam)
  1132. {
  1133. net_printf("Network_App_OnRun() is called.\n");
  1134. int dRet=NET_APP_SUCCESS;
  1135. APP_GUIOBJ_PopMs_SetCloseFun(Network_App_ClosePopup);
  1136. APP_GuiMgr_Set_Menu() ;
  1137. APP_GuiMgr_SwitchShareMenu(SYS_APP_NETWORK);
  1138. if (SP_SUCCESS != APP_GUIOBJ_Source_SetMidSource(NULL))
  1139. {
  1140. printf("[%s] %d, Mid display setting source fail\n", __FUNCTION__, __LINE__);
  1141. APP_GUIOBJ_Source_SetSourceTransState(FALSE);
  1142. g_u8SourceTrastTimer = 0;
  1143. return SP_ERR_FAILURE;
  1144. }
  1145. NET_Homepage_SetSource(ITEM_HOMEPAGE_MAX);
  1146. APP_GUIOBJ_Source_SetSourceTransState(FALSE);
  1147. g_bOpenHomeMenuAfterCloseNetMenu = TRUE;
  1148. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK,
  1149. NET_GLOBAL_EVENT_ON_RUN | PASS_TO_SYSAPP, TRUE);
  1150. net_printf("Network_App_OnRun() is Exit line:%d.\n",__LINE__);
  1151. return dRet;
  1152. }
  1153. static int Network_App_OnTerminate(void* pPrivateData, UINT32 dParam)
  1154. {
  1155. net_printf("App_OnTerminate() is called.\n");
  1156. int dRet = NET_APP_SUCCESS;
  1157. #if defined (CONFIG_SUPPORT_NET_PLAY_RTSP) || defined(CONFIG_SUPPORT_NET_PLAY_HTTP)
  1158. NetCtrl_Finalize();
  1159. #endif
  1160. #ifdef CONFIG_SUPPORT_MIRACAST
  1161. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_WFD_AUDIO_PLAYBACK))
  1162. {
  1163. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_WFD_AUDIO_PLAYBACK);
  1164. }
  1165. #endif
  1166. NET_DestroyPartialObjects(TRUE);
  1167. SYSAPP_GOBJ_FinalizeGUIObject(SYS_APP_NETWORK);
  1168. stNetwork_Inst.bAppState = SYSTEM_IDLE;
  1169. return dRet;
  1170. }
  1171. static int Network_App_OnTimerUpdate(void* pPrivateData)
  1172. {
  1173. int dRet = NET_APP_SUCCESS;
  1174. #ifdef SUPPORT_CEC_TV
  1175. /*Delay the mute key sending to AMP*/
  1176. if((0 <= g_u32Mutekeydelaytime) && (g_u32Mutekeydelaytime < MUTE_KEY_INTERVAL))
  1177. {
  1178. g_u32Mutekeydelaytime++;
  1179. g_u32MuteIconHandle++;
  1180. }
  1181. #endif
  1182. #ifdef CONFIG_SUPPORT_MIRACAST_DLNA_INONE
  1183. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_MIRACAST_DLNA_PAGE))
  1184. MonitorIPChange();
  1185. #else
  1186. #ifdef CONFIG_SUPPORT_DLNA
  1187. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_DLNA_PAGE))
  1188. MonitorIPChange();
  1189. #endif
  1190. #endif
  1191. return dRet;
  1192. }
  1193. int Network_App_OnGlobalEvent(void* pPrivateData, UINT32 dMessage, UINT32 dParam)
  1194. {
  1195. net_printf("Network_App_OnGlobalEvent() is called.\n");
  1196. int sdRet = NET_APP_SUCCESS;
  1197. dMessage = (dMessage & ~PASS_TO_SYSAPP);
  1198. #ifdef SUPPORT_CEC_TV
  1199. if (CECTV_GetCECEnable()==CECTV_ENABLE)
  1200. {
  1201. //active source
  1202. if(dMessage==UI_EVENT_TVRADIO)
  1203. {
  1204. net_printf("========================UI_EVENT_TVRADIO========================");
  1205. CECTV_SendCmd(CECTV_SINGLE_ACT_CMD_CHGSRC_OUT_HDMI, SRC_OTHERS);
  1206. }
  1207. if(dMessage==UI_EVENT_MUTE)
  1208. {
  1209. net_printf("\n\n=============CEC Send Audio Mute===============\n\n");
  1210. //CECTV_SendCmd(CECTV_SINGLE_ACT_CMD_KEYPRESS, CECTV_KEY_MUTE<<8|0x05);//Mute Function
  1211. if (CECTV_GetHDMISystemAudioMode())
  1212. {
  1213. if(g_u32Mutekeydelaytime >= MUTE_KEY_INTERVAL) /*Delay the mute key sending to AMP*/
  1214. {
  1215. cec_RemoteControlPassThrough(CECTV_KEY_MUTE);
  1216. cec_RemoteControlPassThrough(CECTV_KEY_MUTE_RELEASE);
  1217. g_u32Mutekeydelaytime = 0;
  1218. }
  1219. }
  1220. }
  1221. if(dMessage==UI_EVENT_VOL_UP)
  1222. {
  1223. net_printf("========================UI_EVENT_VOL_UP========================");
  1224. //CECTV_SendCmd(CECTV_SINGLE_ACT_CMD_KEYPRESS, CECTV_KEY_VOLUME_UP<<8|0x05);//UCP VOL_DN Function
  1225. if (CECTV_GetHDMISystemAudioMode() && APP_Check_CEC_DEVICE_Status())
  1226. {
  1227. if (dParam & IR_EVENT_REPEAT_TYPE)
  1228. {
  1229. cec_RemoteControlPassThrough(CECTV_KEY_VOLUME_UP);
  1230. }
  1231. else if (dParam & IR_EVENT_REPEAT_END)
  1232. {
  1233. cec_RemoteControlPassThrough(CECTV_KEY_VOLUME_UP_RELEASE);
  1234. }
  1235. else
  1236. {
  1237. cec_RemoteControlPassThrough(CECTV_KEY_VOLUME_UP);
  1238. cec_RemoteControlPassThrough(CECTV_KEY_VOLUME_UP_RELEASE);
  1239. }
  1240. }
  1241. }
  1242. if(dMessage==UI_EVENT_VOL_DN)
  1243. {
  1244. net_printf("========================UI_EVENT_VOL_DN========================");
  1245. //CECTV_SendCmd(CECTV_SINGLE_ACT_CMD_KEYPRESS, CECTV_KEY_VOLUME_DOWN<<8|0x05);//UCP VOL_DN Function
  1246. if (CECTV_GetHDMISystemAudioMode() && APP_Check_CEC_DEVICE_Status())
  1247. {
  1248. if (dParam & IR_EVENT_REPEAT_TYPE)
  1249. {
  1250. cec_RemoteControlPassThrough(CECTV_KEY_VOLUME_DOWN);
  1251. }
  1252. else if (dParam & IR_EVENT_REPEAT_END)
  1253. {
  1254. cec_RemoteControlPassThrough(CECTV_KEY_VOLUME_DOWN_RELEASE);
  1255. }
  1256. else
  1257. {
  1258. cec_RemoteControlPassThrough(CECTV_KEY_VOLUME_DOWN);
  1259. cec_RemoteControlPassThrough(CECTV_KEY_VOLUME_DOWN_RELEASE);
  1260. }
  1261. }
  1262. }
  1263. }
  1264. #endif
  1265. switch (dMessage)
  1266. {
  1267. #ifdef SUPPORT_POWERAGAIN_CONFIRM_POWEROFF
  1268. case APP_GLOBAL_EVENT_CONFIRM_POWER:
  1269. {
  1270. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_MAINMENUPOP))
  1271. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_MAINMENUPOP);
  1272. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_LOADING))
  1273. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_LOADING);
  1274. NET_DestroyAppointedGUI();
  1275. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, NET_GUIOBJ_NULL, 0);
  1276. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, APP_GUIOBJ_MAINMENUPOP, MAINPOPMSG_SHOW_CONFIRM_POWER);
  1277. break;
  1278. }
  1279. #endif
  1280. case NET_GLOBAL_EVENT_ON_RUN:
  1281. if (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_MUTE))
  1282. {
  1283. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, APP_GUIOBJ_MUTE, 0);
  1284. }
  1285. #ifdef CONFIG_SUPPORT_NET_PLAY_RTSP
  1286. {
  1287. NetCtrl_Initialize();
  1288. _Play_RTSP_Stream();
  1289. }
  1290. #elif defined(CONFIG_SUPPORT_NET_PLAY_HTTP)
  1291. {
  1292. NetCtrl_Initialize();
  1293. _Play_HTTP_Stream();
  1294. }
  1295. #endif
  1296. extern INT32 APP_Factory_CheckNeedReopenFm(UINT8 bSystemAppIndex);
  1297. if(!APP_Factory_CheckNeedReopenFm(SYS_APP_NETWORK))
  1298. {
  1299. if (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_MUTE))
  1300. {
  1301. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, APP_GUIOBJ_MUTE, 0);
  1302. }
  1303. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_HOMEPAGE))
  1304. {
  1305. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, NET_GUIOBJ_HOMEPAGE, 0);
  1306. }
  1307. }
  1308. break;
  1309. case NET_GLOBAL_EVENT_OBJECT_CLOSE:
  1310. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_NULL))
  1311. {
  1312. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_NULL);
  1313. }
  1314. break;
  1315. case UI_EVENT_EXIT:
  1316. case UI_EVENT_RETURN:
  1317. printf("%s %d\n",__FUNCTION__,__LINE__);
  1318. if (APP_MenuMgr_Exist_Main_Menu())
  1319. {
  1320. APP_MenuMgr_Exit_Main_Menu();
  1321. }
  1322. if (APP_MenuMgr_Exist_Factory_Menu())
  1323. {
  1324. APP_MenuMgr_Exit_Factory_Menu();
  1325. if(!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_HOMEPAGE))
  1326. {
  1327. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, NET_GUIOBJ_HOMEPAGE, 0);
  1328. }
  1329. }
  1330. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_SOURCE))
  1331. {
  1332. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_SOURCE);
  1333. }
  1334. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_OPTIONMENU))
  1335. {
  1336. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_OPTIONMENU);
  1337. }
  1338. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_MAINMENUPOP))
  1339. {
  1340. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_MAINMENUPOP);
  1341. }
  1342. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_NULL))
  1343. {
  1344. printf("%s %d\n",__FUNCTION__,__LINE__);
  1345. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_NULL);
  1346. }
  1347. break;
  1348. case UI_EVENT_RECALL:
  1349. break;
  1350. case UI_EVENT_MENU:
  1351. #if defined (CONFIG_SUPPORT_MIRACAST_DLNA_INONE)
  1352. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_MIRACAST_DLNA_PAGE))
  1353. {
  1354. break;
  1355. }
  1356. #else
  1357. #if defined (CONFIG_SUPPORT_MIRACAST)
  1358. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_MIRACAST_PAGE))
  1359. {
  1360. break;
  1361. }
  1362. #endif
  1363. #if defined (CONFIG_SUPPORT_DLNA)
  1364. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_DLNA_PAGE))
  1365. {
  1366. break;
  1367. }
  1368. #endif
  1369. #endif
  1370. if (APP_MenuMgr_Exist_Main_Menu())
  1371. {
  1372. APP_MenuMgr_Exit_Main_Menu();
  1373. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_NULL);
  1374. }
  1375. else if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_SOURCE))
  1376. {
  1377. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_SOURCE);
  1378. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, NET_GUIOBJ_NULL, 0);
  1379. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, APP_GUIOBJ_MAINMENU, 0);
  1380. }
  1381. else
  1382. {
  1383. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, NET_GUIOBJ_NULL, 0);
  1384. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, APP_GUIOBJ_MAINMENU, 0);
  1385. }
  1386. break;
  1387. case UI_EVENT_SOURCE:
  1388. #if defined (CONFIG_SUPPORT_MIRACAST_DLNA_INONE)
  1389. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_MIRACAST_DLNA_PAGE))
  1390. {
  1391. break;
  1392. }
  1393. #else
  1394. #if defined (CONFIG_SUPPORT_MIRACAST)
  1395. // if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_MIRACAST_PAGE))
  1396. // {
  1397. // break;
  1398. // }
  1399. #endif
  1400. #if defined (CONFIG_SUPPORT_DLNA)
  1401. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_DLNA_PAGE))
  1402. {
  1403. break;
  1404. }
  1405. #endif
  1406. #endif
  1407. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_SOURCE))
  1408. {
  1409. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_SOURCE);
  1410. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_NULL);
  1411. }
  1412. else
  1413. {
  1414. NET_DestroyAppointedGUI();
  1415. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, NET_GUIOBJ_NULL, 0);
  1416. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, APP_GUIOBJ_SOURCE, 0);
  1417. }
  1418. break;
  1419. #ifdef CONFIG_MEDIA_ENABLE
  1420. case UI_EVENT_SRC_USB:
  1421. {
  1422. NET_DestroyAppointedGUI();
  1423. if (SP_SUCCESS != APP_GUIOBJ_Source_SetAppSource(APP_SOURCE_MEDIA))
  1424. {
  1425. net_printf("APP_GUIOBJ_Source_SetAppSource Fail!!!!!!!!!\n");
  1426. }
  1427. }
  1428. break;
  1429. #endif
  1430. case UI_EVENT_SND_MOD:
  1431. #ifdef SUPPORT_CEC_TV
  1432. #ifdef SUPPORT_SMODE_UNMUTE
  1433. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO, 0,
  1434. sizeof(APP_SETTING_UserInfo_t), &(g_stUserInfoData));
  1435. if(g_stUserInfoData.Mute)
  1436. {
  1437. if (CECTV_GetHDMISystemAudioMode()&& APP_Check_CEC_DEVICE_Status())
  1438. {
  1439. cec_RemoteControlPassThrough(CECTV_KEY_MUTE);
  1440. cec_RemoteControlPassThrough(CECTV_KEY_MUTE_RELEASE);
  1441. }
  1442. }
  1443. _APP_GUIOBJ_Sound_SetMuteStatus();
  1444. #endif
  1445. #endif
  1446. case UI_EVENT_SLEEP:
  1447. case UI_EVENT_PIC_MOD:
  1448. case UI_EVENT_ASPECT:
  1449. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_BANNER))
  1450. {
  1451. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_BANNER);
  1452. }
  1453. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_ADJUST))
  1454. {
  1455. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_ADJUST);
  1456. }
  1457. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_AMPLIFIERVOLUME))
  1458. {
  1459. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_AMPLIFIERVOLUME);
  1460. }
  1461. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_MAINMENUPOP))
  1462. {
  1463. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_MAINMENUPOP);
  1464. }
  1465. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_OPTIONMENU))
  1466. {
  1467. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_OPTIONMENU);
  1468. }
  1469. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK,APP_GUIOBJ_BANNER, dMessage);
  1470. break;
  1471. case APP_GLOBAL_EVENT_POPMSG_YES:
  1472. #ifdef CONFIG_SUPPORT_NET_OTA
  1473. if (POPMSG_CONFIRM_OTA == dParam)
  1474. {
  1475. if (!SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_SOFTWARE_UPGRADE))
  1476. {
  1477. Network_App_ShowPopup(Network_APP_POP_FTP_FILE_DOWNLOAD_WAITING);
  1478. if(NET_OTA_DownloadUpdate() == NET_OTA_OK)
  1479. {
  1480. Network_App_ClosePopup(POPMSG_FTP_FILE_DOWNLOAD_WAITING,UI_EVENT_NULL);
  1481. #if defined(CONFIG_SUPPORT_NET_OTA_FROM_USB)
  1482. APP_SetUpdateSource(UPGRADE_NETWORK_FROM_USB);
  1483. #elif defined(CONFIG_SUPPORT_NET_OTA_FROM_MEM)
  1484. APP_SetUpdateSource(UPGRADE_NETWORK_FROM_MEM);
  1485. #else
  1486. #error No storage for NET OTA is selected.
  1487. #endif
  1488. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, APP_GUIOBJ_SOFTWARE_UPGRADE, SOFTWARE_UPGRADE_FROM_NET_OTA);
  1489. return GUI_OBJECT_POST_EVENT;
  1490. }
  1491. Network_App_ClosePopup(POPMSG_FTP_FILE_DOWNLOAD_WAITING,UI_EVENT_NULL);
  1492. }
  1493. }
  1494. #endif
  1495. break;
  1496. case APP_GLOBAL_EVENT_POPMSG_NO:
  1497. #ifdef CONFIG_SUPPORT_MIRACAST
  1498. if (Network_App_IsPopupExist(Network_APP_POP_MSG_EXIT))
  1499. {
  1500. Network_App_ClosePopup(Network_APP_POP_MSG_EXIT, UI_EVENT_NULL);
  1501. }
  1502. #endif
  1503. #ifdef CONFIG_SUPPORT_NET_OTA
  1504. if (POPMSG_CONFIRM_OTA == dParam)
  1505. {
  1506. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_NULL))
  1507. {
  1508. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_NULL);
  1509. }
  1510. }
  1511. #endif
  1512. break;
  1513. #ifdef CONFIG_SUPPORT_MIRACAST
  1514. case CBK_EVENT_WFD_LINK_SUCCESS:
  1515. if (Network_App_IsPopupExist(Network_APP_POP_MSG_CONNECTING))
  1516. {
  1517. Network_App_ClosePopup(Network_APP_POP_MSG_CONNECTING, UI_EVENT_NULL);
  1518. }
  1519. if (Network_App_IsPopupExist(Network_APP_POP_MSG_EXIT))
  1520. {
  1521. Network_App_ClosePopup(Network_APP_POP_MSG_EXIT, UI_EVENT_NULL);
  1522. }
  1523. if (Network_App_IsPopupExist(Network_APP_POP_MSG_NETWORK_ERROR))
  1524. {
  1525. Network_App_ClosePopup(Network_APP_POP_MSG_NETWORK_ERROR, UI_EVENT_NULL);
  1526. }
  1527. break;
  1528. case CBK_EVENT_WFD_LINK_SUCCESS_NO_VIDEO:
  1529. if (Network_App_IsPopupExist(Network_APP_POP_MSG_CONNECTING))
  1530. {
  1531. Network_App_ClosePopup(Network_APP_POP_MSG_CONNECTING, UI_EVENT_NULL);
  1532. }
  1533. if (Network_App_IsPopupExist(Network_APP_POP_MSG_EXIT))
  1534. {
  1535. Network_App_ClosePopup(Network_APP_POP_MSG_EXIT, UI_EVENT_NULL);
  1536. }
  1537. if (Network_App_IsPopupExist(Network_APP_POP_MSG_NETWORK_ERROR))
  1538. {
  1539. Network_App_ClosePopup(Network_APP_POP_MSG_NETWORK_ERROR, UI_EVENT_NULL);
  1540. }
  1541. if (SYSTEM_APP_SUCCESS != SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, NET_GUIOBJ_WFD_AUDIO_PLAYBACK/*here may be audio/video/photo*/, 0))
  1542. {
  1543. net_printf("%s Create audio playback guiobj error!\n", __FUNCTION__);
  1544. }
  1545. break;
  1546. case CBK_EVENT_WFD_LINK_DISCONNECTED:
  1547. if (!Network_App_IsPopupExist(Network_APP_POP_MSG_NETWORK_ERROR))
  1548. {
  1549. Network_App_ShowPopup(Network_APP_POP_MSG_NETWORK_ERROR);
  1550. }
  1551. break;
  1552. case CBK_EVENT_WFD_SOURCE_TEARDOWN:
  1553. //MAINAPP_SendGlobalEvent(UI_EVENT_SETUP,0);
  1554. break;
  1555. #endif
  1556. #if defined(CONFIG_SUPPORT_MIRACAST) || defined(CONFIG_SUPPORT_DLNA) || defined(CONFIG_SUPPORT_NET_PLAY_RTSP) || defined(CONFIG_SUPPORT_NET_PLAY_HTTP)
  1557. case UI_EVENT_MUTE:
  1558. #ifdef SUPPORT_CEC_TV
  1559. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FEATURE, 0,
  1560. sizeof(APP_SETTING_Feature_t), &(g_stFeatureData));
  1561. if (( APP_SWITCH_ON == g_stFeatureData.Enable_HDMILink)
  1562. #ifdef SUPPORT_AMPLIFIER_CONTROL
  1563. &&(APP_SWITCH_ON == g_stFeatureData.AmplifierControl)
  1564. #endif
  1565. &&(APP_HDMILINK_AMPLIFIER == g_stFeatureData.SpeakerPreference) && APP_GUIOBJ_Source_GetAmplifierPort())
  1566. {
  1567. if (CECTV_GetCECEnable()==CECTV_ENABLE && CECTV_GetHDMISystemAudioMode() && g_u32MuteIconHandle >= MUTE_KEY_INTERVAL)
  1568. {
  1569. APP_Set_CECTV_Mute_Status(EVENT_CECTV_SET_MUTE_STATUS_MUTE);
  1570. if (APP_Get_HDMICEC_AMP_Mute_Status() == FALSE)
  1571. APP_Set_HDMICEC_AMP_Mute_Status(TRUE);
  1572. else
  1573. APP_Set_HDMICEC_AMP_Mute_Status(FALSE);
  1574. APP_GUIOBJ_Mute_MuteKeyHandler();
  1575. g_u32MuteIconHandle = 0;
  1576. break;
  1577. }
  1578. else if(g_u32MuteIconHandle < MUTE_KEY_INTERVAL)//Don't handle mute icon
  1579. {
  1580. break;
  1581. }
  1582. }
  1583. #endif
  1584. APP_GUIOBJ_Mute_MuteKeyHandler();
  1585. break;
  1586. #endif
  1587. #ifdef CONFIG_SUPPORT_HDMI_PLUGIN_CHANGE_SOURCE
  1588. case APP_GLOBAL_EVENT_HDMI_CHANGE_SOURCE:
  1589. net_printf("[FileApp OnGlobalEvent] APP_GLOBAL_EVENT_HDMI_CHANGE_SOURCE.\n");
  1590. /* Check invalid state +++*/
  1591. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTUSER, 0,
  1592. sizeof(APP_SETTING_FactoryUser_t), &(g_stFactoryUserData));
  1593. if (g_stFactoryUserData.n_FactSet_BurningMode == al_true)
  1594. {
  1595. break;
  1596. }
  1597. NET_DestroyAppointedGUI();
  1598. UINT8 tmpSrc = (UINT8)((CONFIG_HDMI_PORT_MAP>>(dParam*4))&0xf);
  1599. APP_Source_Type_t eSrc1;
  1600. switch(tmpSrc)
  1601. {
  1602. case SRC_HDMI_1:
  1603. eSrc1 = APP_SOURCE_HDMI;
  1604. break;
  1605. case SRC_HDMI_2:
  1606. eSrc1 = APP_SOURCE_HDMI1;
  1607. break;
  1608. case SRC_HDMI_3:
  1609. eSrc1 = APP_SOURCE_HDMI2;
  1610. break;
  1611. default:
  1612. net_printf(" not invalid source,need change backsource!");
  1613. return 0;
  1614. }
  1615. /* Check invalid state ---*/
  1616. if (SP_SUCCESS != APP_GUIOBJ_Source_SetAppSource(eSrc1))
  1617. {
  1618. net_printf("[FileApp OnGlobalEvent] APP_GUIOBJ_Source_SetAppSource faild.\n");
  1619. }
  1620. break;
  1621. #endif
  1622. #ifdef SUPPORT_CEC_TV
  1623. case DMN_EVENT_CECTV_SET_MUTE_STATUS:
  1624. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FEATURE, 0,
  1625. sizeof(APP_SETTING_Feature_t), &(g_stFeatureData));
  1626. if (( APP_SWITCH_ON == g_stFeatureData.Enable_HDMILink)
  1627. #ifdef SUPPORT_AMPLIFIER_CONTROL
  1628. &&(APP_SWITCH_ON == g_stFeatureData.AmplifierControl)
  1629. #endif
  1630. &&(APP_HDMILINK_AMPLIFIER == g_stFeatureData.SpeakerPreference) && APP_GUIOBJ_Source_GetAmplifierPort())
  1631. {
  1632. if (CECTV_GetCECEnable()==CECTV_ENABLE)
  1633. {
  1634. APP_Process_CECTV_Mute_Status(dParam);
  1635. if(g_stUserInfoData.Mute == TRUE && APP_Get_HDMICEC_AMP_Mute_Status() == FALSE)
  1636. {
  1637. APP_GUIOBJ_Mute_MuteKeyHandler();
  1638. }
  1639. else if(g_stUserInfoData.Mute == FALSE && APP_Get_HDMICEC_AMP_Mute_Status() == TRUE)
  1640. {
  1641. APP_GUIOBJ_Mute_MuteKeyHandler();
  1642. }
  1643. }
  1644. }
  1645. break;
  1646. case DMN_EVENT_CECTV_SET_SYSTEMAUDIO_STATUS:
  1647. APP_Process_CECTV_Control_Status_From_Amp(dParam);
  1648. break;
  1649. case DMN_EVENT_CECTV_SET_DEVICE_OSDNAME:
  1650. break;
  1651. case NET_GLOBAL_EVENT_HDMIPORT_STATUS:
  1652. CECTV_HDMIPortStatus(dParam);
  1653. break;
  1654. #endif
  1655. case APP_GLOBAL_EVENT_SLEEP_TIMER_INFO:
  1656. NET_DestroyAppointedGUI();
  1657. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, NET_GUIOBJ_NULL, 0);
  1658. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, APP_GUIOBJ_SLEEP_INFO, dParam);
  1659. break;
  1660. #if defined(CONFIG_HEADPHONE_DETECT_BY_ISR) || defined(CONFIG_HPDET_BY_SWTIMER)
  1661. case APP_GLOBAL_EVENT_HEADPHONE_PLUG_IN:
  1662. APP_Audio_Set_HPStatus(APP_Audio_Headphone_PlugIn);
  1663. APP_Audio_SetMuteSpeakerWithoutAMP(TRUE);
  1664. APP_Audio_SetMuteAMP(TRUE);
  1665. APP_Audio_SetMuteDACSpeak(TRUE);
  1666. APP_Audio_SetMuteDACHeadohone(FALSE);
  1667. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO, 0,
  1668. sizeof(APP_SETTING_UserInfo_t), &(g_stUserInfoData));
  1669. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FEATURE, 0,
  1670. sizeof(APP_SETTING_Feature_t), &(g_stFeatureData));
  1671. if ((g_stUserInfoData.Mute == FALSE) && g_stFeatureData.SpeakerPreference == APP_HDMILINK_TVSPEAKER)
  1672. {
  1673. APP_Audio_SetMuteSpeakerWithoutAMP(FALSE);
  1674. }
  1675. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_VARIATIONAL, 0,
  1676. sizeof(APP_SETTING_Variational_t), &(g_stVariationalData));
  1677. APP_Audio_SetVolume(g_stVariationalData.Volume);
  1678. break;
  1679. case APP_GLOBAL_EVENT_HEADPHONE_PLUG_OUT:
  1680. APP_Audio_Set_HPStatus(APP_Audio_Headphone_PlugOut);
  1681. APP_Audio_SetMuteDACHeadohone(TRUE);
  1682. APP_Audio_SetMuteSpeakerWithoutAMP(TRUE);
  1683. APP_Audio_SetMuteDACSpeak(FALSE);
  1684. APP_Audio_SetMuteAMP(FALSE);
  1685. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO, 0,
  1686. sizeof(APP_SETTING_UserInfo_t), &(g_stUserInfoData));
  1687. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FEATURE, 0,
  1688. sizeof(APP_SETTING_Feature_t), &(g_stFeatureData));
  1689. if ((g_stUserInfoData.Mute == FALSE) && g_stFeatureData.SpeakerPreference == APP_HDMILINK_TVSPEAKER)
  1690. {
  1691. APP_Audio_SetMuteSpeakerWithoutAMP(FALSE);
  1692. }
  1693. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_VARIATIONAL, 0,
  1694. sizeof(APP_SETTING_Variational_t), &(g_stVariationalData));
  1695. APP_Audio_SetVolume(g_stVariationalData.Volume);
  1696. break;
  1697. #endif
  1698. case NET_GLOBAL_EVENT_MEDIA_INITOK:
  1699. {
  1700. #ifdef CONFIG_SUPPORT_DLNA
  1701. DLNA_DMSItemInfo * DMSItemInfo = NULL;
  1702. DLNA_MW_IF_Get_DMSContList(&DMSItemInfo, 0, DLNA_MEDIA_UNKNOWN);
  1703. #endif
  1704. #ifdef CONFIG_SUPPORT_MIRACAST_DLNA_INONE
  1705. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_MIRACAST_DLNA_PAGE))
  1706. {
  1707. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1708. NET_GUIOBJ_MIRACAST_DLNA_PAGE, NET_GLOBAL_EVENT_MEDIA_HIDE_MSG, 0);
  1709. }
  1710. #else
  1711. #ifdef CONFIG_SUPPORT_MIRACAST
  1712. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_MIRACAST_PAGE))
  1713. {
  1714. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1715. NET_GUIOBJ_MIRACAST_PAGE, NET_GLOBAL_EVENT_MEDIA_HIDE_MSG, 0);
  1716. }
  1717. #endif
  1718. #ifdef CONFIG_SUPPORT_DLNA
  1719. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_DLNA_PAGE))
  1720. {
  1721. if(DMSItemInfo && DMSItemInfo->MediaType != DLNA_MEDIA_VIDEO)
  1722. {
  1723. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1724. NET_GUIOBJ_DLNA_PAGE, NET_GLOBAL_EVENT_MEDIA_HIDE_LOADING, 0);
  1725. }
  1726. }
  1727. #endif
  1728. #endif
  1729. #ifdef CONFIG_SUPPORT_NEW_AIRPLAY
  1730. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_AIRPLAY_NEW))
  1731. {
  1732. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1733. NET_GUIOBJ_AIRPLAY_NEW, NET_GLOBAL_EVENT_MEDIA_HIDE_MSG, 0);
  1734. }
  1735. #endif
  1736. UINT8 u8AspectRatioIndex = 0;
  1737. UINT8 u8Mute = 0;
  1738. APP_Video_AspectRatioType_e u8AspectRatioType = APP_VIDEO_ASPECT_RATIO_MAX;
  1739. APP_Video_AspectSystemSetRead(&u8AspectRatioIndex);
  1740. u8AspectRatioType = APP_Video_AspectRatioIndexMappingToType(u8AspectRatioIndex);
  1741. if(0
  1742. #ifdef CONFIG_SUPPORT_NEW_AIRPLAY
  1743. || SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_AIRPLAY_NEW)
  1744. #endif
  1745. #ifdef CONFIG_SUPPORT_DLNA
  1746. || SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_DLNA_PAGE)
  1747. #endif
  1748. )
  1749. {
  1750. APP_Video_Set_AspectRatio(APP_VIDEO_ASPECT_RATIO_JUSTSCAN);
  1751. }
  1752. else
  1753. {
  1754. APP_Video_Set_AspectRatio(u8AspectRatioType);
  1755. }
  1756. /* mute/unmute audio */
  1757. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO, 0,
  1758. sizeof(APP_SETTING_UserInfo_t), &(g_stUserInfoData));
  1759. u8Mute = g_stUserInfoData.Mute;
  1760. APP_Audio_SetMute(u8Mute, TRUE, APP_MUTE_MODE_SIGNAL_DETECT, APP_SOURCE_NET);
  1761. #ifdef CONFIG_SUPPORT_DLNA
  1762. if(1 &&
  1763. #ifdef CONFIG_SUPPORT_MIRACAST_DLNA_INONE
  1764. (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_MIRACAST_DLNA_PAGE))
  1765. #else
  1766. (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_DLNA_PAGE))
  1767. #endif
  1768. && DMSItemInfo && (DMSItemInfo->MediaType == DLNA_MEDIA_AUDIO))
  1769. {
  1770. APP_Video_SetMute(TRUE, FALSE, APP_MUTE_MODE_SIGNAL_DETECT, APP_SOURCE_NET);
  1771. }
  1772. else
  1773. {
  1774. APP_Video_SetMute(FALSE, TRUE, APP_MUTE_MODE_SIGNAL_DETECT, APP_SOURCE_NET);
  1775. }
  1776. #else
  1777. APP_Video_SetMute(FALSE, TRUE, APP_MUTE_MODE_SIGNAL_DETECT, APP_SOURCE_NET);
  1778. #endif
  1779. #if defined (CONFIG_SUPPORT_NET_PLAY_RTSP) || defined(CONFIG_SUPPORT_NET_PLAY_HTTP)
  1780. if(NetCtrl_NET_Get_Play_State() == AL_NET_PLAYER_ERR_FAILURE)
  1781. {
  1782. NetCtrl_Finalize();
  1783. usleep(100);
  1784. #ifdef CONFIG_SUPPORT_NET_PLAY_RTSP
  1785. {
  1786. NetCtrl_Initialize();
  1787. _Play_RTSP_Stream();
  1788. }
  1789. #elif defined(CONFIG_SUPPORT_NET_PLAY_HTTP)
  1790. {
  1791. NetCtrl_Initialize();
  1792. _Play_HTTP_Stream();
  1793. }
  1794. #endif
  1795. }
  1796. #endif
  1797. }
  1798. break;
  1799. case NET_GLOBAL_EVENT_MEDIA_INIT_FAIL:
  1800. #ifdef CONFIG_SUPPORT_MIRACAST_DLNA_INONE
  1801. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_MIRACAST_DLNA_PAGE))
  1802. {
  1803. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1804. NET_GUIOBJ_MIRACAST_DLNA_PAGE, NET_GLOBAL_EVENT_MEDIA_SHOW_MSG, 0);
  1805. }
  1806. #else
  1807. #ifdef CONFIG_SUPPORT_DLNA
  1808. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_DLNA_PAGE))
  1809. {
  1810. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1811. NET_GUIOBJ_DLNA_PAGE, NET_GLOBAL_EVENT_MEDIA_INIT_FAIL, 0);
  1812. }
  1813. #endif
  1814. #endif
  1815. break;
  1816. case NET_GLOBAL_EVENT_MEDIA_DECODE_START:
  1817. case NET_GLOBAL_EVENT_MEDIA_PIC_DECODE_START:
  1818. case NET_GLOBAL_EVENT_MEDIA_BUFFERING_START:
  1819. #ifdef CONFIG_SUPPORT_MIRACAST_DLNA_INONE
  1820. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_MIRACAST_DLNA_PAGE))
  1821. {
  1822. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1823. NET_GUIOBJ_MIRACAST_DLNA_PAGE, NET_GLOBAL_EVENT_MEDIA_HIDE_MSG, 0);
  1824. }
  1825. #else
  1826. #ifdef CONFIG_SUPPORT_DLNA
  1827. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_DLNA_PAGE))
  1828. {
  1829. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1830. NET_GUIOBJ_DLNA_PAGE, NET_GLOBAL_EVENT_MEDIA_HIDE_MSG, 0);
  1831. }
  1832. #endif
  1833. #endif
  1834. break;
  1835. case NET_GLOBAL_EVENT_MEDIA_BUFFERING_END:
  1836. #ifdef CONFIG_SUPPORT_MIRACAST_DLNA_INONE
  1837. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_MIRACAST_DLNA_PAGE))
  1838. {
  1839. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1840. NET_GUIOBJ_MIRACAST_DLNA_PAGE, NET_GLOBAL_EVENT_MEDIA_HIDE_LOADING, 0);
  1841. }
  1842. #else
  1843. #ifdef CONFIG_SUPPORT_DLNA
  1844. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_DLNA_PAGE))
  1845. {
  1846. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1847. NET_GUIOBJ_DLNA_PAGE, NET_GLOBAL_EVENT_MEDIA_HIDE_LOADING, 0);
  1848. }
  1849. #endif
  1850. #endif
  1851. break;
  1852. case NET_GLOBAL_EVENT_MEDIA_PLAY_DONE:
  1853. #ifdef CONFIG_SUPPORT_MIRACAST_DLNA_INONE
  1854. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_MIRACAST_DLNA_PAGE))
  1855. {
  1856. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1857. NET_GUIOBJ_MIRACAST_DLNA_PAGE, NET_GLOBAL_EVENT_MEDIA_SHOW_MSG, 0);
  1858. }
  1859. #else
  1860. #ifdef CONFIG_SUPPORT_DLNA
  1861. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_DLNA_PAGE))
  1862. {
  1863. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1864. NET_GUIOBJ_DLNA_PAGE, NET_GLOBAL_EVENT_MEDIA_SHOW_MSG, 0);
  1865. }
  1866. #endif
  1867. #endif
  1868. #ifdef CONFIG_SUPPORT_NEW_AIRPLAY
  1869. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_AIRPLAY_NEW))
  1870. {
  1871. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1872. NET_GUIOBJ_AIRPLAY_NEW, NET_GLOBAL_EVENT_MEDIA_SHOW_MSG, 0);
  1873. }
  1874. #endif
  1875. #if defined (CONFIG_SUPPORT_NET_PLAY_RTSP) || defined(CONFIG_SUPPORT_NET_PLAY_HTTP)
  1876. {
  1877. NetCtrl_Finalize();
  1878. usleep(100);
  1879. #ifdef CONFIG_SUPPORT_NET_PLAY_RTSP
  1880. {
  1881. NetCtrl_Initialize();
  1882. _Play_RTSP_Stream();
  1883. }
  1884. #elif defined(CONFIG_SUPPORT_NET_PLAY_HTTP)
  1885. {
  1886. NetCtrl_Initialize();
  1887. _Play_HTTP_Stream();
  1888. }
  1889. #endif
  1890. }
  1891. #endif
  1892. break;
  1893. case NET_GLOBAL_EVENT_MEDIA_PIC_DECODE_FINISH:
  1894. #ifdef CONFIG_SUPPORT_MIRACAST_DLNA_INONE
  1895. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_MIRACAST_DLNA_PAGE))
  1896. {
  1897. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1898. NET_GUIOBJ_MIRACAST_DLNA_PAGE, NET_GLOBAL_EVENT_MEDIA_HIDE_LOADING, 0);
  1899. APP_Video_SetMute(FALSE, TRUE, APP_MUTE_MODE_SIGNAL_DETECT, APP_SOURCE_NET);
  1900. }
  1901. #else
  1902. #ifdef CONFIG_SUPPORT_DLNA
  1903. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_DLNA_PAGE))
  1904. {
  1905. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1906. NET_GUIOBJ_DLNA_PAGE, NET_GLOBAL_EVENT_MEDIA_HIDE_LOADING, 0);
  1907. APP_Video_SetMute(FALSE, TRUE, APP_MUTE_MODE_SIGNAL_DETECT, APP_SOURCE_NET);
  1908. }
  1909. #endif
  1910. #endif
  1911. break;
  1912. case NET_GLOBAL_EVENT_MEDIA_PIC_DECODE_ERROR:
  1913. #ifdef CONFIG_SUPPORT_MIRACAST_DLNA_INONE
  1914. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_MIRACAST_DLNA_PAGE))
  1915. {
  1916. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1917. NET_GUIOBJ_MIRACAST_DLNA_PAGE, NET_GLOBAL_EVENT_MEDIA_SHOW_MSG, 0);
  1918. }
  1919. Network_App_ShowPopup(Network_APP_POP_MSG_NOT_SUPPORT);
  1920. #else
  1921. #ifdef CONFIG_SUPPORT_DLNA
  1922. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_DLNA_PAGE))
  1923. {
  1924. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1925. NET_GUIOBJ_DLNA_PAGE, NET_GLOBAL_EVENT_MEDIA_SHOW_MSG, 0);
  1926. }
  1927. Network_App_ShowPopup(Network_APP_POP_MSG_NOT_SUPPORT);
  1928. #endif
  1929. #endif
  1930. break;
  1931. #ifdef CONFIG_SUPPORT_MIRACAST_DLNA_INONE
  1932. case CBK_EVENT_DLNA_CONTENT_LIST_DONE ... CBK_EVENT_DLNA_MW_EVENT_MAX:
  1933. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_MIRACAST_DLNA_PAGE))
  1934. {
  1935. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1936. NET_GUIOBJ_MIRACAST_DLNA_PAGE, dMessage, dParam);
  1937. }
  1938. break;
  1939. #else
  1940. #ifdef CONFIG_SUPPORT_DLNA
  1941. case CBK_EVENT_DLNA_CONTENT_LIST_DONE ... CBK_EVENT_DLNA_MW_EVENT_MAX:
  1942. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_DLNA_PAGE))
  1943. {
  1944. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK,
  1945. NET_GUIOBJ_DLNA_PAGE, dMessage, dParam);
  1946. }
  1947. break;
  1948. #endif
  1949. #endif
  1950. #ifdef CONFIG_SUPPORT_NET_OTA
  1951. case APP_GLOBAL_EVENT_OTA_UPGRADE:
  1952. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_SOFTWARE_UPGRADE))
  1953. {
  1954. net_printf("upgrade is running!");
  1955. break;
  1956. }
  1957. else
  1958. {
  1959. NET_DestroyAppointedGUI();
  1960. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, NET_GUIOBJ_NULL, 0);
  1961. SYSAPP_IF_SendGlobalEventWithIndex(SYS_APP_NETWORK, APP_GLOBAL_EVENT_ERASE_WHOLE_FLASH_OTA|PASS_TO_SYSAPP, 0);
  1962. }
  1963. break;
  1964. #endif
  1965. #ifdef CONFIG_SUPPORT_NET_OTA
  1966. case APP_GLOBAL_EVENT_ERASE_WHOLE_FLASH_OTA:
  1967. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_FM_FACTORYSETTING))
  1968. {
  1969. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_FM_FACTORYSETTING);
  1970. }
  1971. Network_App_ShowPopup(Network_APP_POP_ERASE_WHOLE_FLASH_OTA);
  1972. break;
  1973. case NET_GLOBAL_EVENT_EXIT_UPGRADE:
  1974. NET_DestroyAppointedGUI();
  1975. if(SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_NULL))
  1976. {
  1977. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_NULL);
  1978. }
  1979. break;
  1980. #endif
  1981. default:
  1982. net_printf("Unknown global message received.\n");
  1983. break;
  1984. }
  1985. return sdRet;
  1986. }
  1987. int Network_App_OnGUIFeedbackEvent(void* pPrivateData, UINT32 dMessage, UINT32 dParam)
  1988. {
  1989. net_printf("Network_App_OnGUIFeedbackEvent() is called \n");
  1990. int sdRet = NET_APP_SUCCESS;
  1991. switch(dMessage)
  1992. {
  1993. case GUI_RESPOND_EXIT_ALL_MENU:
  1994. NET_DestroyAppointedGUI();
  1995. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, NET_GUIOBJ_NULL))
  1996. {
  1997. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, NET_GUIOBJ_NULL);
  1998. }
  1999. break;
  2000. default:
  2001. net_printf("[Network] Unknown GUI feedback message received.\n");
  2002. break;
  2003. }
  2004. return sdRet;
  2005. }
  2006. static int Network_App_OnEvent(void* pPrivateData, UINT32 dMessage, UINT32 dParam)
  2007. {
  2008. int dRet = NET_APP_SUCCESS;
  2009. net_printf("Network_App_OnEvent() is called,dParam:0x%x \n",dParam);
  2010. switch (dMessage & GUIOBJ_MESSAGE_TYPE_MASK)
  2011. {
  2012. case SYSAPP_GLOBAL_EVENT_TYPE:
  2013. dRet = Network_App_OnGlobalEvent(pPrivateData, (dMessage & GUIOBJ_MESSAGE_MASK), dParam);
  2014. break;
  2015. case GUIOBJ_FEEDBACK_EVENT_TYPE:
  2016. dRet = Network_App_OnGUIFeedbackEvent(pPrivateData, (dMessage & GUIOBJ_MESSAGE_MASK), dParam);
  2017. break;
  2018. default:
  2019. net_printf("Unknown message type received.\n");
  2020. break;
  2021. }
  2022. return dRet;
  2023. }
  2024. #ifdef CONFIG_SUPPORT_NET_SETTING
  2025. int APP_Network_Init(void)
  2026. {
  2027. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_SETUP, 0,
  2028. sizeof(APP_SETTING_Setup_t), &(g_stSetupData));
  2029. if(g_stSetupData.NetworkSwitch == APP_SWITCH_ON)
  2030. {
  2031. Al_Network_Ctrl_Init();
  2032. if(!gNetworkConnect_task)
  2033. {
  2034. pthread_attr_t AVAttr;
  2035. pthread_attr_init(&AVAttr);
  2036. pthread_attr_setstacksize(&AVAttr, 1*1024*1024);
  2037. if(pthread_create(&gNetworkConnect_task, &AVAttr, (void *)_APP_GUIOBJ_NetworkInformation_Connect, NULL) != 0)
  2038. {
  2039. printf("Network_Connect pthread_create fail\n");
  2040. }
  2041. pthread_attr_destroy(&AVAttr);
  2042. }
  2043. printf("APP_Network_Init\n");
  2044. }
  2045. return 0;
  2046. }
  2047. #endif
  2048. /*****************************************************************************
  2049. ** FUNCTION : Network_App_fw_callback
  2050. **
  2051. ** DESCRIPTION :
  2052. **
  2053. **
  2054. ** PARAMETERS :
  2055. ** None
  2056. **
  2057. ** RETURN VALUES:
  2058. ** None
  2059. *****************************************************************************/
  2060. INT32 NetworkApp_fw_callback(AFW_event_t event, void *param)
  2061. {
  2062. UINT32 message = 0xffffffff;
  2063. UINT32 dParam = 0;
  2064. UINT32 Index = SYS_APP_NETWORK;
  2065. if(MAIN_APP_SUCCESS != MAINAPP_GetActiveSystemAppIndex(&Index))
  2066. {
  2067. net_printf("[%s: %d] get active system app fail\n",__FUNCTION__, __LINE__);
  2068. }
  2069. if (Index == SYS_APP_NETWORK)
  2070. {
  2071. switch (event)
  2072. {
  2073. case FW_AUDIO_HEADPHONE_PLUG_IN:
  2074. message = APP_GLOBAL_EVENT_HEADPHONE_PLUG_IN|PASS_TO_SYSAPP;
  2075. break;
  2076. case FW_AUDIO_HEADPHONE_PLUG_OUT:
  2077. message = APP_GLOBAL_EVENT_HEADPHONE_PLUG_OUT|PASS_TO_SYSAPP;
  2078. break;
  2079. #ifdef CONFIG_SUPPORT_AUDIO_CODEC_OVERLAY
  2080. case FW_AUDIO_LOADCODEC_OK:
  2081. case FW_AUDIO_LOADCODEC_ERROR:
  2082. message = event|PASS_TO_SYSAPP;
  2083. dParam = *(UINT32 *)param;
  2084. break;
  2085. case FW_AUDIO_LOADCODEC_TYPE:
  2086. {
  2087. UINT16 new_condec = *(UINT32 *)param;
  2088. TVFE_Audio_LOAD_CODEC_t stConfig;
  2089. memset(&stConfig, 0, sizeof(TVFE_Audio_LOAD_CODEC_t));
  2090. stConfig.flag = TVFE_AUDIO_CODEC_FLAG_SET;
  2091. stConfig.new_type = new_condec;
  2092. TVFE_Audio_Load_Codec(&stConfig);
  2093. net_printf("\n\n[%s:%d] new_condec =========== %d\n\n\n",__FUNCTION__,__LINE__,new_condec);
  2094. }
  2095. break;
  2096. #endif
  2097. case FW_VIP_STATUS:
  2098. message = NET_GLOBAL_EVENT_VIP_STATUS;
  2099. break;
  2100. case FW_VIP_FINISH:
  2101. message = NET_GLOBAL_EVENT_VIP_FINISH;
  2102. break;
  2103. #ifdef SUPPORT_CEC_TV
  2104. case FW_HDMI_PORTSTATUS:
  2105. dParam = *(UINT32 *)param;
  2106. message = NET_GLOBAL_EVENT_HDMIPORT_STATUS|PASS_TO_SYSAPP;
  2107. break;
  2108. #endif
  2109. #ifdef CONFIG_SUPPORT_WIFI
  2110. case FW_USB_PLUGIN:
  2111. dParam = *(UINT32 *)param;
  2112. if(dParam== 0)
  2113. {
  2114. if(MID_NWSI_WLAN_CheckWifiDongle() == WIFI_DONGLE)
  2115. {
  2116. message = DMN_EVENT_WIFI_DONGLE_ATTACHED;
  2117. }
  2118. }
  2119. break;
  2120. case FW_USB_PLUGOUT:
  2121. if(bWifiDongle)
  2122. {
  2123. message = DMN_EVENT_WIFI_DONGLE_DETACHED;
  2124. }
  2125. break;
  2126. #endif
  2127. #ifdef CONFIG_SUPPORT_NET_SETTING
  2128. case FW_NETWORK_ENABLE:
  2129. case FW_NETWORK_DISABLE:
  2130. message = NET_GLOBAL_EVENT_UPDATE_NETWORK_STATUS;
  2131. break;
  2132. #endif
  2133. case FW_HDMI_CHANGE_SOURCE:
  2134. dParam = *(UINT32 *)param;
  2135. message = APP_GLOBAL_EVENT_HDMI_CHANGE_SOURCE|PASS_TO_SYSAPP;
  2136. break;
  2137. default:
  2138. message = 0xffffffff;
  2139. break;
  2140. }
  2141. }
  2142. else
  2143. {
  2144. switch (event)
  2145. {
  2146. default:
  2147. message = 0xffffffff;
  2148. break;
  2149. }
  2150. }
  2151. if (message != 0xffffffff)
  2152. {
  2153. SYSAPP_IF_SendGlobalEventWithIndex(Index, message, dParam);
  2154. return SP_SUCCESS;
  2155. }
  2156. else
  2157. {
  2158. return SP_ERR_FAILURE;
  2159. }
  2160. }
  2161. void SysApp_NET_VolumeKeyHandler(UINT32 dMessage, UINT8 IsCECKey)
  2162. {
  2163. if(IsCECKey == TRUE)
  2164. {
  2165. #ifdef SUPPORT_CEC_TV
  2166. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FEATURE, 0,
  2167. sizeof(APP_SETTING_Feature_t), &(g_stFeatureData));
  2168. if (( APP_SWITCH_ON == g_stFeatureData.Enable_HDMILink)
  2169. #ifdef SUPPORT_AMPLIFIER_CONTROL
  2170. &&(APP_SWITCH_ON == g_stFeatureData.AmplifierControl)
  2171. #endif
  2172. &&(APP_HDMILINK_AMPLIFIER == g_stFeatureData.SpeakerPreference) && APP_GUIOBJ_Source_GetAmplifierPort())
  2173. {
  2174. if (CECTV_GetCECEnable()==CECTV_ENABLE && CECTV_GetHDMISystemAudioMode() && APP_Check_CEC_DEVICE_Status())
  2175. {
  2176. if(APP_Get_HDMICEC_AMP_Mute_Status() == TRUE)
  2177. {
  2178. APP_Set_HDMICEC_AMP_Mute_Status(FALSE);
  2179. CECTV_SendCmd(CECTV_SINGLE_ACT_CMD_KEYPRESS, CECTV_KEY_MUTE<<8|0x05);//Mute Function
  2180. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_MUTE,
  2181. APP_INTRA_EVENT_HIDE_MUTE, 0);
  2182. }
  2183. }
  2184. }
  2185. #endif
  2186. }
  2187. else
  2188. {
  2189. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO, 0,
  2190. sizeof(APP_SETTING_UserInfo_t), &(g_stUserInfoData));
  2191. if (g_stUserInfoData.Mute)
  2192. {
  2193. if(dMessage == UI_EVENT_VOL_UP || IsCECKey == TRUE)
  2194. {
  2195. SYSAPP_GOBJ_SendMsgToSingleGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_MUTE,
  2196. APP_INTRA_EVENT_HIDE_MUTE, 0);
  2197. APP_Audio_SetMute(FALSE, TRUE, APP_MUTE_MODE_SIGNAL_DETECT, APP_SOURCE_NET);
  2198. g_stUserInfoData.Mute = FALSE;
  2199. AL_Setting_Write(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO,
  2200. ITEM_OFFSET(APP_SETTING_UserInfo_t, Mute),
  2201. sizeof(g_stUserInfoData.Mute),&(g_stUserInfoData.Mute));
  2202. #ifdef SUPPORT_STORE_MUTE_FLAG
  2203. AL_Setting_Store(APP_Data_UserSetting_Handle(), SYS_SET_ID_USERINFO,
  2204. ITEM_OFFSET(APP_SETTING_UserInfo_t, Mute),
  2205. sizeof(g_stUserInfoData.Mute));
  2206. #endif
  2207. }
  2208. }
  2209. }
  2210. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_BANNER))
  2211. {
  2212. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_BANNER);
  2213. }
  2214. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_AMPLIFIERVOLUME))
  2215. {
  2216. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_AMPLIFIERVOLUME);
  2217. }
  2218. if(IsCECKey == TRUE
  2219. #ifdef SUPPORT_CEC_TV
  2220. && CECTV_GetHDMISystemAudioMode() && APP_Check_CEC_DEVICE_Status()
  2221. #endif
  2222. )
  2223. {
  2224. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_ADJUST))
  2225. {
  2226. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_ADJUST);
  2227. }
  2228. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_AMPLIFIERVOLUME))
  2229. {
  2230. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_AMPLIFIERVOLUME);
  2231. }
  2232. else
  2233. {
  2234. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK,APP_GUIOBJ_AMPLIFIERVOLUME, 0);
  2235. }
  2236. }
  2237. else
  2238. {
  2239. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_AMPLIFIERVOLUME))
  2240. {
  2241. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_AMPLIFIERVOLUME);
  2242. }
  2243. if (SYSAPP_GOBJ_GUIObjectExist(SYS_APP_NETWORK, APP_GUIOBJ_ADJUST))
  2244. {
  2245. SYSAPP_GOBJ_DestroyGUIObject(SYS_APP_NETWORK, APP_GUIOBJ_ADJUST);
  2246. }
  2247. else
  2248. {
  2249. UINT8 u8VolumeIdx = g_stVariationalData.Volume;
  2250. if (dMessage == UI_EVENT_VOL_UP)
  2251. {
  2252. g_stVariationalData.Volume = u8VolumeIdx >= ADJUST_MAX_VALUE ? ADJUST_MAX_VALUE : ++u8VolumeIdx;
  2253. }
  2254. else if (dMessage == UI_EVENT_VOL_DN)
  2255. {
  2256. g_stVariationalData.Volume = u8VolumeIdx <= ADJUST_MIN_VALUE ? ADJUST_MIN_VALUE : --u8VolumeIdx;
  2257. }
  2258. AL_Setting_Read(APP_Data_UserSetting_Handle(), SYS_SET_ID_FACTHOTEL, 0,
  2259. sizeof(APP_SETTING_FactoryHotel_t), &(g_stFactoryHotelData));
  2260. if ((g_stFactoryHotelData.MaxVolume < g_stVariationalData.Volume)
  2261. &&(g_stFactoryHotelData.HotelModeOnOff == 1))
  2262. {
  2263. g_stVariationalData.Volume = g_stFactoryHotelData.MaxVolume;
  2264. }
  2265. APP_Audio_SetVolume((UINT32)g_stVariationalData.Volume);
  2266. AL_Setting_Write(APP_Data_UserSetting_Handle(), SYS_SET_ID_VARIATIONAL,
  2267. ITEM_OFFSET(APP_SETTING_Variational_t, Volume),
  2268. sizeof(g_stVariationalData.Volume), &(g_stVariationalData.Volume));
  2269. SYSAPP_GOBJ_CreateGUIObject_WithPara(SYS_APP_NETWORK, APP_GUIOBJ_ADJUST, ADJUST_VOLUME);
  2270. }
  2271. }
  2272. }