123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803 |
- /*******************************************************************
- * \file dlna_app.c
- *
- * \brief This file provides dlna app modul implement . \n
- *
- * \note Copyright (c) 2010 Sunplus Technology Co., Ltd. \n
- * All rights reserved.
- *
- * \author hong.zhang@sunmedia.com.cn
- *
- ** Date Author Modification
- ** 2012/12/18 hong.zhang create
- *********************************************************************/
- #define WFD_GUI_OBJECT_TABLE_DEFINE_HERE
- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
- #include <types.h>
- //#include <gsl.h>
- #include "app_event.h"
- #include "app_infra/main_app.h"
- //#include "app_guiobj_share.h"
- #include "app_private_data.h"
- #include "app_infra/gobj_datastruct.h"
- #include "app_infra/sysapp_if.h"
- #include "app_infra/app_msg_filter.h"
- //#include "app_infra/gobj_if.h"
- //#include "app_infra/cbk_event.h"
- //#include "app_infra/sysapp_infra.h"
- //#include "app_infra/gobj_post_event.h"
- //#include "app_infra/ss_daemon.h"
- #include "sysapp_table.h"
- #include "wfd_app.h"
- #include "wfd_gobj_tbl.h"
- #include "wfd_app_gui_data.h"
- /*middleware related*/
- #include "wfd/wfd_if.h"
- #include "wfd/wfd_core.h"
- /*UI related*/
- #include "gui_engine.h"
- //#include "common_guiobj_dialog.h"
- //#include "COM_UI_strid.h"
- //#include "COM_UI_bitmap_config.h"
- //#include "COM_UI_region_config.h"
- //#include "COM_UI_palette_config.h"
- //#include "COM_UI_IDM_Popup_Dialog.h"
- //#include "app_show_logo.h"
- //#include "vpp_mixer_sel.h"
- #define WFD_DIAG_MENU_X 364
- #define WFD_DIAG_MENU_Y 233
- typedef enum {
- WFD_MENU_TIMEOUT_3S = 3, /*!< 3s timeout */
- WFD_MENU_TIMEOUT_5S = 5, /*!< 5s timeout */
- WFD_MENU_TIMEOUT_10S = 10, /*!< 10s timeout */
- WFD_MENU_TIMEOUT_CLEAR = 255, /*!< CLEAR */
- WFD_MENU_TIMEOUT_INFINITE = 65535, /*!< infinite timeout, means showing always */
- WFD_MENU_TIMEOUT_NULL ,
- } MenuTimeOut_e;
- typedef enum {
- WFD_DIAG_NONE = 0,
- WFD_DIAG_EXIT,
- WFD_DIAG_NETWORKERROR,
- WFD_DIAG_ANIMATION,
- WFD_DIAG_CONFIRM,
- WFD_DIAG_MAX ,
- } WFDDIAG_TYPE_e;
- typedef struct WFD_UIData_t_
- {
- RegionHandle_t hMenuReg;
- WinControl_t *pMenuWin;
- //DiagMenuData_t stDiagMenuResources;
- UINT32 dTimerCnt;
- WFDDIAG_TYPE_e eDiagType;
- } WFD_UIData_t;
- typedef struct WFDAppPrivateData_t_
- {
- WFD_UIData_t stUIData;
- WFDAppGUIData_t stAPAppShareData;
- } WFDAppPrivateData_t;
- extern INT32 _MainApp_IsWFDSysAppRunning(void);
- /*********************Begin:UI related*************************/
- /*
- static void _WFDDiag_SetTimeout(WFD_UIData_t *pstUIData, MenuTimeOut_e eTimeout)
- {
- switch (eTimeout)
- {
- case WFD_MENU_TIMEOUT_3S:
- pstUIData->dTimerCnt = 30;
- break;
- case WFD_MENU_TIMEOUT_5S:
- pstUIData->dTimerCnt = 50;
- break;
- case WFD_MENU_TIMEOUT_10S:
- pstUIData->dTimerCnt = 100;
- break;
- default:
- pstUIData->dTimerCnt = WFD_MENU_TIMEOUT_INFINITE;
- break;
- }
- }
- */
- static INT32 _WFDDiag_Create(WFDAppPrivateData_t *pPrivData)
- {
- //UINT32 dRegIdx = 0;
- //INT32 sdRet = GUI_SUCCESS;
- WFD_UIData_t* pstUIData = NULL;
- wfd_app_trace();
- if(!pPrivData)
- {
- wfd_app_printf("[%s] Input parameter error,pls check! [L:%d].\n", __FUNCTION__,__LINE__);
- return WFD_RET_FAIL;
- }
- pstUIData = &pPrivData->stUIData;
- pstUIData->eDiagType = WFD_DIAG_NONE;
- /* Get the region index and create the region */
- /*
- sdRet = GEL_GetRegionIndex(&COM_UI_IDM_Popup_Dialog_window, &dRegIdx);
- if (sdRet != GUI_SUCCESS)
- {
- wfd_app_printf("%s Get region index error![Error code:%d].\n", __FUNCTION__,sdRet);
- return WFD_RET_FAIL;
- }
- sdRet = GEL_CreateRegion(COM_UI_region_info, dRegIdx, &(pstUIData->hMenuReg));
- if (sdRet != GUI_SUCCESS)
- {
- wfd_app_printf("%s Create error![Error code:%d].\n", __FUNCTION__,sdRet);
- return WFD_RET_FAIL;
- }
- pstUIData->stDiagMenuResources.stDiagWarning = GL_MemAlloc(sizeof(WarnigMenuData_t));
- if (!pstUIData->stDiagMenuResources.stDiagWarning)
- {
- wfd_app_printf("%s[L:%d] malloc error.\n", __FUNCTION__,__LINE__);
- return WFD_RET_FAIL;
- }
- pstUIData->stDiagMenuResources.stDiagAnimation = GL_MemAlloc(sizeof(AnimationMenuData_t));
- if (!pstUIData->stDiagMenuResources.stDiagAnimation)
- {
- wfd_app_printf("%s[L:%d] malloc error.\n", __FUNCTION__,__LINE__);
- return WFD_RET_FAIL;
- }
- pstUIData->stDiagMenuResources.stDiagConfirm= GL_MemAlloc(sizeof(ConfirmMenuData_t));
- if (!pstUIData->stDiagMenuResources.stDiagConfirm)
- {
- wfd_app_printf("%s[L:%d] malloc error.\n", __FUNCTION__,__LINE__);
- return WFD_RET_FAIL;
- }
- */
- return WFD_RET_SUCCESS;
- }
- static INT32 _WFDDiag_Destory(WFDAppPrivateData_t *pPrivData)
- {
- INT32 sdRet = GUI_SUCCESS;
- WFD_UIData_t* pstUIData = NULL;
- wfd_app_trace();
- if(!pPrivData)
- {
- wfd_app_printf("[%s] Input parameter error,pls check! [L:%d].\n", __FUNCTION__,__LINE__);
- return WFD_RET_FAIL;
- }
- pstUIData = &pPrivData->stUIData;
- //Diag_DestroyMenu();
- if(pstUIData->hMenuReg)
- {
- sdRet = GEL_CloseRegion(pstUIData->hMenuReg);
- if (sdRet != GUI_SUCCESS)
- {
- wfd_app_printf("%s Close region error![Error code:%d].\n", __FUNCTION__,sdRet);
- return WFD_RET_FAIL;
- }
- }
- pstUIData->eDiagType = WFD_DIAG_NONE;
- /*
- if(pstUIData->stDiagMenuResources.stDiagWarning)
- {
- GL_MemFree(pstUIData->stDiagMenuResources.stDiagWarning);
- }
- if(pstUIData->stDiagMenuResources.stDiagAnimation)
- {
- GL_MemFree(pstUIData->stDiagMenuResources.stDiagAnimation);
- }
- if(pstUIData->stDiagMenuResources.stDiagConfirm)
- {
- GL_MemFree(pstUIData->stDiagMenuResources.stDiagConfirm);
- }
- */
- return WFD_RET_SUCCESS;
- }
- /*
- static INT32 _WFDDiag_Confirm_OnClick(WFDAppPrivateData_t * pPrivData)
- {
- INT32 sdRet = GUI_OBJECT_POST_EVENT;
- wfd_app_trace();
- switch (Diag_GetFocusConfirmButton())
- {
- case CONFIRM_BUTTON_YES:
- wfd_app_printf("Confirm UI click Yes ,exit wfd!\n");
- MAINAPP_SendGlobalEvent(UI_EVENT_SETUP,0);
- break;
- case CONFIRM_BUTTON_NO:
- wfd_app_printf("Confirm UI click No,Destory diag !\n");
- _WFDDiag_Destory(pPrivData);
- break;
- default:
- wfd_app_error("%s diag module internal error.\n", __FUNCTION__);
- break;
- }
- return sdRet;
- }
- */
- static INT32 _WFDDiag_Confirm_OnEvent(WFDAppPrivateData_t * pPrivData,UINT32 dEventID, UINT32 dParam)
- {
- UINT32 sdRet = GUI_OBJECT_NO_POST_ACTION;
- /*
- UINT32 sdUIRet = DIAG_MENU_SUCCESS;
- DiagMenuEvent_e dDiagEventMsg = DIAGMENU_EVENT_MAX;
- wfd_app_trace();
- _WFDDiag_SetTimeout(&pPrivData->stUIData,WFD_MENU_TIMEOUT_5S);
- switch (dEventID)
- {
- case UI_EVENT_LEFT:
- dDiagEventMsg = DIAGMENU_EVENT_LEFT;
- break;
- case UI_EVENT_RIGHT:
- dDiagEventMsg = DIAGMENU_EVENT_RIGHT ;
- break;
- case UI_EVENT_ENTER:
- sdRet = _WFDDiag_Confirm_OnClick(pPrivData);
- break;
- default:
- wfd_app_printf("unknown ui event id : %d\n", dEventID);
- break;
- }
- //deal with diag confirm menu event
- if(dDiagEventMsg != DIAGMENU_EVENT_MAX)
- {
- sdUIRet = Diag_Confirm_UI_OnEvent(dDiagEventMsg);
- if(sdUIRet != DIAG_MENU_SUCCESS)
- {
- wfd_app_error("%s [L:%d]diag module internal error[Err code:%d].\n", __FUNCTION__,__LINE__,sdUIRet);
- }
- }
- */
- return sdRet;
- }
- static INT32 _WFDDiag_Show_Confirm(WFDAppPrivateData_t *pPrivData)
- {
- //INT32 sdRet = GUI_SUCCESS;
- WFD_UIData_t* pstUIData = NULL;
- //ConfirmMenuData_t *pstConfirm;
- wfd_app_trace();
- if(!pPrivData)
- {
- wfd_app_printf("[%s] Input parameter error,pls check! [L:%d].\n", __FUNCTION__,__LINE__);
- return WFD_RET_FAIL;
- }
- _WFDDiag_Create(pPrivData);
- pstUIData = &pPrivData->stUIData;
- if(!pstUIData->hMenuReg)
- {
- wfd_app_printf("%s[L:%d] Region haven't create!.\n", __FUNCTION__,__LINE__);
- return WFD_RET_FAIL;
- }
- /*
- pstConfirm = pstUIData->stDiagMenuResources.stDiagConfirm;
- if (!pstConfirm)
- {
- wfd_app_printf("%s[L:%d] stDiagConfirm structure haven't init!.\n", __FUNCTION__,__LINE__);
- return WFD_RET_FAIL;
- }
- if(pstUIData->eDiagType)
- {
- Diag_DestroyMenu();
- }
- pstConfirm->ConfirmCaptionStrId = COM_UI_IDS_Warning;
- pstConfirm->ConfirmMsgStrId = COM_UI_IDS_String_Exit;
- pstConfirm->pConfirmBtnStrId[CONFIRM_BUTTON_YES] = COM_UI_IDS_Yes;
- pstConfirm->pConfirmBtnStrId[CONFIRM_BUTTON_NO] = COM_UI_IDS_No;
- if(Diag_CreateMenu(pstUIData->hMenuReg,(void*)pstConfirm,DIAG_MENU_CONFIRM,WFD_DIAG_MENU_X,WFD_DIAG_MENU_Y) == DIAG_MENU_SUCCESS)
- {
- _WFDDiag_SetTimeout(pstUIData,WFD_MENU_TIMEOUT_5S);
- sdRet = GEL_EnableRegion(pstUIData->hMenuReg, NULL);
- if (sdRet != GUI_SUCCESS)
- {
- wfd_app_printf("%s Enable region error![Error code:%d].\n", __FUNCTION__,sdRet);
- return WFD_RET_FAIL;
- }
- pstUIData->eDiagType = WFD_DIAG_CONFIRM;
- return WFD_RET_SUCCESS;
- }
- else*/
- {
- return WFD_RET_FAIL;
- }
- }
- static INT32 _WFDDiag_Show_Warning(WFDAppPrivateData_t *pPrivData,WFDDIAG_TYPE_e eDiagType)
- {
- //INT32 sdRet = GUI_SUCCESS;
- WFD_UIData_t* pstUIData = NULL;
- //WarnigMenuData_t *pstWarning = NULL;
- wfd_app_trace();
- if(!pPrivData)
- {
- wfd_app_printf("[%s] Input parameter error,pls check! [L:%d].\n", __FUNCTION__,__LINE__);
- return WFD_RET_FAIL;
- }
- _WFDDiag_Create(pPrivData);
- pstUIData = &pPrivData->stUIData;
- if(!pstUIData->hMenuReg)
- {
- wfd_app_printf("%s[L:%d] Region haven't create!.\n", __FUNCTION__,__LINE__);
- return WFD_RET_FAIL;
- }
- /*
- pstWarning = pstUIData->stDiagMenuResources.stDiagWarning;
- if (!pstWarning)
- {
- wfd_app_printf("%s[L:%d] stDiagWarning structure haven't init!.\n", __FUNCTION__,__LINE__);
- return WFD_RET_FAIL;
- }
- if(pstUIData->eDiagType)
- {
- Diag_DestroyMenu();
- }
- switch(eDiagType)
- {
- case WFD_DIAG_NETWORKERROR:
- pstWarning->WarningCaptionStrId = STRING_ID_INVALID;
- pstWarning->WarningAffirmStrId = STRING_ID_INVALID;
- pstWarning->swWarningIconId = COM_UI_IDB_warningbmp;
- pstWarning->WarningMsgStrId = COM_UI_IDS_Network_Error;
- _WFDDiag_SetTimeout(pstUIData,WFD_MENU_TIMEOUT_3S);
- break;
- default:
- break;
- }
- if(Diag_CreateMenu(pstUIData->hMenuReg,(void*)pstWarning,DIAG_MENU_WARNING,WFD_DIAG_MENU_X,WFD_DIAG_MENU_Y) == DIAG_MENU_SUCCESS)
- {
- sdRet = GEL_EnableRegion(pstUIData->hMenuReg, NULL);
- if (sdRet != GUI_SUCCESS)
- {
- wfd_app_printf("%s Enable region error![Error code:%d].\n", __FUNCTION__,sdRet);
- return WFD_RET_FAIL;
- }
- pstUIData->eDiagType = eDiagType;
- return WFD_RET_SUCCESS;
- }
- else*/
- {
- return WFD_RET_FAIL;
- }
- }
- static INT32 _WFDDiag_Show_Animation(WFDAppPrivateData_t *pPrivData)
- {
- //INT32 sdRet = GUI_SUCCESS;
- WFD_UIData_t* pstUIData = NULL;
- //AnimationMenuData_t *pstAnim = NULL;
- wfd_app_trace();
- if(!pPrivData)
- {
- wfd_app_printf("[%s] Input parameter error,pls check! [L:%d].\n", __FUNCTION__,__LINE__);
- return WFD_RET_FAIL;
- }
- _WFDDiag_Create(pPrivData);
- pstUIData = &pPrivData->stUIData;
- if(!pstUIData->hMenuReg)
- {
- wfd_app_printf("%s[L:%d] Region haven't create!.\n", __FUNCTION__,__LINE__);
- return WFD_RET_FAIL;
- }
- /*
- pstAnim = pstUIData->stDiagMenuResources.stDiagAnimation;
- if (!pstAnim)
- {
- wfd_app_printf("%s[L:%d] stDiagWarning structure haven't init!.\n", __FUNCTION__,__LINE__);
- return WFD_RET_FAIL;
- }
- if(pstUIData->eDiagType)
- {
- Diag_DestroyMenu();
- }
- pstAnim->AnimationCaptionStrId = COM_UI_IDS_Connecting;
- if(Diag_CreateMenu(pstUIData->hMenuReg,(void*)pstAnim,DIAG_MENU_ANIMATION,WFD_DIAG_MENU_X,WFD_DIAG_MENU_Y) == DIAG_MENU_SUCCESS)
- {
- _WFDDiag_SetTimeout(pstUIData,WFD_MENU_TIMEOUT_INFINITE);
- sdRet = GEL_EnableRegion(pstUIData->hMenuReg, NULL);
- if (sdRet != GUI_SUCCESS)
- {
- wfd_app_printf("%s Enable region error![Error code:%d].\n", __FUNCTION__,sdRet);
- return WFD_RET_FAIL;
- }
- pstUIData->eDiagType = WFD_DIAG_ANIMATION;
- return WFD_RET_SUCCESS;
- }
- else*/
- {
- return WFD_RET_FAIL;
- }
- }
- /*********************End:UI related**************************/
- INT32 WFD_App_CallbackFunc(WFD_CallbackType_e eCallbackType, UINT32 dParam)
- {
- UINT32 dMsgType = CBK_EVENT_MAX;
- wfd_app_printf("~~~~~~~~eCallbackType is [%d] ~~~~~dParam is [%d]\n", eCallbackType, dParam);
- switch (eCallbackType)
- {
- case WFD_CBK_SOURCE_KNOCK:
- {
- int sdRet = SYSTEM_APP_SUCCESFUL;
- sdRet = _MainApp_IsWFDSysAppRunning();
- printf("_MainApp_IsWFDSysAppRunning sdRet[%d]",sdRet);
- if(sdRet == 0)
- {
- return SYSTEM_APP_ONRUN_FAILED;
- }
- else if(sdRet == 1)
- {
- MAINAPP_SendGlobalEvent(CBK_EVENT_WFD_SOURCE_KNOCK,dParam);
- return SYSTEM_APP_SUCCESFUL;
- }
- else if(sdRet == 2)
- {
- dMsgType = CBK_EVENT_WFD_SOURCE_KNOCK;
- }
- }
- break;
- case WFD_CBK_LINK_SUCCESS:
- dMsgType = CBK_EVENT_WFD_LINK_SUCCESS;
- break;
- case WFD_CBK_LINK_SUCCESS_NO_VIDEO:
- dMsgType = CBK_EVENT_WFD_LINK_SUCCESS_NO_VIDEO;
- break;
- case WFD_CBK_LINK_DISCONNECTED:
- dMsgType = CBK_EVENT_WFD_LINK_DISCONNECTED;
- break;
- case WFD_CBK_SOURCE_SOURCE_TEARDOWN:
- dMsgType = CBK_EVENT_WFD_SOURCE_TEARDOWN;
- break;
- default:
- break;
- }
- if (dMsgType)
- {
- //compile issue
- }
- //SYSAPP_IF_SendGlobalEvent(&stWFDAppInst, dMsgType, dParam);
- return SYSTEM_APP_SUCCESFUL;
- }
- INT32 WFD_App_OnCreate(void **ppPrivateData)
- {
- INT32 sdRet = WFD_RET_SUCCESS;
- WFDAppPrivateData_t *pPrivData = (WFDAppPrivateData_t *) GL_MemAlloc(sizeof(WFDAppPrivateData_t));
- wfd_app_trace();
- if (!pPrivData)
- {
- wfd_app_printf(" line : %d malloc memory error.\n", __LINE__);
- return WFD_RET_FAIL;
- }
- memset(pPrivData, 0x00, sizeof(WFDAppPrivateData_t));
- //Assign pointer back to system application instance.
- *ppPrivateData = (void *)pPrivData;
- stWFDAppInst.bAppState = SYSTEM_IDLE;
- //WFD_Init_AP_CBKFunc((WFD_CBK_Func) WFD_App_CallbackFunc);
- return sdRet;
- }
- INT32 WFD_App_OnDestroy(void **ppPrivateData)
- {
- wfd_app_trace();
- return WFD_RET_SUCCESS;
- }
- INT32 WFD_App_OnRun(void *pPrivateData, UINT32 dParam)
- {
- WFDAppPrivateData_t *pPrivData = (WFDAppPrivateData_t *) pPrivateData;
- wfd_app_trace();
- if (!pPrivData)
- {
- wfd_app_printf(" line : %d Input parameter error!\n", __LINE__);
- return WFD_RET_FAIL;
- }
- /*Close screensaver here*/
- //SSMON_IF_Stop();
- _WFDDiag_Show_Animation(pPrivData);
- return WFD_RET_SUCCESS;
- }
- INT32 WFD_App_OnTerminate(void *pPrivateData, UINT32 dParam)
- {
- WFDAppPrivateData_t *pPrivData = (WFDAppPrivateData_t *) pPrivateData;
- wfd_app_trace();
- if (!pPrivData)
- {
- wfd_app_printf(" line : %d Input parameter error!\n", __LINE__);
- return WFD_RET_FAIL;
- }
- //app_DisableSrcPlane(MID_OSD_LAYER);
- if(pPrivData->stUIData.eDiagType != WFD_DIAG_NONE)
- {
- _WFDDiag_Destory(pPrivData);
- }
- //destroy all guiobj
- if (SYSAPP_GOBJ_GUIObjectExist(stWFDAppInst.dSystemApplicationIndex, WFD_AUDIO_PLAYBACK))
- {
- SYSAPP_GOBJ_DestroyGUIObject(stWFDAppInst.dSystemApplicationIndex, WFD_AUDIO_PLAYBACK);
- }
- //app_EnableSrcPlane(MID_OSD_LAYER);
- //WFD_MW_IF_Final();
- /*Open screensaver here*/
- //SSMON_IF_Start();
- //APP_Show_Logo(LOGO_UI, LOGO_ONLY_BACKGRUND);
- return WFD_RET_SUCCESS;
- }
- INT32 WFD_App_OnTimerUpdate(void *pPrivateData)
- {
- WFDAppPrivateData_t *pPrivData = (WFDAppPrivateData_t *) pPrivateData;
- WFD_UIData_t* pstUIData = NULL;
- //wfd_app_trace();
- if (!pPrivData)
- {
- wfd_app_printf(" line : %d Input parameter error!\n", __LINE__);
- return WFD_RET_FAIL;
- }
- pstUIData = &pPrivData->stUIData;
- if(pstUIData->eDiagType)
- {
- switch (pstUIData->dTimerCnt)
- {
- case WFD_MENU_TIMEOUT_CLEAR:
- break;
- default:
- pstUIData->dTimerCnt--;
- break;
- }
- if(!pstUIData->dTimerCnt)
- {
- if(pstUIData->eDiagType != WFD_DIAG_ANIMATION)
- {
- if(pstUIData->eDiagType == WFD_DIAG_NETWORKERROR)
- {
- //MAINAPP_SendGlobalEvent(UI_EVENT_SETUP,0);
- }
- _WFDDiag_Destory(pPrivData);
- }
- }
- }
- return WFD_RET_SUCCESS;
- }
- static void _WFDApp_OnReturn(WFDAppPrivateData_t * pPrivData)
- {
- _WFDDiag_Show_Confirm(pPrivData);
- }
- static void _WFDApp_OnCBKLinkSuccess(WFDAppPrivateData_t * pPrivData)
- {
- _WFDDiag_Destory(pPrivData);
- }
- static void _WFDApp_OnCBKLinkSuccessNoVideo(WFDAppPrivateData_t * pPrivData)
- {
- wfd_app_trace();
-
- _WFDDiag_Destory(pPrivData);
- if (SYSTEM_APP_SUCCESS != SYSAPP_GOBJ_CreateGUIObject_WithPara(
- stWFDAppInst.dSystemApplicationIndex,
- WFD_AUDIO_PLAYBACK/*here may be audio/video/photo*/,
- (UINT32) &pPrivData->stAPAppShareData))
- {
- wfd_app_error("%s Create audio playback guiobj error!\n", __FUNCTION__);
- }
-
- }
- static void _WFDApp_OnCBKLinkDisconnected(WFDAppPrivateData_t * pPrivData)
- {
- wfd_app_trace();
- if(pPrivData->stUIData.eDiagType != WFD_DIAG_NETWORKERROR)
- {
- _WFDDiag_Show_Warning(pPrivData,WFD_DIAG_NETWORKERROR);
- }
- }
- static INT32 _WFDApp_OnPrivateEvent(WFDAppPrivateData_t * pPrivData, UINT32 dMessage, UINT32 dParam)
- {
- INT32 sdRet = WFD_RET_SUCCESS;
- wfd_app_trace();
- if(pPrivData->stUIData.eDiagType == WFD_DIAG_CONFIRM)
- {
- _WFDDiag_Confirm_OnEvent(pPrivData,dMessage, dParam);
- return sdRet;
- }
- switch (dMessage)
- {
- case UI_EVENT_RETURN:
- _WFDApp_OnReturn(pPrivData);
- break;
- case CBK_EVENT_WFD_LINK_SUCCESS:
- _WFDApp_OnCBKLinkSuccess(pPrivData);
- break;
- case CBK_EVENT_WFD_LINK_SUCCESS_NO_VIDEO:
- _WFDApp_OnCBKLinkSuccessNoVideo(pPrivData);
- break;
- case CBK_EVENT_WFD_LINK_DISCONNECTED:
- _WFDApp_OnCBKLinkDisconnected(pPrivData);
- break;
- case CBK_EVENT_WFD_SOURCE_TEARDOWN:
- //MAINAPP_SendGlobalEvent(UI_EVENT_SETUP,0);
- break;
- default:
- /*unsupport ui event*/
- if(dMessage < UI_EVENT_NULL)
- {
- wfd_app_printf("Unknown message received.\n");
- //ShareGobj_IF_ShowHintMsg(HINT_MSG_INVALIDATE_KEY, HINT_MSG_TIMEOUT, MSG_PARAM_NULL);
- }
- break;
- }
- return sdRet;
- }
- static INT32 _WFDApp_OnPrivateFeedBackEvent(WFDAppPrivateData_t * pPrivData, UINT32 dMessage, UINT32 dParam)
- {
- INT32 sdRet = WFD_RET_SUCCESS;
- wfd_app_trace();
- switch (dMessage)
- {
- default:
- wfd_app_printf("Unknown feedback message received.\n");
- break;
- }
- return sdRet;
- }
- INT32 WFD_App_OnEvent(void *pPrivateData, UINT32 dMessage, UINT32 dParam)
- {
- WFDAppPrivateData_t *pPrivData = (WFDAppPrivateData_t *) pPrivateData;
- INT32 sdRet = WFD_RET_SUCCESS;
- wfd_app_trace();
- if (!pPrivData)
- {
- wfd_app_printf(" line : %d Input parameter error!\n", __LINE__);
- return WFD_RET_FAIL;
- }
- switch (dMessage & GUIOBJ_MESSAGE_TYPE_MASK)
- {
- case SYSAPP_GLOBAL_EVENT_TYPE:
- sdRet = _WFDApp_OnPrivateEvent(pPrivData, (dMessage & GUIOBJ_MESSAGE_MASK), dParam);
- break;
- case GUIOBJ_FEEDBACK_EVENT_TYPE:
- sdRet = _WFDApp_OnPrivateFeedBackEvent(pPrivData, (dMessage & GUIOBJ_MESSAGE_MASK), dParam);
- break;
- default:
- wfd_app_printf(" Unknown message type received.\n");
- break;
- }
- if (sdRet)
- {
- //compile issue
- }
- return WFD_RET_SUCCESS;
- }
- SysAppInstDef stWFDAppInst =
- {
- 0, //SYS_APP_WFD,
- WFD_App_OnCreate,
- WFD_App_OnDestroy,
- WFD_App_OnRun,
- WFD_App_OnTerminate,
- WFD_App_OnTimerUpdate,
- WFD_App_OnEvent,
- SYSTEM_IDLE, //system state.
- GUI_Obj_WFD_List, //GUI object table
- WFD_GUIOBJ_MAX, //GUI object table size
- NULL, //System Application Infrastructure (should not be modified)
- NULL //System Application private data (created in OnInitialize function)
- };
|