//----------------------------------------------------------------------------- // Auto Poweroff/USB detect/Enable Key sound scan items //----------------------------------------------------------------------------- void KeyScan_EnableMisc(BOOL bEn) { if (bEn == FALSE) { // disable auto power off/USB detect timer // disable key tone flag GxPower_SetControl(GXPWR_CTRL_AUTOPOWEROFF_RESET,0); GxPower_SetControl(GXPWR_CTRL_SLEEP_RESET,0); SxTimer_SetFuncActive(SX_TIMER_DET_AUTOPOWEROFF_ID,FALSE); //SxTimer_SetFuncActive(SX_TIMER_DET_USB_ID, FALSE); UISound_EnableKey(FALSE); } else { // enable auto power off/USB detect timer // enable key tone flag //#NT#2012/11/08#Ben Wang -begin //#NT#Enable USB detection for unplugging. if (GxUSB_GetConnectType() == USB_CONNECT_NONE||GxUSB_GetConnectType() == USB_CONNECT_UNKNOWN) { //SxTimer_SetFuncActive(SX_TIMER_DET_AUTOPOWEROFF_ID,TRUE); //SxTimer_SetFuncActive(SX_TIMER_DET_USB_ID, TRUE); } else { // SxTimer_SetFuncActive(SX_TIMER_DET_AUTOPOWEROFF_ID,FALSE); //SxTimer_SetFuncActive(SX_TIMER_DET_USB_ID, FALSE); } SxTimer_SetFuncActive(SX_TIMER_DET_AUTOPOWEROFF_ID,TRUE); SxTimer_SetFuncActive(SX_TIMER_DET_USB_ID, TRUE); //#NT#2012/11/08#Ben Wang -end UISound_EnableKey(TRUE); } }
void USB_PlugInSetFunc(void) { GxPower_SetControl(GXPWR_CTRL_AUTOPOWEROFF_RESET,0); GxPower_SetControl(GXPWR_CTRL_SLEEP_RESET,0); SxTimer_SetFuncActive(SX_TIMER_DET_SLEEP_ID,FALSE); SxTimer_SetFuncActive(SX_TIMER_DET_AUTOPOWEROFF_ID,FALSE); SxTimer_SetFuncActive(SX_TIMER_DET_MODE_ID,FALSE); }
void Power_StartUSBCharge(void) { if (!gIsBattInsert) { DBG_DUMP(" NO Battery, Ignore START\r\n"); return; } if (GxPower_GetControl(GXPWR_CTRL_BATTERY_CHARGE_EN)) { DBG_DUMP(" Already UNDER Charge, Ignore START\r\n"); return; } if((USB_GetSource() == USB_SRC_USB_ADAPTER)) { GxPower_SetControl(GXPWR_CTRL_BATTERY_CHARGE_CURRENT,BATT_CHARGE_CURRENT_HIGH); DBG_MSG(" Charge Current = %d\r\n", BATT_CHARGE_CURRENT_HIGH); } #if _MIPS_TODO //#NT#2010/12/10#Jeah Yen -begin if((USB_GetSource() == USB_SRC_USB_ADAPTER) && (Power_GetSource() != POWER_SRC_USB_ADAPTER)) { //Do not charge, just stop check low-battery DBG_DUMP("GxPower: Stop low-battery check.\r\n"); GxPower_SetControl(GXPWR_CTRL_BATTERY_DETECT_EN, FALSE); return; } //#NT#2010/12/10#Jeah Yen -end #endif //#NT#2010/12/10#Jeah Yen -begin if((USB_GetSource() == USB_SRC_USB_PC)) { GxPower_SetControl(GXPWR_CTRL_BATTERY_CHARGE_CURRENT,BATT_CHARGE_CURRENT_MEDIUM); DBG_MSG(" Charge Current = %d\r\n", BATT_CHARGE_CURRENT_MEDIUM); } //#NT#2010/12/10#Jeah Yen -end //#NT#2010/12/10#Jeah Yen -begin DBG_DUMP("GxPower: Stop low-battery check.\r\n"); GxPower_SetControl(GXPWR_CTRL_BATTERY_DETECT_EN, FALSE); DBG_DUMP("GxPower: Start to Charge Battery\r\n"); #if (USB_CHARGE_VERIFY == ENABLE) GxLED_SetCtrl(KEYSCAN_LED_GREEN,TURNON_LED,TRUE); #endif GxPower_SetControl(GXPWR_CTRL_BATTERY_CHARGE_EN,TRUE); //#NT#2010/12/10#Jeah Yen -end #if (USB_CHARGE_VERIFY == ENABLE) #else //GxLED_SetCtrl(KEYSCAN_LED_GREEN,TURNON_LED,FALSE); #endif //GxLED_SetCtrl(KEYSCAN_LED_RED,SETLED_SPEED,GXLED_1SEC_LED_TOGGLE_CNT); //GxLED_SetCtrl(KEYSCAN_LED_RED,SET_TOGGLE_LED,TRUE); GxLED_SetCtrl(KEYSCAN_LED_GREEN,SETLED_SPEED,GXLED_1SEC_LED_TOGGLE_CNT); GxLED_SetCtrl(KEYSCAN_LED_GREEN,SET_TOGGLE_LED,TRUE); // disable flash re-charge SxTimer_SetFuncActive(SX_TIMER_DET_RECHARGE_ID,FALSE); }
static void UIFlowWndPlayThumb_NaviKey(UINT32 key) { BROWSE_NAVI_INFO BrowseNavi; FlowPB_ClearAllThumbIcon(); SxTimer_SetFuncActive(SX_TIMER_DET_KEY_ID, FALSE); BrowseNavi.NaviKey = key; BrowseNavi.HorNums = FLOWPB_THUMB_H_NUM2; BrowseNavi.VerNums = FLOWPB_THUMB_V_NUM2; BrowseThumbNaviKey(&BrowseNavi); if(AppPlay_GetData(PLAY_PAGE_CHANGED)) { //BrowseThumbUpdateLayout(&g_PlayDateThumbRectOSD[0], THUMB_H_NUM*THUMB_V_NUM); //clear rect immediately Ux_SendEvent(&UIPlayObjCtrl,NVTEVT_BROWSEFIN, 0); } FlowPB_ShowAllThumbIcon(); SxTimer_SetFuncActive(SX_TIMER_DET_KEY_ID, TRUE); }
INT32 SetupExe_OnWifiStart(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { UINT32 result =0; static char buf1[32]; char MacAddr[6]; LED_TurnOnLED(GPIOMAP_LED_FCS); #if (defined(__ECOS) && (_NETWORK_ == _NETWORK_SDIO_EVB_WIFI_)) #if (CARDV_ON_MEDIA_BOX_DEMO ==ENABLE) UINet_SetSSID("RTKSurveillance",strlen("RTKSurveillance")); UINet_SetAuthType(NET_AUTH_NONE); UI_SetData(FL_NetWorkMode,NETWORK_STATION_MODE); #else #if 1 // AP Mode. //UINet_SetSSID("RTKSurveillance",strlen("RTKSurveillance")); UINet_SetSSID("DAZA",strlen("DAZA")); UI_SetData(FL_NetWorkMode,NETWORK_AP_MODE); #else // Station Mode. UINet_SetSSID("MyAP",strlen("MyAP")); // SSID of AP UINet_SetAuthType(NET_AUTH_WPA2); UINet_SetPASSPHRASE("123456780",strlen("12345678")); // Password of AP UI_SetData(FL_NetWorkMode,NETWORK_STATION_MODE); #endif #endif result= UINet_WifiInit(UI_GetData(FL_NetWorkMode)); #elif(defined(__ECOS) && (_NETWORK_ == _NETWORK_SPI_EVB_ETHERNET_)) UI_SetData(FL_NetWorkMode,NETWORK_STATION_MODE); result=UINet_LanInit(UI_GetData(FL_NetWorkMode)); #endif if(result==0) { //GxLED_SetCtrl(KEYSCAN_LED_RED,SET_TOGGLE_LED,FALSE); //GxLED_SetCtrl(KEYSCAN_LED_RED,TURNON_LED,TRUE); UI_SetData(FL_WIFI_LINK,WIFI_LINK_OK); SxTimer_SetFuncActive(SX_TIMER_DET_AUTOPOWEROFF_ID,FALSE); } else { //GxLED_SetCtrl(KEYSCAN_LED_RED,SETLED_SPEED,GXLED_1SEC_LED_TOGGLE_CNT/10); //GxLED_SetCtrl(KEYSCAN_LED_RED,SET_TOGGLE_LED,TRUE); //GxLED_SetCtrl(KEYSCAN_LED_RED,TURNON_LED,TRUE); UI_SetData(FL_WIFI_LINK,WIFI_LINK_NG); } debug_err(("BackgroundWiFiOn %d result %d\r\n",UI_GetData(FL_NetWorkMode),result)); return NVTEVT_CONSUME; }
INT32 SetupExe_OnWifiStop(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { LED_TurnOffLED(GPIOMAP_LED_FCS); #ifdef __ECOS UINet_HFSUnInit(); #if(_NETWORK_ == _NETWORK_SDIO_EVB_WIFI_) UINet_WifiUnInit(UI_GetData(FL_NetWorkMode)); #elif(_NETWORK_ == _NETWORK_SPI_EVB_ETHERNET_) UINet_LanUnInit(UI_GetData(FL_NetWorkMode)); #endif #endif SxTimer_SetFuncActive(SX_TIMER_DET_AUTOPOWEROFF_ID,TRUE); return NVTEVT_CONSUME; }
void System_OnUsbInit(void) { //PHASE-1 : Init & Open Drv or DrvExt { GxUSB_RegCB(USB_CB); //Register CB function of GxUSB #if (USBINSERT_FUNCTION == ENABLE) SX_TIMER_DET_USB_ID = SxTimer_AddItem(&Timer_USB_Det); #endif } //PHASE-2 : Init & Open Lib or LibExt { #if (USBINSERT_FUNCTION == ENABLE) SxTimer_SetFuncActive(SX_TIMER_DET_USB_ID, FALSE); #endif } }
INT32 UIFlowWndPlay_OnMovieFinish(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { //#NT#2012/08/31#Calvin Chang#Porting Media Flow -begin g_PlbData.State = PLB_ST_FULL; g_PlbData.VideoPBSpeed = PLB_FWD_MOV_1x; UIFlowMoviePlay_SetSpeed(g_PlbData.VideoPBSpeed); g_uiUIFlowWndPlayCurrenDirection = MEDIAPLAY_DIR_FORWARD; Ux_SendEvent(&UIMoviePlayObjCtrl, NVTEVT_PAUSE_PLAY_MOVIE, 0); Ux_SendEvent(&UIMoviePlayObjCtrl, NVTEVT_CLOSE_PLAY_MOVIE, 0); //#NT#2012/10/23#Philex Lin - begin // enable auto power off/USB detect timer // enable key tone flag KeyScan_EnableMisc(TRUE); //#NT#2012/10/23#Philex Lin - end // stop scan //if (SxTimer_GetFuncActive(SX_TIMER_DET_STRG_ID)==0) // SxTimer_SetFuncActive(SX_TIMER_DET_STRG_ID, TRUE); if (SxTimer_GetFuncActive(SX_TIMER_DET_SYSTEM_BUSY_ID)==0) SxTimer_SetFuncActive(SX_TIMER_DET_SYSTEM_BUSY_ID, TRUE); if (gphUIFlowMovPlay_Filehdl) { FileSys_CloseFile(gphUIFlowMovPlay_Filehdl); gphUIFlowMovPlay_Filehdl = NULL; } // Play 1st video frame image Ux_SendEvent(&UIPlayObjCtrl,NVTEVT_PLAYSINGLE, 1, PB_SINGLE_CURR); //#NT#2012/08/31#Calvin Chang -end FlowPB_UpdateIcons(1); return NVTEVT_CONSUME; }
void System_OnVideoInit(void) { DX_HANDLE cDispDev = 0; PDISP_OBJ pDispObj=disp_getDisplayObject(DISP_1); DISPDEV_PARAM DispDev; //PHASE-1 : Init & Open Drv or DrvExt { GxVideo_RegCB(Video_CB); //Register CB function of GxVideo gDevLCDObj = Dx_GetObject(DX_CLASS_DISPLAY_EXT|DX_TYPE_LCD); DBG_MSG("LCD = %08x\r\n", gDevLCDObj); gDevTVObj = Dx_GetObject(DX_CLASS_DISPLAY_EXT|DX_TYPE_TVOUT); DBG_MSG("TV = %08x\r\n", gDevTVObj); gDevHDMIObj = Dx_GetObject(DX_CLASS_DISPLAY_EXT|DX_TYPE_HDMIOUT); DBG_MSG("HDMI = %08x\r\n", gDevHDMIObj); GxVideo_InitDevice(DOUT1); GxVideo_InitDevice(DOUT2); cDispDev = gDevLCDObj; if(cDispDev) { //Dx_Init(cDispDev, 0, Display_CB, DISPLAY_VER); Dx_Init(cDispDev, 0, 0, DISPLAY_VER); } cDispDev = gDevTVObj; if(cDispDev) { //Dx_Init(cDispDev, 0, Display_CB, DISPLAY_VER); Dx_Init(cDispDev, 0, 0, DISPLAY_VER); } cDispDev = gDevHDMIObj; if(cDispDev) { //Dx_Init(cDispDev, 0, Display_CB, DISPLAY_VER); Dx_Init(cDispDev, 0, 0, DISPLAY_VER); } //5.註冊SxCmd服務 ---------> Cmd Function //SxCmd_AddTabel(Cmd_lcd); //SxCmd_AddTabel(Cmd_tv); //SxCmd_AddTabel(Cmd_hdmi); //GxVideo_InstallCmd(); } //PHASE-2 : Init & Open Lib or LibExt { //Config SxJob,SxTimer,SxCmd //3.註冊SxJob服務 ---------> System Job //SX_JOB_DISPLAY = System_AddSxJob(Display_Change_Job); //SX_JOB_DISPMODE = System_AddSxJob(Display_ChangeMode_Job); //4.註冊SxTimer服務 ---------> Detect Job #if (TVINSERT_FUNCTION == ENABLE) SX_TIMER_DET_TV_ID = SxTimer_AddItem(&Timer_Display_DetTV); #endif #if (DET_LCD_REG_FUNCTION == ENABLE) SX_TIMER_DET_LCDREG_ID = SxTimer_AddItem(&Timer_Display_DetStatus); #endif #if (DET_LCDDIR_FUNCTION == ENABLE) SX_TIMER_DET_LCDDIR_ID = SxTimer_AddItem(&Timer_Display_DetLCDDir); #endif //5.註冊SxCmd服務 ---------> Cmd Function //config video Output cDispDev = gDevLCDObj; GxVideo_OpenDevice(DOUT1, (UINT32)cDispDev, DISP_LASTMODE);//open LCD first GxVideo_DumpInfo(); #if (DET_LCDDIR_FUNCTION == ENABLE) //config video Direct Display_DetLCDDir(); #endif DispDev.SEL.SET_ROTATE.Rot = DISPDEV_LCD_ROTATE_180; pDispObj->devCtrl(DISPDEV_SET_ROTATE, &DispDev); Ux_PostEvent(NVTEVT_VIDEO_ATTACH, 1, 1); // attach #if (TVINSERT_FUNCTION == ENABLE) SxTimer_SetFuncActive(SX_TIMER_DET_TV_ID, TRUE); #endif #if (DET_LCDDIR_FUNCTION == ENABLE) SxTimer_SetFuncActive(SX_TIMER_DET_LCDDIR_ID, TRUE); #endif //DispSrv_InstallCmd(); AppView_Init(); { #if(VDO_USE_ROTATE_BUFFER == ENABLE) UINT32 uiPoolAddr = OS_GetMempoolAddr(POOL_ID_DISP_VDO1); UINT32 uiPoolSize = OS_GetMempoolSize(POOL_ID_DISP_VDO1)+OS_GetMempoolSize(POOL_ID_DISP_VDO1TEMP)+OS_GetMempoolSize(POOL_ID_DISP_VDO1TEMP2); AppView_ConfigWorkingBuffer(uiPoolAddr, uiPoolSize); if((DX_HANDLE)GxVideo_GetDevice(DOUT1) == gDevLCDObj) { AppView_ConfigAttr(0, 0, DISPSRV_ROTATE_90); //enable rotate 90 } #else UINT32 uiPoolAddr = OS_GetMempoolAddr(POOL_ID_DISP_VDO1); UINT32 uiPoolSize = OS_GetMempoolSize(POOL_ID_DISP_VDO1)+OS_GetMempoolSize(POOL_ID_DISP_VDO1TEMP); AppView_ConfigWorkingBuffer(uiPoolAddr, uiPoolSize); #endif } { #if(OSD_USE_ROTATE_BUFFER == ENABLE) if((DX_HANDLE)GxVideo_GetDevice(DOUT1) == gDevLCDObj) { View_Window_ConfigAttr(0, 1); //enable rotate 90 } #endif } } //////////////////////////////////////////////////////////////// { ISIZE DeviceSize; //Init Display DeviceSize = GxVideo_GetDeviceSize(DOUT1); //Get LCD size GxDisplay_Init(DOUT1, DeviceSize.w, DeviceSize.h); DeviceSize = GxVideo_GetDeviceSize(DOUT2); //Get LCD size GxDisplay_Init(DOUT2, DeviceSize.w, DeviceSize.h); } }
void Power_StopUSBCharge(void) { //DBG_MSG(" gIsUSBInsert=%d,gIsBattInsert=%d,gIsBattDead=%d,gIsUSBAdapter=%d\r\n",gIsUSBInsert,gIsBattInsert,gIsBattDead,gIsUSBAdapter); if (!gIsBattInsert) { DBG_DUMP(" NO Battery, Ignore STOP\r\n"); return; } #if _MIPS_TODO //#NT#2010/12/10#Jeah Yen -begin if((USB_GetSource() == USB_SRC_USB_ADAPTER) && (Power_GetSource() != POWER_SRC_USB_ADAPTER)) { //Not charge yet, just start check low-battery DBG_DUMP("GxPower: Start low-battery check.\r\n"); GxPower_SetControl(GXPWR_CTRL_BATTERY_DETECT_EN, TRUE); } //#NT#2010/12/10#Jeah Yen -end //#NT#2011/3/30#Jeah Yen -begin if((USB_GetSource() == USB_SRC_NONE) && (Power_GetSource() != POWER_SRC_USB_ADAPTER)) { //Cannot charge, start check low-battery DBG_DUMP("GxPower: Start low-battery check.\r\n"); GxPower_SetControl(GXPWR_CTRL_BATTERY_DETECT_EN, TRUE); } //#NT#2011/3/30#Jeah Yen -end if((USB_GetSource() == USB_SRC_USB_ADAPTER)) { //DBG_MSG(" USB Src = Adaptor\r\n"); GxPower_SetControl(GXPWR_CTRL_BATTERY_CHARGE_CURRENT,BATT_CHARGE_CURRENT_LOW); DBG_MSG(" Charge Current = %d\r\n", BATT_CHARGE_CURRENT_LOW); } #endif if((USB_GetSource() == USB_SRC_USB_PC)) { //DBG_MSG(" USB Src = PC\r\n"); GxPower_SetControl(GXPWR_CTRL_BATTERY_CHARGE_CURRENT,BATT_CHARGE_CURRENT_LOW); DBG_MSG(" Charge Current = %d\r\n", BATT_CHARGE_CURRENT_LOW); } if (!GxPower_GetControl(GXPWR_CTRL_BATTERY_CHARGE_EN)) { DBG_DUMP(" Already NOT Charge, Ignore STOP\r\n"); return; } //#NT#2010/12/10#Jeah Yen -begin DBG_DUMP("GxPower: Stop to Charge Battery\r\n"); GxPower_SetControl(GXPWR_CTRL_BATTERY_CHARGE_EN,FALSE); #if _MIPS_TODO if(!gIsUSBChargePreCheck && (GxSystem_GetState(SYSTEM_STATE_POWERON) != SYSTEM_POWERON_CHARGE) ) { #if (USB_CHARGE_VERIFY == ENABLE) #else GxLED_SetCtrl(KEYSCAN_LED_GREEN,SET_TOGGLE_LED,FALSE); GxLED_SetCtrl(KEYSCAN_LED_GREEN,TURNON_LED,TRUE); #endif //GxLED_SetCtrl(KEYSCAN_LED_RED,SET_TOGGLE_LED,FALSE); //GxLED_SetCtrl(KEYSCAN_LED_RED,TURNON_LED,FALSE); } #endif DBG_DUMP("GxPower: Start low-battery check.\r\n"); GxPower_SetControl(GXPWR_CTRL_BATTERY_DETECT_EN, TRUE); // enable flash re-charge SxTimer_SetFuncActive(SX_TIMER_DET_RECHARGE_ID,TRUE); //#NT#2010/12/10#Jeah Yen -end }
void System_OnInputInit(void) { //PHASE-1 : Init & Open Drv or DrvExt { GxKey_RegCB(Key_CB); //Register CB function of GxInput #if (TOUCH_FUNCTION == ENABLE) GxTouch_RegCB(Touch_CB); //Register CB function of GxInput #endif GxKey_Init(); SxCmd_AddTable(key); } //PHASE-2 : Init & Open Lib or LibExt { //1.設定init值 //2.設定CB值, GxKey_SetContDebounce(BURSTKEY_DEBOUNCE/SxTimer_GetData(SXTIMER_TIMER_BASE)); GxKey_SetRepeatInterval(BURSTKEY_INTERVAL/SxTimer_GetData(SXTIMER_TIMER_BASE)); SysMan_RegKeySoundCB(KeySoundCB); SysMan_RegKeyTable(g_KeyTable, sizeof(g_KeyTable)/sizeof(KEY_OBJ)); //3.註冊SxJob服務 ---------> System Job //4.註冊SxTimer服務 ---------> Detect Job #if (POWERKEY_FUNCTION == ENABLE) SX_TIMER_DET_PWR_ID = SxTimer_AddItem(&Timer_Input_DetPKey); #endif #if (NORMALKEY_FUNCTION == ENABLE) SX_TIMER_DET_KEY_ID = SxTimer_AddItem(&Timer_Input_DetNKey); #endif #if (CAR_TOUCHLCD_IR == ENABLE) SX_TIMER_DET_IRKEY_ID = SxTimer_AddItem(&Timer_Input_DetIrKey); #endif #if (STATUSKEY_FUNCTION == ENABLE) SX_TIMER_DET_MODE_ID = SxTimer_AddItem(&Timer_Input_DetSKey); #endif #if (TOUCH_FUNCTION == ENABLE) SX_TIMER_DET_TOUCH_ID = SxTimer_AddItem(&Timer_Input_DetTP); #endif #if (AUTOINPUT_FUNCTION == ENABLE) SX_TIMER_AUTO_INPUT_ID = SxTimer_AddItem(&Timer_Input_FeedKey); #endif #if _MIPS_TODO if(FlowMode_IsPowerOnPlayback()) { GxKey_SetFirstKeyInvalid(KEY_PRESS, FLGKEY_PLAYBACK); } #endif #if (STATUSKEY_FUNCTION == ENABLE) GxKey_DetStatusKey(); #endif #if (POWERKEY_FUNCTION == ENABLE) SxTimer_SetFuncActive(SX_TIMER_DET_PWR_ID, TRUE); #endif #if (NORMALKEY_FUNCTION == ENABLE) SxTimer_SetFuncActive(SX_TIMER_DET_KEY_ID, TRUE); #endif #if (CAR_TOUCHLCD_IR == ENABLE) SxTimer_SetFuncActive(SX_TIMER_DET_IRKEY_ID, TRUE); #endif #if (STATUSKEY_FUNCTION == ENABLE) SxTimer_SetFuncActive(SX_TIMER_DET_MODE_ID, TRUE); #endif #if (TOUCH_FUNCTION == ENABLE) //1.設定init值 GxTouch_Init(); GxTouch_SetCtrl(GXTCH_DOUBLE_CLICK_INTERVAL, DOUBLECLICK_INTERVAL/TOUCH_TIMER_CNT/SxTimer_GetData(SXTIMER_TIMER_BASE)); SysMan_RegTouchSoundCB(KeySoundCB); SysMan_RegTouchTable(g_TouchTable, sizeof(g_TouchTable)/sizeof(TOUCH_OBJ)); //2.設定CB值, //3.註冊SxJob服務 ---------> System Job //4.註冊SxTimer服務 ---------> Detect Job //SX_TIMER_DET_TOUCH_ID = System_AddSxTimer(GxTouch_DetTP, TOUCH_TIMER_CNT, "GxTouch_DetTP", TRUE); //SX_TIMER_DET_TOUCH_ID = SxTimer_AddItem(&Timer_Input_DetTP); //5.註冊SxCmd服務 ---------> Cmd Function //System_AddSxCmd(Touch_OnCommand); //GxInput SxTimer_SetFuncActive(SX_TIMER_DET_TOUCH_ID, TRUE); #endif } }
void System_OnStrgInit_FS(void) { { MEM_RANGE Pool; Pool.Addr = OS_GetMempoolAddr(POOL_ID_FS_BUFFER); Pool.Size = OS_GetMempoolSize(POOL_ID_FS_BUFFER); GxStrg_SetConfig(FILE_CFG_BUF, (UINT32)&Pool); //FileSys_InstallCmd(); } { MEM_RANGE WorkBuf; WorkBuf.Addr = OS_GetMempoolAddr(POOL_ID_EXIF); WorkBuf.Size = POOL_SIZE_EXIF*POOL_CNT_EXIF; Exif_Init(&WorkBuf, ExifCB); } GxStrg_RegCB(Strg_CB); //Register CB function of GxStorage (NANR or CARD) { //FileSys: //1.設定init值 //#NT#2012/11/14#Philex Lin - begin // init DCF FolderID/FileID with RTC data #if (UI_STYLE==UI_STYLE_DRIVER) System_OnStrgInitDCFFolder(); #else // Initialize DCF name.ext //DCF dir-name DCF_SetDirFreeChars( DCF_SUBPATH ); //DCF file-name DCF_SetFileFreeChars( DCF_FILE_TYPE_ANYFORMAT, DCF_IMAGE_NAME ); #endif //#NT#2012/11/14#Philex Lin - end //DCF file-ext #if (MOVIE_FORMAT == MOVIE_FORMAT_AVI) DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_AVI); #else DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_AVI|DCF_FILE_TYPE_MOV|DCF_FILE_TYPE_MP4); #endif DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO); //TODO: [DCF] How to add an new format & its ext? //2.設定CB值, //3.註冊SxJob服務 ---------> System Job //4.註冊SxTimer服務 ---------> Detect Job #if (SDINSERT_FUNCTION == ENABLE) SX_TIMER_DET_STRG_ID = SxTimer_AddItem(&Timer_Card_DetInsert); #endif SX_TIMER_DET_SYSTEM_BUSY_ID = SxTimer_AddItem(&Timer_System_DetBusy); //5.註冊SxCmd服務 ---------> Cmd Function //System_AddSxCmd(Storage_OnCommand); //GxStorage //start scan SxTimer_SetFuncActive(SX_TIMER_DET_STRG_ID, TRUE); SxTimer_SetFuncActive(SX_TIMER_DET_SYSTEM_BUSY_ID, TRUE); /* #if (SDINSERT_FUNCTION == ENABLE) { //提早detect storage可以得到兩個好處: //1.知道storage的type是哪一種 //2.立刻"啟動File System" // 如果沒這樣, 就要等到SXOPEN之後, SX_TIMER_DET_STRG_ID開始跑才會"啟動File System", // 與其他task的競爭結果, 容易造成"啟動File System"的timing不固定 GxDet_Storage(); GxDet_Storage(); Delay_DelayMs(30); } #endif */ } }
void System_OnStrgInit_FS(void) { //#NT#2015/01/21#KS Hung -begin //#NT#Fast boot recording. #if (_FAST_BOOT_REC_FUNC_) DX_HANDLE pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT|DX_TYPE_CARD1); UINT32 paramArray[0]; #endif //#NT#2015/01/21#KS Hung -end { MEM_RANGE Pool; Pool.Addr = OS_GetMempoolAddr(POOL_ID_FS_BUFFER); //#NT#2015/01/21#KS Hung -begin //#NT#Fast boot recording. #if (_FAST_BOOT_REC_FUNC_) Pool.Addr = dma_getCacheAddr(Pool.Addr); #endif //#NT#2015/01/21#KS Hung -end Pool.Size = OS_GetMempoolSize(POOL_ID_FS_BUFFER); #if USE_FILEDB GxStrg_SetConfig(FILE_CFG_SUPPORT_EXFAT, FALSE); // cannot support exFAT if using FileDB #endif GxStrg_SetConfig(FILE_CFG_BUF, (UINT32)&Pool); //FileSys_InstallCmd(); } { MEM_RANGE WorkBuf; WorkBuf.Addr = OS_GetMempoolAddr(POOL_ID_EXIF); WorkBuf.Size = POOL_SIZE_EXIF; Exif_Init(&WorkBuf, ExifCB); #if (_SENSORLIB2_ != _SENSORLIB2_DUMMY_) WorkBuf.Addr += POOL_SIZE_EXIF; EXIF_Init(EXIF_HDL_ID_2, &WorkBuf, ExifCB); #endif } GxStrg_RegCB(Strg_CB); //Register CB function of GxStorage (NANR or CARD) { //FileSys: //1.設定init值 //#NT#2012/11/14#Philex Lin - begin // init DCF FolderID/FileID with RTC data #if (UI_STYLE==UI_STYLE_DRIVER) System_OnStrgInitDCFFolder(); #else // Initialize DCF name.ext //DCF dir-name DCF_SetDirFreeChars( DCF_SUBPATH ); //DCF file-name DCF_SetFileFreeChars( DCF_FILE_TYPE_ANYFORMAT, DCF_IMAGE_NAME ); #endif //#NT#2012/11/14#Philex Lin - end //DCF file-ext #if (MOVIE_FORMAT == MOVIE_FORMAT_AVI) DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_AVI); #else DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_AVI|DCF_FILE_TYPE_MOV|DCF_FILE_TYPE_MP4); #endif DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO); //TODO: [DCF] How to add an new format & its ext? //2.設定CB值, //3.註冊SxJob服務 ---------> System Job //4.註冊SxTimer服務 ---------> Detect Job #if (SDINSERT_FUNCTION == ENABLE) SX_TIMER_DET_STRG_ID = SxTimer_AddItem(&Timer_Card_DetInsert); #endif SX_TIMER_DET_SYSTEM_BUSY_ID = SxTimer_AddItem(&Timer_System_DetBusy); //5.註冊SxCmd服務 ---------> Cmd Function //System_AddSxCmd(Storage_OnCommand); //GxStorage #if (_DUAL_CARD_FUNC_ == ENABLE) SysSetFlag(FL_DualCardMain, MAIN_CARD_NONE); #endif //#NT#2014/12/08#KS Hung -begin //#NT#Fast boot recording. #if (_FAST_BOOT_REC_FUNC_) paramArray[0] = (UINT32)pStrgDev; if ( (GxStrg_GetDeviceCtrl((UINT32)pStrgDev, CARD_INSERT)) || (GxStrg_GetDeviceCtrl((UINT32)pStrgDev, CARD_READONLY)) ) { GxStrg_ForceDetect(CARD_FORCE_DET_INSERT); System_OnStrgInsert(&SystemObjCtrl, 1, paramArray); } else { System_OnStrgRemove(&SystemObjCtrl, 1, paramArray); } #endif //#NT#2014/12/08#KS Hung -end //start scan SxTimer_SetFuncActive(SX_TIMER_DET_STRG_ID, TRUE); SxTimer_SetFuncActive(SX_TIMER_DET_SYSTEM_BUSY_ID, TRUE); /* #if (SDINSERT_FUNCTION == ENABLE) { //提早detect storage可以得到兩個好處: //1.知道storage的type是哪一種 //2.立刻"啟動File System" // 如果沒這樣, 就要等到SXOPEN之後, SX_TIMER_DET_STRG_ID開始跑才會"啟動File System", // 與其他task的競爭結果, 容易造成"啟動File System"的timing不固定 GxDet_Storage(); GxDet_Storage(); Delay_DelayMs(30); } #endif */ } }
INT32 UIFlowWndPlay_OnKeyEnter(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { //#NT#2012/08/31#Calvin Chang#Porting Media Flow -begin //UINT32 uiCurindex; UINT32 uiPoolAddr; char pFilePath[FULL_FILE_PATH_LEN]; UINT32 fileType = DCF_FILE_TYPE_JPG; UINT32 uiPBFileFmt; switch(g_PlbData.State) { case PLB_ST_PLAY_MOV: case PLB_ST_FWD_MOV: case PLB_ST_BWD_MOV: Ux_SendEvent(&UIMoviePlayObjCtrl, NVTEVT_PAUSE_PLAY_MOVIE, 0); FlowPB_IconDrawMovPlay(TRUE); g_PlbData.State = PLB_ST_PAUSE_MOV; //#NT#2012/10/23#Philex Lin - begin // enable auto power off/USB detect timer // enable sound key tone flag KeyScan_EnableMisc(TRUE); //#NT#2012/10/23#Philex Lin - end break; case PLB_ST_PAUSE_MOV: //#NT#2012/10/23#Philex Lin - begin // disable auto power off/USB detect timer // disable key tone flag KeyScan_EnableMisc(FALSE); //#NT#2012/10/23#Philex Lin - end // Start to Play Ux_SendEvent(&UIMoviePlayObjCtrl, NVTEVT_PLAY_PLAY_MOVIE, 2, g_uiUIFlowWndPlayCurrenSpeed, g_uiUIFlowWndPlayCurrenDirection); FlowPB_IconDrawMovPlay(TRUE); g_PlbData.State = PLB_ST_PLAY_MOV; break; default: case PLB_ST_FULL: uiPBFileFmt = AppPlay_GetData(PLAY_FILEFMT); if (uiPBFileFmt & PBFMT_AVI || uiPBFileFmt & PBFMT_MOVMJPG || uiPBFileFmt & PBFMT_MP4) { // Open Video File if (gphUIFlowMovPlay_Filehdl) { FileSys_CloseFile(gphUIFlowMovPlay_Filehdl); gphUIFlowMovPlay_Filehdl = NULL; } if (uiPBFileFmt & PBFMT_AVI) fileType = DCF_FILE_TYPE_AVI; else if (uiPBFileFmt & PBFMT_MOVMJPG) fileType = DCF_FILE_TYPE_MOV; else if (uiPBFileFmt & PBFMT_MP4) fileType = DCF_FILE_TYPE_MOV; else { debug_msg("Wrong video file format!! \r\n"); break; } // Get Current index PB_GetParam(PBPRMID_CURR_FILEPATH, (UINT32 *)pFilePath); #if 0 uiCurindex = DCF_GetCurIndex(); DCF_GetObjPath(uiCurindex,fileType,pFilePath); #endif // Open Test Media File gphUIFlowMovPlay_Filehdl = FileSys_OpenFile(pFilePath, FST_OPEN_READ); if (!gphUIFlowMovPlay_Filehdl) { debug_msg("UIFlowWndPlay_OnKeyEnter: Can't open Video file!\r\n"); break; } //#NT#2012/10/23#Philex Lin - begin // disable auto power off/USB detect timer // disable key tone flag KeyScan_EnableMisc(FALSE); //#NT#2012/10/23#Philex Lin - end // Buffer Allocation get_blf((VP*)&(uiPoolAddr), POOL_ID_APP); rel_blf(POOL_ID_APP, (VP)uiPoolAddr); g_UIPlayMediaObj.hActMediafilehdl = gphUIFlowMovPlay_Filehdl; g_UIPlayMediaObj.CallBackFunc = Play_MovieCB; // g_UIPlayMediaObj.uiMemAddr = uiPoolAddr; g_UIPlayMediaObj.uiMemAddr = (UINT32)OS_GetMempoolAddr(POOL_ID_APP); g_UIPlayMediaObj.uiMemSize = POOL_SIZE_APP; //g_UIPlayMediaObj.iAudioType = AUDIO_OUTPUT_HP; g_UIPlayMediaObj.bDisableAudio = FALSE; UIFlowMoviePlay_SetSpeed(g_PlbData.VideoPBSpeed); g_uiUIFlowWndPlayCurrenDirection = MEDIAPLAY_DIR_FORWARD; //flush event first Ux_FlushEventByRange(NVTEVT_KEY_EVT_START,NVTEVT_KEY_EVT_END); //stop scan //SxTimer_SetFuncActive(SX_TIMER_DET_STRG_ID, FALSE); SxTimer_SetFuncActive(SX_TIMER_DET_SYSTEM_BUSY_ID, FALSE); Ux_SendEvent(&UIMoviePlayObjCtrl, NVTEVT_INIT_PLAY_MOVIE, 1, &g_UIPlayMediaObj); // Start to Play Ux_SendEvent(&UIMoviePlayObjCtrl, NVTEVT_PLAY_PLAY_MOVIE, 2, g_uiUIFlowWndPlayCurrenSpeed, g_uiUIFlowWndPlayCurrenDirection); if (KeyScan_GetPlugDev()!=PLUG_HDMI) { //FlowPB_IconDrawMovPlayVolumn(g_uiUIFlowWndPlayCurrentVolume); } FlowPB_IconDrawMovPlay(TRUE); g_PlbData.State = PLB_ST_PLAY_MOV; } break; } //#NT#2012/08/31#Calvin Chang -end return NVTEVT_CONSUME; }
INT32 UIFlowWndPlay_OnKeyMenu(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { switch(g_PlbData.State) { case PLB_ST_FULL: g_PlbData.State = PLB_ST_MENU; Input_SetKeyMask(KEY_RELEASE, FLGKEY_KEY_MASK_NULL); // Reset specific menu items SysSetFlag(FL_PROTECT, PROTECT_ONE); // Set Tab menu to Playback menu TM_SetMenu(&gPlaybackMenu); // Open common item menu Ux_OpenWindow(&MenuCommonItemCtrl, 0); break; #if(_MODEL_DSC_== _MODEL_DUAL_NAZHIDA_) case PLB_ST_PLAY_MOV: case PLB_ST_FWD_MOV: case PLB_ST_BWD_MOV: //#NT#2012/08/31#Calvin Chang#Porting Media Flow -begin g_PlbData.State = PLB_ST_FULL; g_PlbData.VideoPBSpeed = PLB_FWD_MOV_1x; UIFlowMoviePlay_SetSpeed(g_PlbData.VideoPBSpeed); g_uiUIFlowWndPlayCurrenDirection = MEDIAPLAY_DIR_FORWARD; Ux_SendEvent(&UIMoviePlayObjCtrl, NVTEVT_PAUSE_PLAY_MOVIE, 0); Ux_SendEvent(&UIMoviePlayObjCtrl, NVTEVT_CLOSE_PLAY_MOVIE, 0); //#NT#2012/10/23#Philex Lin - begin // enable auto power off/USB detect timer // enable key tone flag KeyScan_EnableMisc(TRUE); //#NT#2012/10/23#Philex Lin - end // stop scan //if (SxTimer_GetFuncActive(SX_TIMER_DET_STRG_ID)==0) // SxTimer_SetFuncActive(SX_TIMER_DET_STRG_ID, TRUE); if (SxTimer_GetFuncActive(SX_TIMER_DET_SYSTEM_BUSY_ID)==0) SxTimer_SetFuncActive(SX_TIMER_DET_SYSTEM_BUSY_ID, TRUE); if (gphUIFlowMovPlay_Filehdl) { FileSys_CloseFile(gphUIFlowMovPlay_Filehdl); gphUIFlowMovPlay_Filehdl = NULL; } // Play 1st video frame image Ux_SendEvent(&UIPlayObjCtrl,NVTEVT_PLAYSINGLE, 1, PB_SINGLE_CURR); //#NT#2012/08/31#Calvin Chang -end g_PlbData.State = PLB_ST_MENU; Input_SetKeyMask(KEY_RELEASE, FLGKEY_KEY_MASK_NULL); // Reset specific menu items SysSetFlag(FL_PROTECT, PROTECT_ONE); // Set Tab menu to Playback menu TM_SetMenu(&gPlaybackMenu); // Open common item menu Ux_OpenWindow(&MenuCommonItemCtrl, 0); break; #endif } return NVTEVT_CONSUME; }
INT32 System_OnBoot(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { if(paramNum == 1 && paramArray[0] == 0) //power-on start { //GxSystem_BootStart(); } if(paramNum == 1 && paramArray[0] == 1) //power-on end { UINT32 paramNum; UINT32 paramArray[MAX_MESSAGE_PARAM_NUM]; #if (UI_STYLE==UI_STYLE_DRIVER) //#NT#2012/10/18#Philex Lin - begin UINT32 uiChangeTo; UINT32 uiFSStatus; //#NT#2012/10/18#Philex Lin - end #if (_IR_REMOTE_ != _IR_REMOTE_NONE_) IRRX_DEVICE_OBJ IrRxDevice; #endif #endif GxSystem_BootEnd(); //FilesysWaitFinish(); //wait strg init finish //#NT#2015/01/21#KS Hung -begin //#NT#Fast boot recording. #if (_FAST_BOOT_REC_FUNC_ == ENABLE) if (*g_piChangeModeTo != PRIMARY_MODE_MOVIE) { UserWaitEvent(NVTEVT_STRG_ATTACH, ¶mNum, paramArray); //(paramNum == 1 && paramArray[0] == 0) //power-on begin } #else UserWaitEvent(NVTEVT_STRG_ATTACH, ¶mNum, paramArray); //(paramNum == 1 && paramArray[0] == 0) //power-on begin #endif //#NT#2015/01/21#KS Hung -end #if (UI_STYLE==UI_STYLE_DRIVER) uiFSStatus = UI_GetData(FL_FSStatus); #endif //wait disp init finish //wait audio init finish //wait usb init finish #if PST_FUNC //#NT#2015/01/21#KS Hung -begin //#NT#Fast boot recording. #if ( (_DUAL_CARD_FUNC_ == DISABLE) && (_FAST_BOOT_REC_FUNC_ == DISABLE) ) //Load_MenuInfo(); //jacky lan #endif //#NT#2015/01/21#KS Hung -end Init_MenuInfo(); #endif //#NT#2014/5/15#Philex Lin - Begin // set FL_DualDisp flag first depending on project requirements #if (DUALDISP_FUNC==DUALDISP_OFF) SysSetFlag(FL_DualDisp,DUALDISP_OFF); #elif (DUALDISP_FUNC==DUALDISP_ONXOR) SysSetFlag(FL_DualDisp,DUALDISP_ONXOR); #else SysSetFlag(FL_DualDisp,DUALDISP_ONBOTH); #endif //#NT#2014/5/15#Philex Lin - End // init Unifont table #if (MULTILINGUAL_FUNCTION == ENABLE) UniFont_Init(); #endif SxTimer_SetFuncActive(SX_TIMER_DET_TIMER_ID,TRUE); BKG_SetExecFuncTable(gBackgroundExtFuncTable); #if (POWERON_TESTFLOW == ENABLE) //init GxUSB module if(GxSystem_GetPowerOnSource() == GX_PWRON_SRC_PWR_VBUS) { //GxUSB_Init(TRUE); } else { GxUSB_Init(FALSE); } #else //init GxUSB module if(GxSystem_GetPowerOnSource() == GX_PWRON_SRC_PWR_VBUS) { GxUSB_Init(TRUE); } else { GxUSB_Init(FALSE); } #endif //get first app #if (UI_STYLE==UI_STYLE_DRIVER) #if (_IR_REMOTE_ != _IR_REMOTE_NONE_) // Open IrRx driver irrx_open((PIRRX_DEVICE_OBJ)&IrRxDevice); #endif //#NT#2012/10/23#Philex Lin-begin // init Volume to max,100 GxSound_SetVolume(100); // add power up sound //#NT#2015/01/21#KS Hung -begin //#NT#Fast boot recording. #if (_FAST_BOOT_REC_FUNC_ == DISABLE) UISound_Play(DEMOSOUND_SOUND_POWERON_TONE); #endif //#NT#2015/01/21#KS Hung -end //#NT#2012/10/23#Philex Lin-end //#NT#2015/01/21#KS Hung -begin //#NT#Fast boot recording. //#NT#2014/05/19#KS Hung -begin //#NT#This will affect dual card function. //#NT#Why does it need to detect again here? //#NT#2012/10/29#Philex Lin-begin // update card status again #if ((_DUAL_CARD_FUNC_ == DISABLE) && (_FAST_BOOT_REC_FUNC_ == DISABLE)) if (GxStrg_GetDeviceCtrl((UINT32)GxStrg_GetDevice(0), CARD_READONLY)) { UI_SetData(FL_CardStatus, CARD_LOCKED); } else if (GxStrg_GetDeviceCtrl((UINT32)GxStrg_GetDevice(0), CARD_INSERT)) { UI_SetData(FL_CardStatus, CARD_INSERTED); } else { UI_SetData(FL_CardStatus, CARD_REMOVED); } #endif //#NT#2012/10/29#Philex Lin-end //#NT#2014/05/19#KS Hung -end //#NT#2015/01/21#KS Hung -end UI_SetData(FL_FSStatus,uiFSStatus); //#NT#2013/1/6#Philex Lin-begin #if (GPS_FUNCTION == ENABLE) GPSRec_Open(UART_BAUDRATE_9600); #endif //#NT#2013/1/6#Philex Lin-end //#NT#2015/01/21#KS Hung -begin //#NT#Fast boot recording. #if (_FAST_BOOT_REC_FUNC_) if (0) #else if (TRUE==ModeCalibration_CheckEng()) #endif //#NT#2015/01/21#KS Hung -end { uiChangeTo = PRIMARY_MODE_CALIBRATION; Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, uiChangeTo); } else { // Init LED_ GxLED_SetCtrl(KEYSCAN_LED_GREEN,SETLED_SPEED,GXLED_1SEC_LED_TOGGLE_CNT); GxLED_SetCtrl(KEYSCAN_LED_RED,SETLED_SPEED,GXLED_1SEC_LED_TOGGLE_CNT/5); GxLED_SetCtrl(KEYSCAN_LED_FCS,SETLED_SPEED,GXLED_1SEC_LED_TOGGLE_CNT/10); SxTimer_SetFuncActive(SX_TIMER_DET_LED_ID,TRUE); //GxLED_SetCtrl(KEYSCAN_LED_RED,SET_TOGGLE_LED,TRUE); //open first app mode //#NT#2015/01/21#KS Hung -begin //#NT#Fast boot recording. #if (_FAST_BOOT_REC_FUNC_) uiChangeTo = *g_piChangeModeTo; #else uiChangeTo = PRIMARY_MODE_MOVIE; #endif //#NT#2015/01/21#KS Hung -end //Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_MAIN); //Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_PLAYBACK); #if(LOW_POWER_TIMELAPSE_REC == ENABLE) DBG_IND("rtc_isPWRAlarm() = %d--%d =====\r\n",rtc_isPWRAlarm(),UI_GetData(FL_LOW_POWER_TIMELAPSE_REC)); if(UI_GetData(FL_LOW_POWER_TIMELAPSE_REC)&& rtc_isPWRAlarm()) { //SysSetFlag(FL_PHOTO_SIZE, PHOTO_SIZE_2MHD); uiChangeTo = PRIMARY_MODE_PHOTO; } #endif Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, uiChangeTo); //Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_MOVIE); } UI_SetData(FL_NextMode,uiChangeTo); #else { UINT32 uiDscMode = DSC_MODE_PLAYBACK; //default mode #if (POWERONSOUND_FUNCTION == ENABLE) UISound_RegTable_Fast(); //install power-on sound table if(System_GetState(SYS_STATE_POWERON) == SYS_POWERON_NORMAL) { //if(!gIsUSBChargePreCheck) { UISound_Play_Fast(PLAYSOUND_SOUND_POWERON_TONE); } } #endif #if (MODEKEY_FUNCTION == ENABLE) //open first app mode UI_Switch_DscMode(uiDscMode,DSCMODE_SWITCH_FORCE,DSCMODE_SWITCHDIR_DONT_CARE); #else if(GxSystem_GetPowerOnSource() == GX_PWRON_SRC_PWR_SW || GxSystem_GetPowerOnSource() == GX_PWRON_SRC_PWR_ALM) { debug_msg("^GPowerOn Src = PWR key\r\n"); #if (STATUSKEY_FUNCTION == ENABLE) UINT32 status = GxKey_GetData(GXKEY_STS_KEY1); UINT32 key = Input_GroupStatus2Event(status); gbIsPlayBackModePowerOn = FALSE; uiDscMode = Input_Key2Mode(key); DBG_IND("^YDscMode=0x%x\r\n", uiDscMode); UI_Switch_DscMode(uiDscMode,DSCMODE_SWITCH_FORCE,DSCMODE_SWITCHDIR_DONT_CARE); g_bConsumeStatus = TRUE; #else gbIsPlayBackModePowerOn = TRUE; DBG_IND("^YDscMode=0x%x\r\n", uiDscMode); UI_Switch_DscMode(uiDscMode,DSCMODE_SWITCH_FORCE,DSCMODE_SWITCHDIR_DONT_CARE); g_bConsumeStatus = TRUE; #endif } else if(GxSystem_GetPowerOnSource() == GX_PWRON_SRC_PWR_SW2) { debug_msg("^GPowerOn Src = PB Key\r\n"); gbIsPlayBackModePowerOn = TRUE; DBG_IND("^YDscMode=0x%x\r\n", uiDscMode); UI_Switch_DscMode(uiDscMode,DSCMODE_SWITCH_FORCE,DSCMODE_SWITCHDIR_DONT_CARE); g_bConsumeStatus = TRUE; } else if(GxSystem_GetPowerOnSource() == GX_PWRON_SRC_PWR_VBUS) { debug_msg("^GPowerOn Src = USB plug\r\n"); if(!GxUSB_GetIsUSBPlug()) { Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0); } else { UINT32 uiUsbType; GxUSB_UpdateConnectType(); uiUsbType = GxUSB_GetConnectType(); switch (uiUsbType) { case USB_CONNECT_PC: DBG_DUMP("USB is CONNECT to PC\r\n"); //resume queue,event can be executed UI_UnlockEvent(); break; case USB_CONNECT_CHARGING_PC: DBG_DUMP("USB is CONNECT to Charging PC\r\n"); //resume queue,event can be executed UI_UnlockEvent(); break; case USB_CONNECT_CHARGER: Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0); DBG_DUMP("USB is CONNECT to CHARGER\r\n"); break; default: Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0); DBG_ERR("USB is CONNECTION UNKNOWN!\r\n"); break; } } g_bConsumeStatus = TRUE; } else if(GxSystem_GetPowerOnSource() == GX_PWRON_SRC_PWR_VBAT) { debug_msg("^GPowerOn Src = DC plug\r\n"); Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0); g_bConsumeStatus = TRUE; } /* else if(GxSystem_GetPowerOnSource() == GX_PWRON_SRC_PWR_ALM) { debug_msg("^GPowerOn Src = Alarm\r\n"); Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0); g_bConsumeStatus = TRUE; } */ #endif #if (POWERONSOUND_FUNCTION == ENABLE) UISound_RegTable(); #endif } #endif } return NVTEVT_CONSUME; }