EVENT_END static void UIFlowWndPlay_CheckStatus(void) { UINT32 uiStatus, uiCurrMode; uiStatus = AppPlay_GetData(PLAY_PBSTATUS); uiCurrMode = AppPlay_GetData(PLAY_CURRMODE); // Decode Error & Read Error if( uiStatus & (PB_STA_ERR_FILE | PB_STA_ERR_DECODE) ) { if(uiCurrMode == PLAYMODE_AVI || uiCurrMode == PLAYMODE_MOVMJPG) { UINT32 uiBuffAddr, uiBuffSize; CHAR chaFullName[64] = { 0 }; PB_GetParam(PBPRMID_DATABUF_ADDR, &uiBuffAddr); PB_GetParam(PBPRMID_DATABUF_SIZE, &uiBuffSize); PB_GetParam(PBPRMID_CURR_FILEPATH, (UINT32 *)&chaFullName); MediaPlay_FileRecovery(chaFullName, uiBuffAddr, uiBuffSize); #if USE_FILEDB FileDB_Refresh(0); // should refresh FileDB #else DCF_Refresh(); // should refresh DCF #endif Ux_SendEvent(&UIPlayObjCtrl,NVTEVT_PLAYSINGLE, 1, PB_SINGLE_CURR); uiStatus = AppPlay_GetData(PLAY_PBSTATUS); if( uiStatus == PB_STA_DONE) return; } Ux_OpenWindow(&UIFlowWndWrnMsgCtrl,2,FLOWWRNMSG_ISSUE_PICTURE_ERR,FLOWWRNMSG_TIMER_KEEP); } }
static void FlowPB_IconDrawTime(BOOL bShow) { UINT32 creDateTime[6],modDateTime[6]; //UINT32 uiDirNum,uiFileNum,uiFileType,index; // CHAR chaFullName[34] = { 0 }; static char item1_Buf[34]; if (bShow==FALSE) { UxCtrl_SetShow(&UIFlowWndPlay_StaticTXT_TimeCtrl, FALSE); return; } FileSys_WaitFinish(); #if 0 uiDirNum = AppPlay_GetData(PLAY_DIRID); uiFileNum = AppPlay_GetData(PLAY_FILEID); index = DCF_GetIndexByID(uiDirNum,uiFileNum); DCF_GetObjInfo(index, &uiDirNum, &uiFileNum, &uiFileType); DCF_GetObjPath(index,uiFileType,chaFullName); #endif PB_GetParam(PBPRMID_CURR_FILEPATH, (UINT32 *)&gchaFullName); FileSys_GetDateTime(gchaFullName,creDateTime,modDateTime); if (modDateTime[3]>23) modDateTime[3]=0; if (modDateTime[4]>59) modDateTime[4]=0; snprintf(item1_Buf,20,"%02d:%02d",modDateTime[3],modDateTime[4]); UxStatic_SetData(&UIFlowWndPlay_StaticTXT_TimeCtrl,STATIC_VALUE,Txt_Pointer(item1_Buf)); UxCtrl_SetShow(&UIFlowWndPlay_StaticTXT_TimeCtrl, TRUE); }
UINT32 UIStorageCheck_DirFileMax(void) { UINT32 useFileDB =0; useFileDB = UI_GetData(FL_IsUseFileDB); if (useFileDB) { return 0; } else { UINT32 ret = 0x00000000; UINT32 CurrFileSeq = DCF_GetDBInfo(DCF_INFO_CUR_INDEX); if(DCF_GetDBInfo(DCF_INFO_MAX_DIR_ID)== MAX_DCF_DIR_NUM) { UINT32 uiFileID; ret |= DIRID_MAX; DBG_ERR("FolderID reaches 999.\r\n"); PB_OpenSpecFileBySeq(DCF_GetDBInfo(DCF_INFO_TOL_FILE_COUNT), TRUE); PB_GetParam(PBPRMID_NAMEID_FILE, &uiFileID); if(uiFileID >= MAX_DCF_FILE_NUM) { DBG_ERR("FileID reaches 9999.\r\n"); ret |= FILEID_MAX; } PB_OpenSpecFileBySeq(CurrFileSeq, TRUE); } return ret; } }
static void FlowPB_IconDrawImageSize(BOOL bShow) { GXVIDEO_INFO MovieInfo; static char item1_Buf[32]; UINT32 uiFileFmt = AppPlay_GetData(PLAY_FILEFMT); //hide icon if (bShow==FALSE) { UxCtrl_SetShow(&UIFlowWndPlay_StaticTXT_SizeCtrl, FALSE); return; } //show icon if(uiFileFmt & PBFMT_AVI || uiFileFmt & PBFMT_MOVMJPG) { PB_GetParam(PBPRMID_INFO_VDO, (UINT32 *)&MovieInfo); switch (MovieInfo.uiVidWidth) { case 1920: snprintf(item1_Buf,32,"1080FHD"); break; case 1440: snprintf(item1_Buf,32,"1080P"); break; case 1280: snprintf(item1_Buf,32,"720P"); break; case 848: snprintf(item1_Buf,32,"WVGA"); break; case 640: snprintf(item1_Buf,32,"VGA"); break; case 320: snprintf(item1_Buf,32,"QVGA"); break; default: snprintf(item1_Buf,32,"%dx%d",AppPlay_GetData(PLAY_IMGWIDTH_ORI),AppPlay_GetData(PLAY_IMGHEIGHT_ORI)); } } else { snprintf(item1_Buf,32,"%dx%d",AppPlay_GetData(PLAY_IMGWIDTH_ORI),AppPlay_GetData(PLAY_IMGHEIGHT_ORI)); } UxStatic_SetData(&UIFlowWndPlay_StaticTXT_SizeCtrl,STATIC_VALUE,Txt_Pointer(item1_Buf)); UxCtrl_SetShow(&UIFlowWndPlay_StaticTXT_SizeCtrl, TRUE); }
static void FlowPB_IconDrawDCFFileID(BOOL bShow) { static char item1_Buf[32]; #if USE_FILEDB UINT32 uiPBFileFmt, rootFolderLength; #endif //hide icon if (bShow==FALSE) { UxCtrl_SetShow(&UIFlowWndPlay_StaticTXT_FilenameCtrl, FALSE); return; } //show icon #if USE_FILEDB rootFolderLength = strlen(FILEDB_CARDV_ROOT); uiPBFileFmt = AppPlay_GetData(PLAY_FILEFMT); PB_GetParam(PBPRMID_CURR_FILEPATH, (UINT32 *)&gchaFullName); //show icon if (uiPBFileFmt & PBFMT_AVI || uiPBFileFmt & PBFMT_MOVMJPG || uiPBFileFmt & PBFMT_MP4) { if (uiPBFileFmt & PBFMT_READONLY) { //strncpy(item1_Buf, (gchaFullName+rootFolderLength+10+3),20); strncpy(item1_Buf, (gchaFullName+rootFolderLength+10),20); item1_Buf[20] = '\0'; } else { strncpy(item1_Buf, (gchaFullName+rootFolderLength+10),20); item1_Buf[20] = '\0'; } } else { strncpy(item1_Buf, (gchaFullName+rootFolderLength+10),20); item1_Buf[20] = '\0'; } #else snprintf(item1_Buf,32,"%03ld-%04ld",AppPlay_GetData(PLAY_DIRID),AppPlay_GetData(PLAY_FILEID)); #endif //debug_msg("^GgchaFullName:%s,item1_Buf:%s\r\n",gchaFullName,item1_Buf); UxStatic_SetData(&UIFlowWndPlay_StaticTXT_FilenameCtrl,STATIC_VALUE,Txt_Pointer(item1_Buf)); UxCtrl_SetShow(&UIFlowWndPlay_StaticTXT_FilenameCtrl, TRUE); }
static void UIMEnuWndPlaySlideShowCB_SetFileFmt(Playback_FileFmt PB_FileFmt) { PLAY_OBJ PlayObj = {0}; UINT PBFileFmt; // get playback object PB_GetParam(PBPRMID_PLAYBACK_OBJ, (UINT32 *)&PlayObj); FileSys_WaitFinish(); //step1. close current active file FileSys_CloseFile((FST_FILE)0xFFFFFFFF); //step2. rescan file format switch(PB_FileFmt) { case Playback_FileFmt_JPG: default: PBFileFmt = DCF_FILE_TYPE_JPG; PlayObj.uiPlayFileFmt = PBFMT_JPG; break; case Playback_FileFmt_ALL: PBFileFmt = DCF_FILE_TYPE_JPG | DCF_FILE_TYPE_AVI | DCF_FILE_TYPE_MOV | DCF_FILE_TYPE_MP4; PlayObj.uiPlayFileFmt = PBFMT_JPG | PBFMT_AVI | PBFMT_MOVMJPG | PBFMT_MP4; #if (_WAVSTUDIO_MODE_ == ENABLE) PBFileFmt |= DCF_FILE_TYPE_WAV; PlayObj.uiPlayFileFmt |= PBFMT_WAV; #endif break; } //DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT,PBFileFmt); //DCF_ScanObj(); // slide show only for jpg file format PB_SetParam(PBPRMID_PLAYBACK_OBJ, (UINT32)&PlayObj); }
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; }