662 lines
18 KiB
C
Executable File
662 lines
18 KiB
C
Executable File
//This source code is generated by UI Designer Studio.
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
#include "UIWnd/UIFlow.h"
|
|
#include "PBXFileList/PBXFileList_DCF.h"
|
|
#include "PBXFileList/PBXFileList_FileDB.h"
|
|
#include "hd_type.h"
|
|
#include "FileDB.h"
|
|
#include "DCF.h"
|
|
#include "UIApp/AppDisp_PBView.h"
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
#define __MODULE__ UIPlayComm
|
|
#define __DBGLVL__ 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
|
|
#define __DBGFLT__ "*" //*=All, [mark]=CustomClass
|
|
#include <kwrap/debug.h>
|
|
|
|
|
|
void CloseAutoHideTimer(void)
|
|
{
|
|
|
|
}
|
|
void StopAutoHideTimer(void)
|
|
{
|
|
|
|
}
|
|
void ResetAutoHideTimer(void)
|
|
{
|
|
|
|
}
|
|
|
|
BOOL IsAutoHideTimer(void)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
void ResetPlayKeySound(void)
|
|
{
|
|
|
|
}
|
|
|
|
void UIWndBackupKeySound(void)
|
|
{
|
|
|
|
}
|
|
|
|
void UIWndRestoreKeySound(void)
|
|
{
|
|
|
|
}
|
|
|
|
void UIWndSetActiveKeySound(UINT32 uiPressKeySound, UINT32 uiContKeySound)
|
|
{
|
|
|
|
}
|
|
|
|
void ChkKeySoundComm(void)
|
|
{
|
|
|
|
}
|
|
|
|
#if _TODO
|
|
static void xUIPlay_Filesys_DelCB(FIND_DATA *pFindData, BOOL *bDelete, UINT32 Param1, UINT32 Param2)
|
|
{
|
|
|
|
|
|
}
|
|
|
|
static void xUIPlay_Filesys_LockCB(FIND_DATA *pFindData, BOOL *bApply, UINT32 Param1, UINT32 Param2)
|
|
{
|
|
|
|
}
|
|
|
|
static void xUIPlay_FList_DCF_DelAll(void)
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
static ER xUIPlay_FList_DCF_DelFile(UINT32 cmdID)
|
|
{
|
|
|
|
return E_OK;
|
|
}
|
|
|
|
static void xUIPlay_FList_DCF_LockAll(BOOL bLock)
|
|
{
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
static ER xUIPlay_FList_FDB_ProtectFile(UINT32 cmdID)
|
|
{
|
|
FILEDB_HANDLE FileDBHdl = 0;
|
|
PFILEDB_FILE_ATTR FileAttr = NULL;
|
|
INT32 ret;
|
|
UINT32 FileNum, i;
|
|
BOOL bLock;
|
|
|
|
if (cmdID == PLAY_PROTECT_ONE || cmdID == PLAY_UNPROTECT_ONE) {
|
|
if (cmdID == PLAY_PROTECT_ONE) {
|
|
bLock = TRUE;
|
|
} else {
|
|
bLock = FALSE;
|
|
}
|
|
FileAttr = FileDB_CurrFile(FileDBHdl);
|
|
//#NT#2016/05/25#Ben Wang -begin
|
|
//#NT#Fix coverity issue.
|
|
//i = FileDB_GetCurrFileIndex(FileDBHdl);
|
|
//#NT#2016/05/25#Ben Wang -end
|
|
if (FileAttr) {
|
|
ret = FileSys_SetAttrib(FileAttr->filePath, FST_ATTRIB_READONLY, bLock);
|
|
if (ret == FST_STA_OK) {
|
|
if (bLock) {
|
|
FileAttr->attrib |= FS_ATTRIB_READ;
|
|
} else {
|
|
FileAttr->attrib &= (~FS_ATTRIB_READ);
|
|
}
|
|
} else {
|
|
goto FDB_Protect_Err;
|
|
}
|
|
} else {
|
|
goto FDB_Protect_Err;
|
|
}
|
|
} else if (cmdID == PLAY_PROTECT_ALL || cmdID == PLAY_UNPROTECT_ALL) {
|
|
if (cmdID == PLAY_PROTECT_ALL) {
|
|
bLock = TRUE;
|
|
} else {
|
|
bLock = FALSE;
|
|
}
|
|
FileNum = FileDB_GetTotalFileNum(FileDBHdl);
|
|
for (i = 0; i < FileNum; i++) {
|
|
FileAttr = FileDB_SearhFile(FileDBHdl, i);
|
|
if (FileAttr) {
|
|
ret = FileSys_SetAttrib(FileAttr->filePath, FST_ATTRIB_READONLY, bLock);
|
|
if (ret == FST_STA_OK) {
|
|
if (bLock) {
|
|
FileAttr->attrib |= FS_ATTRIB_READ;
|
|
} else {
|
|
FileAttr->attrib &= (~FS_ATTRIB_READ);
|
|
}
|
|
} else {
|
|
goto FDB_Protect_Err;
|
|
}
|
|
} else {
|
|
goto FDB_Protect_Err;
|
|
}
|
|
}
|
|
}
|
|
DBG_IND("ProtectTime = %04d ms \r\n", Perf_GetDuration() / 1000);
|
|
return E_OK;
|
|
FDB_Protect_Err:
|
|
DBG_ERR("cmdID=%d\r\n", cmdID);
|
|
return E_OK;
|
|
}
|
|
|
|
|
|
static ER xUIPlay_FList_DCF_ProtectFile(UINT32 cmdID)
|
|
{
|
|
#if _TODO
|
|
char filePath[DCF_FULL_FILE_PATH_LEN];
|
|
UINT32 index, i, uiThisFileFormat, tmpFileType;
|
|
BOOL bLock;
|
|
|
|
DBG_IND("cmdID=%d\r\n", cmdID);
|
|
if ((cmdID == PLAY_PROTECT_ONE) || (cmdID == PLAY_UNPROTECT_ONE)) {
|
|
if (cmdID == PLAY_PROTECT_ONE) {
|
|
bLock = TRUE; // lock
|
|
} else {
|
|
bLock = FALSE; // unlock
|
|
}
|
|
index = DCF_GetCurIndex();
|
|
uiThisFileFormat = DCF_GetDBInfo(DCF_INFO_CUR_FILE_TYPE);
|
|
for (i = 0; i <= DCF_FILE_TYPE_NUM; i++) {
|
|
tmpFileType = 1;
|
|
tmpFileType <<= i;
|
|
if (uiThisFileFormat & tmpFileType) {
|
|
DCF_GetObjPath(index, tmpFileType, filePath);
|
|
FileSys_SetAttrib(filePath, FST_ATTRIB_READONLY, bLock);
|
|
}
|
|
}
|
|
} else if ((cmdID == PLAY_PROTECT_ALL) || (cmdID == PLAY_UNPROTECT_ALL)) {
|
|
if (cmdID == PLAY_PROTECT_ALL) {
|
|
bLock = TRUE; // lock
|
|
} else {
|
|
bLock = FALSE; // unlock
|
|
}
|
|
xUIPlay_FList_DCF_LockAll(bLock);
|
|
}
|
|
#endif
|
|
|
|
return E_OK;
|
|
|
|
}
|
|
|
|
static ER xUIPlay_FList_FDB_DelFile(UINT32 cmdID)
|
|
{
|
|
FILEDB_HANDLE FileDBHdl = 0;
|
|
PFILEDB_FILE_ATTR FileAttr = NULL;
|
|
INT32 ret;
|
|
INT32 FileNum, i;
|
|
//#NT#2016/10/03#Hideo Lin -begin
|
|
//#NT#To delete both of main and clone movies
|
|
#if (SMALL_CLONE_MOVIE == ENABLE)
|
|
char filePath[NMC_TOTALFILEPATH_MAX_LEN];
|
|
char fileName[NMC_TOTALFILEPATH_MAX_LEN - NMC_ROOT_MAX_LEN - NMC_OTHERS_MAX_LEN];
|
|
char *pMainName;
|
|
char *pExtName;
|
|
char *pFolder;
|
|
#endif
|
|
//#NT#2016/10/03#Hideo Lin -end
|
|
|
|
DBG_IND("cmdID=%d\r\n", cmdID);
|
|
if (cmdID == PB_DELETE_ONE) {
|
|
FileAttr = FileDB_CurrFile(FileDBHdl);
|
|
i = FileDB_GetCurrFileIndex(FileDBHdl);
|
|
if (FileAttr) {
|
|
ret = FileSys_DeleteFile(FileAttr->filePath);
|
|
if (ret == FST_STA_OK) {
|
|
//#NT#2016/10/03#Hideo Lin -begin
|
|
//#NT#To delete both of main and clone movies
|
|
#if (SMALL_CLONE_MOVIE == ENABLE)
|
|
// file attribute will be changed after FileDB_DeleteFile,
|
|
// so we have to get the clone movie path before that,
|
|
// and don't need to do FileDB delete since clone movies had been filtered
|
|
|
|
snprintf(fileName, NMC_TOTALFILEPATH_MAX_LEN - NMC_ROOT_MAX_LEN - NMC_OTHERS_MAX_LEN, "%s", FileAttr->filename);
|
|
pMainName = strtok(fileName, ".");
|
|
pExtName = strrchr(FileAttr->filename, '.');
|
|
|
|
if (strstr(FileAttr->filePath, MOVIE_RO_FOLDER) == 0) { // normal folder
|
|
pFolder = MOVIE_SHARE_FOLDER;
|
|
} else { // RO folder
|
|
pFolder = MOVIE_SHARE_RO_FOLDER;
|
|
}
|
|
|
|
snprintf(filePath, NMC_TOTALFILEPATH_MAX_LEN, "%s%s\\%s_S%s",
|
|
DV_ROOT_PATH, pFolder, pMainName, pExtName);
|
|
|
|
ret = FileSys_DeleteFile(filePath);
|
|
#endif
|
|
//#NT#2016/10/03#Hideo Lin -end
|
|
|
|
FileDB_DeleteFile(FileDBHdl, i);
|
|
} else {
|
|
goto FDB_Delete_Err;
|
|
}
|
|
} else {
|
|
goto FDB_Delete_Err;
|
|
}
|
|
} else if (cmdID == PB_DELETE_ALL) {
|
|
BOOL isCurrFileReadOnly = FALSE;
|
|
CHAR path[PBX_FLIST_NAME_MAX_LENG + 1];
|
|
UINT32 Index;
|
|
|
|
FileAttr = FileDB_CurrFile(FileDBHdl);
|
|
if (FileAttr && M_IsReadOnly(FileAttr->attrib)) {
|
|
isCurrFileReadOnly = TRUE;
|
|
strncpy(path, FileAttr->filePath, PBX_FLIST_NAME_MAX_LENG);
|
|
}
|
|
FileNum = FileDB_GetTotalFileNum(FileDBHdl);
|
|
for (i = FileNum - 1; i >= 0; i--) {
|
|
FileAttr = FileDB_SearhFile(FileDBHdl, i);
|
|
if (FileAttr) {
|
|
if (M_IsReadOnly(FileAttr->attrib)) {
|
|
continue;
|
|
}
|
|
ret = FileSys_DeleteFile(FileAttr->filePath);
|
|
DBG_IND("i = %04d path=%s\r\n", i, FileAttr->filePath);
|
|
if (ret != FST_STA_OK) {
|
|
goto FDB_Delete_Err;
|
|
} else {
|
|
//#NT#2016/10/03#Hideo Lin -begin
|
|
//#NT#To delete both of main and clone movies
|
|
#if (SMALL_CLONE_MOVIE == ENABLE)
|
|
// file attribute will be changed after FileDB_DeleteFile,
|
|
// so we have to get the clone movie path before that,
|
|
// and don't need to do FileDB delete since clone movies had been filtered
|
|
|
|
snprintf(fileName, NMC_TOTALFILEPATH_MAX_LEN - NMC_ROOT_MAX_LEN - NMC_OTHERS_MAX_LEN, "%s", FileAttr->filename);
|
|
pMainName = strtok(fileName, ".");
|
|
pExtName = strrchr(FileAttr->filename, '.');
|
|
|
|
if (strstr(FileAttr->filePath, MOVIE_RO_FOLDER) == 0) { // normal folder
|
|
pFolder = MOVIE_SHARE_FOLDER;
|
|
} else { // RO folder
|
|
pFolder = MOVIE_SHARE_RO_FOLDER;
|
|
}
|
|
|
|
snprintf(filePath, NMC_TOTALFILEPATH_MAX_LEN, "%s%s\\%s_S%s",
|
|
DV_ROOT_PATH, pFolder, pMainName, pExtName);
|
|
|
|
ret = FileSys_DeleteFile(filePath);
|
|
#endif
|
|
//#NT#2016/10/03#Hideo Lin -end
|
|
|
|
FileDB_DeleteFile(FileDBHdl, i);
|
|
}
|
|
} else {
|
|
goto FDB_Delete_Err;
|
|
}
|
|
}
|
|
if (isCurrFileReadOnly) {
|
|
Index = FileDB_GetIndexByPath(FileDBHdl, path);
|
|
FileDB_SearhFile(FileDBHdl, Index);
|
|
}
|
|
}
|
|
return E_OK;
|
|
FDB_Delete_Err:
|
|
DBG_ERR("cmdID=%d\r\n", cmdID);
|
|
return E_SYS;
|
|
|
|
}
|
|
|
|
|
|
|
|
void UIPlay_Protect(PLAY_PROTECT_CMD Command)
|
|
{
|
|
UINT32 useFileDB = 0;
|
|
|
|
useFileDB = UI_GetData(FL_IsUseFileDB);
|
|
|
|
if (useFileDB) {
|
|
xUIPlay_FList_FDB_ProtectFile(Command);
|
|
} else {
|
|
xUIPlay_FList_DCF_ProtectFile(Command);
|
|
}
|
|
}
|
|
|
|
void UIPlay_Delete(UINT32 Command)
|
|
{
|
|
UINT32 index = 0;
|
|
|
|
xUIPlay_FList_FDB_DelFile(Command);
|
|
|
|
PB_GetParam(PBPRMID_CURR_FILESEQ, &index);
|
|
|
|
PB_OpenSpecFileBySeq(index, TRUE);
|
|
|
|
PB_WaitCommandFinish(PB_WAIT_INFINITE);
|
|
}
|
|
|
|
INT32 UIPlay_PlaySingle(UINT32 Command)
|
|
{
|
|
PLAY_SINGLE_OBJ FlowPlaySingleObj;
|
|
FlowPlaySingleObj.PlayCommand = Command;
|
|
if (0 == (Command & PB_SINGLE_THUMB)) {
|
|
FlowPlaySingleObj.PlayCommand |= PB_SINGLE_PRIMARY;
|
|
}
|
|
FlowPlaySingleObj.JumpOffset = 1;
|
|
#if (_SCREENNAIL_SIZE_ == _SCREENNAIL_SIZE_VGA_)
|
|
#if (HDMI_FUNC == ENABLE)
|
|
if (IsHDMIPlugIn()) {
|
|
FlowPlaySingleObj.PlayCommand |= PB_SINGLE_NO_HIDDEN;
|
|
}
|
|
#endif
|
|
#endif
|
|
PB_PlaySingleMode(&FlowPlaySingleObj);
|
|
return PB_WaitCommandFinish(PB_WAIT_INFINITE);
|
|
}
|
|
|
|
BOOL IsFileError(void)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL IsHDMIPlugIn(void)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL ExceedMaxPlayByDateFileNum(void)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
void BrowseThumbUpdateLayout(URECT *pOSDRect, UINT32 uiThumbNum)
|
|
{
|
|
|
|
}
|
|
|
|
void BrowseThumbNaviKey(PBROWSE_NAVI_INFO pBrowseNavi)
|
|
{
|
|
UINT32 CurrFileIndex=0, uiParamVal;
|
|
UINT32 CurrFileSeqID, FileNumsInDir = 0;
|
|
UINT32 FileNumsInFinalPage, FileNumsInFinalLine;
|
|
UINT32 *pThumbSeqID;
|
|
UINT32 CurThumbNums=1, CurrPageID, FinalPageID;
|
|
UINT32 NumsPerPage, CurrThumbRow, FinalThumbRow, NextFileIndex;
|
|
UINT32 BrowserCommand = 0, JumpOffset = 0;
|
|
PLAY_BROWSER_OBJ FlowPBBrowserObj = {0};
|
|
|
|
|
|
PB_GetParam(PBPRMID_THUMB_CURR_IDX, &CurrFileIndex);
|
|
PB_GetParam(PBPRMID_THUMB_SEQ_ARRAY, &uiParamVal);
|
|
pThumbSeqID = (UINT32 *)uiParamVal;
|
|
pThumbSeqID += (CurrFileIndex - 1);
|
|
CurrFileSeqID = *pThumbSeqID;
|
|
NumsPerPage = pBrowseNavi->HorNums * pBrowseNavi->VerNums;
|
|
|
|
PB_GetParam(PBPRMID_TOTAL_FILE_COUNT, &FileNumsInDir);
|
|
|
|
if (FileNumsInDir == 0) {
|
|
return;
|
|
}
|
|
|
|
if ((FileNumsInDir % NumsPerPage) == 0) {
|
|
FileNumsInFinalPage = NumsPerPage;
|
|
} else {
|
|
FileNumsInFinalPage = FileNumsInDir % NumsPerPage;
|
|
}
|
|
|
|
if ((FileNumsInFinalPage % pBrowseNavi->HorNums) == 0) {
|
|
FileNumsInFinalLine = pBrowseNavi->HorNums;
|
|
} else {
|
|
FileNumsInFinalLine = FileNumsInFinalPage % pBrowseNavi->HorNums;
|
|
}
|
|
|
|
CurrPageID = ((CurrFileSeqID - 1) / NumsPerPage);
|
|
FinalPageID = ((FileNumsInDir - 1) / NumsPerPage);
|
|
|
|
PB_GetParam(PBPRMID_THUMB_CURR_NUM, &CurThumbNums);
|
|
|
|
CurrThumbRow = (CurrFileIndex - 1) / pBrowseNavi->HorNums;
|
|
FinalThumbRow = (CurThumbNums - 1) / pBrowseNavi->HorNums;
|
|
|
|
DBG_MSG("key=0x%x, CurrFileIndex=%d, CurrFileSeqID=%d\r\n", pBrowseNavi->NaviKey, CurrFileIndex, CurrFileSeqID);
|
|
DBG_MSG("NumsPerPage=%d, FileNumsInDir=%d\r\n", NumsPerPage, FileNumsInDir);
|
|
DBG_MSG("FileNumsInFinalPage=%d, FileNumsInFinalLine=%d\r\n", FileNumsInFinalPage, FileNumsInFinalLine);
|
|
DBG_MSG("CurrPageID=%d, FinalPageID=%d\r\n", CurrPageID, FinalPageID);
|
|
DBG_MSG("CurThumbNums=%d, CurrThumbRow=%d, FinalThumbRow=%d\r\n", CurThumbNums, CurrThumbRow, FinalThumbRow);
|
|
|
|
// enter current file
|
|
if (pBrowseNavi->NaviKey == NVTEVT_KEY_ENTER) {
|
|
BrowserCommand = PB_BROWSER_CURR;
|
|
JumpOffset = 0;
|
|
}
|
|
// page-direction (LEFT)
|
|
else if (pBrowseNavi->NaviKey == NVTEVT_KEY_LEFT) {
|
|
BrowserCommand = PB_BROWSER_PREV;
|
|
JumpOffset = 1;
|
|
}
|
|
// page-direction (RIGHT)
|
|
else if (pBrowseNavi->NaviKey == NVTEVT_KEY_RIGHT) {
|
|
BrowserCommand = PB_BROWSER_NEXT;
|
|
JumpOffset = 1;
|
|
}
|
|
// page-direction (UP)
|
|
else if (pBrowseNavi->NaviKey == NVTEVT_KEY_UP) {
|
|
BrowserCommand = PB_BROWSER_PREV;
|
|
|
|
if (CurrPageID > 0) {
|
|
// means now is not 1st-page, decode the same file-index-image
|
|
JumpOffset = pBrowseNavi->HorNums;
|
|
} else { // if(CurrPageID == 0)
|
|
// means now is 1st-page
|
|
if (CurrThumbRow > 0) {
|
|
// means CurrThumbRow=1,2, do not change page, decode the same file-index-image
|
|
JumpOffset = pBrowseNavi->HorNums;
|
|
} else if (FileNumsInDir <= NumsPerPage) {
|
|
// means only one page & CurrThumbRow = 0,
|
|
|
|
if (FinalThumbRow == 0) {
|
|
// means only one row, do nothing
|
|
JumpOffset = 0;
|
|
} else if (FileNumsInFinalLine >= CurrFileIndex) {
|
|
// must decode the same file-index-image
|
|
JumpOffset = FileNumsInFinalLine;
|
|
} else {
|
|
// must decode the same file-index-image
|
|
JumpOffset = pBrowseNavi->HorNums + FileNumsInFinalLine;
|
|
}
|
|
} else {
|
|
// means CurrThumbRow=0, go to final page
|
|
if (FileNumsInFinalPage < pBrowseNavi->HorNums) {
|
|
// means final-page file nums < 3 (only one line),
|
|
if (FileNumsInFinalLine >= CurrFileIndex) {
|
|
// must decode the same file-index-image
|
|
JumpOffset = FileNumsInFinalLine;
|
|
} else {
|
|
// must decode final file-index-image
|
|
JumpOffset = CurrFileIndex;
|
|
}
|
|
} else {
|
|
// means final-page file nums >= 3
|
|
if (FileNumsInFinalLine >= CurrFileIndex) {
|
|
// must decode the same file-index-image
|
|
JumpOffset = FileNumsInFinalLine;
|
|
} else {
|
|
// must decode the same file-index-image
|
|
JumpOffset = pBrowseNavi->HorNums + FileNumsInFinalLine;
|
|
}
|
|
}
|
|
}
|
|
}// else if(CurrPageID == 0)
|
|
}
|
|
// page-direction (DOWN)
|
|
//else if(pBrowseNavi->NaviKey & NVTEVT_KEY_DOWN)
|
|
else if (pBrowseNavi->NaviKey == NVTEVT_KEY_DOWN) { //#NT#2015/08/25#KCHong#Fixed
|
|
BrowserCommand = PB_BROWSER_NEXT;
|
|
|
|
if ((CurrPageID + 1) < FinalPageID) {
|
|
// means now is not final-page & (final-1)-page, decode the same file-index-image
|
|
JumpOffset = pBrowseNavi->HorNums;
|
|
} else if ((CurrPageID + 1) == FinalPageID) {
|
|
// means now is (final-1)-page, go to final-page
|
|
if (CurrThumbRow != FinalThumbRow) {
|
|
// means CurrThumbRow != MaxRow, do not change page, decode the same file-index-image
|
|
JumpOffset = pBrowseNavi->HorNums;
|
|
} else if (FileNumsInFinalPage < pBrowseNavi->HorNums) {
|
|
// means final-page file nums < 3 (only one line),
|
|
if ((CurrFileIndex % pBrowseNavi->HorNums) == 0) {
|
|
NextFileIndex = pBrowseNavi->HorNums;
|
|
} else {
|
|
NextFileIndex = CurrFileIndex % pBrowseNavi->HorNums;
|
|
}
|
|
|
|
if (FileNumsInFinalLine >= NextFileIndex) {
|
|
// must decode the same file-index-image
|
|
JumpOffset = pBrowseNavi->HorNums;
|
|
} else {
|
|
// must decode final file-index-image
|
|
JumpOffset = pBrowseNavi->HorNums - (NextFileIndex - FileNumsInFinalLine);
|
|
}
|
|
} else {
|
|
// must decode the same file-index-image
|
|
JumpOffset = pBrowseNavi->HorNums;
|
|
}
|
|
} else { // if(CurrPageID == FinalPageID)
|
|
// means now is final-page
|
|
if ((CurrFileIndex + pBrowseNavi->HorNums) <= CurThumbNums) {
|
|
// means do not change page, decode the same file-index-image
|
|
JumpOffset = pBrowseNavi->HorNums;
|
|
} else if (FileNumsInDir <= NumsPerPage) {
|
|
// means only one page & CurrThumbRow=end,
|
|
if (FinalThumbRow == 0) {
|
|
// means only one row, do nothing
|
|
JumpOffset = 0;
|
|
} else if (CurrThumbRow != FinalThumbRow) {
|
|
JumpOffset = (pBrowseNavi->HorNums + FileNumsInFinalLine);
|
|
} else {
|
|
JumpOffset = (FileNumsInFinalLine);
|
|
}
|
|
} else {
|
|
// means now is final-page, go to 1st-page
|
|
// must decode the same file-index-image
|
|
if (CurrThumbRow != FinalThumbRow) {
|
|
JumpOffset = (pBrowseNavi->HorNums + FileNumsInFinalLine);
|
|
} else {
|
|
JumpOffset = (FileNumsInFinalLine);
|
|
}
|
|
}
|
|
}// End of if(CurrPageID == FinalPageID)
|
|
}
|
|
//#NT#2015/08/25#KCHong -begin
|
|
// page-direction (Previous page)
|
|
else if (pBrowseNavi->NaviKey == NVTEVT_KEY_PREV) {
|
|
BrowserCommand = PB_BROWSER_PREV;
|
|
|
|
if (CurrPageID > 0) {
|
|
// means now is not 1st-page, decode the same file-index-image
|
|
JumpOffset = NumsPerPage;
|
|
} else { // if(CurrPageID == 0)
|
|
// means now is 1st-page
|
|
if (FileNumsInDir <= NumsPerPage) {
|
|
// means only one page & CurrThumbRow = 0,
|
|
// means only one row, do nothing
|
|
JumpOffset = 0;
|
|
} else {
|
|
// means CurrThumbRow=0, go to final page
|
|
if (FileNumsInFinalPage < CurrFileIndex) {
|
|
// means final-page file nums < CurrFileIndex, jump to last file
|
|
JumpOffset = CurrFileIndex;
|
|
} else {
|
|
// means final-page file nums >= CurrFilIndex, jump to corresponding file
|
|
JumpOffset = FileNumsInFinalPage;
|
|
}
|
|
|
|
}
|
|
}// else if(CurrPageID == 0)
|
|
}
|
|
// page-direction (next page)
|
|
else if (pBrowseNavi->NaviKey == NVTEVT_KEY_NEXT) {
|
|
BrowserCommand = PB_BROWSER_NEXT;
|
|
|
|
if ((CurrPageID + 1) < FinalPageID) {
|
|
// means now is not final-page & (final-1)-page, decode the same file-index-image
|
|
JumpOffset = NumsPerPage;
|
|
} else if ((CurrPageID + 1) == FinalPageID) {
|
|
// means now is (final-1)-page, go to final-page
|
|
if (FileNumsInFinalPage < CurrFileIndex) {
|
|
// means final-page file nums < CurrFileIndex, jump to last file
|
|
JumpOffset = NumsPerPage - CurrFileIndex + FileNumsInFinalPage;
|
|
} else {
|
|
// means final-page file nums >= CurrFilIndex, jump to corresponding file
|
|
JumpOffset = NumsPerPage;
|
|
}
|
|
} else { // if(CurrPageID == FinalPageID)
|
|
// means now is final-page
|
|
JumpOffset = FileNumsInFinalPage;
|
|
}// End of if(CurrPageID == FinalPageID)
|
|
}
|
|
// page-direction (jump by index)
|
|
else if (pBrowseNavi->NaviKey < NumsPerPage) {
|
|
pBrowseNavi->NaviKey ++; // Sync the index base since UI use 0~8 but here use 1~9
|
|
if (pBrowseNavi->NaviKey >= CurrFileIndex) {
|
|
BrowserCommand = PB_BROWSER_NEXT;
|
|
JumpOffset = pBrowseNavi->NaviKey - CurrFileIndex;
|
|
} else {
|
|
BrowserCommand = PB_BROWSER_PREV;
|
|
JumpOffset = CurrFileIndex - pBrowseNavi->NaviKey;
|
|
}
|
|
}
|
|
//#NT#2015/08/25#KCHong -end
|
|
else {
|
|
DBG_ERR("Only support navigation key\r\n");
|
|
}
|
|
DBG_MSG("BrowserCommand=0x%x, JumpOffset=%d\r\n", BrowserCommand, JumpOffset);
|
|
|
|
FlowPBBrowserObj.BrowserCommand = BrowserCommand;
|
|
FlowPBBrowserObj.JumpOffset = JumpOffset;
|
|
FlowPBBrowserObj.HorNums = pBrowseNavi->HorNums;
|
|
FlowPBBrowserObj.VerNums = pBrowseNavi->VerNums;
|
|
if (FileNumsInDir <= NumsPerPage) { // means only one page
|
|
FlowPBBrowserObj.bReDecodeImages = FALSE;
|
|
} else {
|
|
FlowPBBrowserObj.bReDecodeImages = TRUE;
|
|
}
|
|
//#NT#2010/11/05#Ben Wang -begin
|
|
//#NT#Add the feature of "show selected thumb on background"
|
|
//FlowPBBrowserObj.bDrawCurrImgOnBG = g_bDrawCurrImgOnBG;
|
|
//#NT#2010/11/05#Ben Wang -end
|
|
if (PB_PlayBrowserMode(&FlowPBBrowserObj) != PB_STA_DONE) {
|
|
PB_WaitCommandFinish(PB_WAIT_INFINITE);
|
|
}
|
|
|
|
#if PLAY_THUMB_AND_MOVIE // play thumbnail and movie together
|
|
UINT32 idx;
|
|
PB_GetParam(PBPRMID_THUMB_CURR_IDX, &idx);
|
|
//DBG_DUMP("UIFlowWndPlayThumb_NaviKey: PBPRMID_THUMB_CURR_IDX %d\r\n", idx);
|
|
if (FlowPBBrowserObj.bReDecodeImages) {
|
|
PBView_DrawThumbFrame(idx-1, THUMB_DRAW_TMP_BUFFER);
|
|
} else {
|
|
PBView_DrawThumbFrame(idx-1, THUMB_DRAW_NEW_BUFFER);
|
|
}
|
|
#endif
|
|
}
|
|
|
|
void SetVdoWinSizeForPB(UINT32 uiStartX, UINT32 uiStartY, UINT32 uiWidth, UINT32 uiHeight)
|
|
{
|
|
|
|
}
|
|
void UpdateVdoWinForPB(void)
|
|
{
|
|
|
|
}
|
|
|
|
|