📄 playback.c
字号:
if (G_USR_FileCount > 0)
{
G_SelCell = (UCHAR)((G_USR_FileCount - 1) % 9);
G_PlayBackPageCount = (G_USR_FileCount - 1) / 9;
}
else
{
G_SelCell = 0;
G_PlayBackPageCount = 0;
}
//printf("G_SelCell = %bd\n",G_SelCell);
//printf("G_PlayBackPageCount = %d\n",G_PlayBackPageCount);
G_ChangePage = 0;
G_DPOF_Qty = 0;
G_Old_DPOF_Qty = 0;
//Joe@2003.3.4 16:13 add begin
G_USR_FileOrder = G_USR_FileCount;
//Joe@2003.3.4 16:13 add end
if(G_Playback_Mode == K_PLAYBACK_MODE_NINE)
{
PlaybackNine(K_PageInitialize);
}
else if (G_Playback_Mode == K_PLAYBACK_MODE_ONE)
{
//patch4.2@yichang@0516 for yes/no playing selection
// UI_ClearFOSD(25,8,0x00); //XiaoAo mask
G_OptionYesNo = 0;
PlaybackOne(K_PageInitialize);
}
//patch4.4@ada@FOSD begin
//Joe@2003.2.27 10:21 modify begin
/*if(G_DisplayType <= 7) //TV
{
FOSD_H_num = (K_DISPLAY_StnLcdWidth/16)+5;
FOSD_V_num = (K_DISPLAY_StnLcdHeight/32);
}
else
{
FOSD_H_num = (G_DSPHsize/16);
FOSD_V_num = (G_DSPVsize/32);
}
*/
UI_GetFOSDSize(&FOSD_H_num, &FOSD_V_num);
//Joe@2003.2.27 10:21 modify end
//Joe@2003.3.4 19:28 mask begin
/*
DpofDir1Name[8] = '\0';
//Joe@2003.3.4 17:40 modify begin
//UI_PrintOSDString(DpofDir1Name, FOSD_H_num-8, 0,UI_MENU_DEHIGHLIGHT_COLOR);
UI_PrintOSDString(DpofDir1Name, FOSD_H_num-7, 0,UI_MENU_DEHIGHLIGHT_COLOR);
//Joe@2003.3.4 17:40 modify end
*/
//Joe@2003.3.4 19:28 mask end
// L2_SetGPIOBit(15,1); //LCD_BACKLIGHT//wendy@2004/9/8
//PlaybackFlag=0;
UI_PlaybackStatusOSD();
//patch4.4@ada@FOSD end
}
//=============================================================================
//Playback_InitialAfterDeleteAll
//=============================================================================
//version4.0@ada@0513 for Play Back
void Playback_InitialAfterDeleteAll(void) USING_0
{
UCHAR i;
//version4.0@ada@0513 for Multi-Directory
#if (SINGLE_DIRECTORY == 0)
USHORT TempCountIndex;
USHORT TempCount;
UCHAR tmp1,tmp2;
USHORT startCluster;
UCHAR sts;
#endif
//patch4.4@ada@FOSD begin
UCHAR FOSD_V_num, FOSD_H_num;
//patch4.4@ada@FOSD end
XBYTE[0x20D0] = XBYTE[0x20D0] & 0xDF;// ylee@0320 : Turn off VD falling interrupt
ClearScreen();
G_SelCell = 0;
G_PlayBackPageCount = 0;
G_NowPlayFileIndex = 0;
G_ChangePage = 0;
G_DPOF_Qty = 0;
G_Old_DPOF_Qty = 0;
for (i = 0; i < 9; i++)
{
//Play9_PreFileIndexBuf[i] = 0;
Play9_NowFileIndexBuf[i] = 0;
//Play9_NextFileIndexBuf[i] = 0;
}
//version4.0@ada@0513 for Multi-Directory
#if (SINGLE_DIRECTORY == 0)
//If this directory has no file, then change directory until find one
if ((G_USR_FileCount == 0) && (G_USR_TotalDirectory > 1))
{
//patch4.4@ada@DirectoryIndexOrder begin
//TempCountIndex = G_USR_Dir1CountIndex;
TempCountIndex = G_USR_Dir1Count;
//If all directory has no file,then switch back to the default directory.
TempCount = G_USR_TotalDirectory + 1;
//Find a directory with file exists
while (TempCount > 0)
{
////printf("Switch forward directory Once\n");
L2_DRAMSetStartAddr((K_SDRAM_DcfDirBufAddr + (((ULONG)TempCountIndex) - 100) * 8 + 7),K_SDRAM_Prefetch);
L2_DRAMReadWord(&tmp1,&tmp2);
TempCountIndex = (USHORT)tmp1 | (((USHORT)tmp2) << 8);
//if (TempCountIndex < G_USR_TotalDirectory)
//{
// TempCountIndex++;
//}
//else
//{
// TempCountIndex = 1;
//}
//L2_DRAMSetStartAddr((K_SDRAM_DcfDirBufAddr + ((ULONG)TempCountIndex - 1) * 7),K_SDRAM_Prefetch);
L2_DRAMSetStartAddr((K_SDRAM_DcfDirBufAddr + ((ULONG)TempCountIndex - 100) * 8),K_SDRAM_Prefetch);
//L2_DRAMReadWord(&tmp1,&tmp2);
//G_USR_Dir1Count = ((USHORT)tmp2 << 8) | (USHORT)tmp1;
L2_DRAMReadWord(&tmp1,&tmp2);
startCluster = ((USHORT)tmp2) << 8 | (USHORT)tmp1;
G_USR_Dir1Cluster = startCluster;
G_USR_Dir1Count = TempCountIndex;
DOS_SetCurrDir(startCluster);
sts = USR_FileInitialize();
G_USR_FileIndex++; //next file index
//Find directory with file in it
if ((sts) && (G_USR_FileCount > 0))
{
//printf("G_USR_FileCount = %d\n",G_USR_FileCount);
//printf("Changing directory %d\n",G_USR_Dir1Count);
//G_USR_Dir1CountIndex = TempCountIndex;
//version4.0@ada@0513 for DPOF
DPOF_DirInitialize();
break;
}
TempCount--;
}
}
//patch4.4@ada@DirectoryIndexOrder end
#endif
//If file exists in this directory
if (G_USR_FileCount)
{
G_USR_SearchNowFileIndex = G_USR_FirstFileIndex;
for (i = 0; i < 9; i++)
{
Play9_NowFileIndexBuf[i] = G_USR_SearchNowFileIndex;
Playback_GetMediaInfo(G_USR_SearchNowFileIndex);
////printf("G_USR_SearchNextFileIndex = %d\n",G_USR_SearchNextFileIndex);
if (G_USR_SearchNextFileIndex)
{
G_USR_SearchNowFileIndex = G_USR_SearchNextFileIndex;
}
else //Image stops here
{
////printf("Image stops here\n");
break;
}
}
//Joe@2003.3.4 16:14 add begin
G_USR_FileOrder = 1;
//Joe@2003.3.4 16:14 add end
}
G_SelCell = 0;
G_PlayBackPageCount = 0;
G_ChangePage = 0;
G_DPOF_Qty = 0;
G_Old_DPOF_Qty = 0;
//patch4.4@ada@FOSD begin
//Joe@2003.2.27 10:21 modify begin
/*if(G_DisplayType <= 7) //TV
{
FOSD_H_num = (K_DISPLAY_StnLcdWidth/16)+5;
FOSD_V_num = (K_DISPLAY_StnLcdHeight/32);
}
else
{
FOSD_H_num = (G_DSPHsize/16);
FOSD_V_num = (G_DSPVsize/32);
}
*/
UI_GetFOSDSize(&FOSD_H_num, &FOSD_V_num);
//Joe@2003.2.27 10:21 modify end
UI_ClearFOSD(25,8,0x00);
//Joe@2003.3.4 19:28 mask begin
/*
DpofDir1Name[8] = '\0';
//Joe@2003.3.4 17:41 modify begin
//UI_PrintOSDString(DpofDir1Name, FOSD_H_num-8, 0,UI_MENU_DEHIGHLIGHT_COLOR);
UI_PrintOSDString(DpofDir1Name, FOSD_H_num-7, 0,UI_MENU_DEHIGHLIGHT_COLOR);
//Joe@2003.3.4 17:41 modify end
*/
//Joe@2003.3.4 19:28 mask end
UI_PlaybackStatusOSD();
//patch4.4@ada@FOSD end
}
//=============================================================================
//Playback_InitialAfterChangePage
//=============================================================================
//version4.0@ada@0513 for Play Back
void Playback_InitialAfterChangePage(void) USING_0
{
UCHAR i;
XBYTE[0x20D0] = XBYTE[0x20D0] & 0xDF;// ylee@0320 : Turn off VD falling interrupt
ClearScreen();
G_SelCell = 0;
G_PlayBackPageCount = 0;
G_NowPlayFileIndex = 0;
G_ChangePage = 0;
G_DPOF_Qty = 0;
G_Old_DPOF_Qty = 0;
for (i = 0; i < 9; i++)
{
//Play9_PreFileIndexBuf[i] = 0;
Play9_NowFileIndexBuf[i] = 0;
//Play9_NextFileIndexBuf[i] = 0;
}
//If file exists in this directory
if (G_USR_FileCount)
{
G_USR_SearchNowFileIndex = G_USR_FirstFileIndex;
//printf("G_USR_FirstFileIndex = %d\n",G_USR_FirstFileIndex);
for (i = 0; i < 9; i++)
{
Play9_NowFileIndexBuf[i] = G_USR_SearchNowFileIndex;
//printf("Play9_NowFileIndexBuf[%bd] = %d\n",i,Play9_NowFileIndexBuf[i]);
Playback_GetMediaInfo(G_USR_SearchNowFileIndex);
////printf("G_USR_SearchNextFileIndex = %d\n",G_USR_SearchNextFileIndex);
if (G_USR_SearchNextFileIndex)
{
G_USR_SearchNowFileIndex = G_USR_SearchNextFileIndex;
}
else //Image stops here
{
//printf("Image stops here\n");
break;
}
}
}
}
//=============================================================================
//Playback_GetMediaInfo
//=============================================================================
//version4.0@ada@0513 for Play Back
UCHAR Playback_GetMediaInfo(USHORT FileIndex) USING_0
{
USHORT startCluster;
UCHAR fileExist;
UCHAR mediaType;
fileExist = 0;
//patch4.5@ada@Record DCF file name begin
startCluster = USR_ReadDramFdbParameter(K_SDRAM_JPG_FdbParameterBufAddr + ((ULONG)FileIndex - 1) * 10,&mediaType);
//startCluster = USR_ReadDramFdbParameter(K_SDRAM_JPG_FdbParameterBufAddr + ((ULONG)FileIndex - 1) * 8,&mediaType);
//patch4.5@ada@Record DCF file name end
if ((startCluster > 0) && (G_DOS_FileSize > 0))
{
fileExist = 1;
//printf("mediaType = K_PLAYBACK_TYPE_JPG\n");
}
else
{
//patch4.5@ada@Record DCF file name begin
startCluster = USR_ReadDramFdbParameter(K_SDRAM_AVI_FdbParameterBufAddr + ((ULONG)FileIndex - 1) * 10,&mediaType);
//startCluster = USR_ReadDramFdbParameter(K_SDRAM_AVI_FdbParameterBufAddr + ((ULONG)FileIndex - 1) * 8,&mediaType);
//patch4.5@ada@Record DCF file name end
if ((startCluster > 0) && (G_DOS_FileSize > 0))
{
fileExist = 1;
//printf("mediaType = K_PLAYBACK_TYPE_AVI\n");
}
else
{
//#if ( Audio == 1 )
//patch4.5@ada@Record DCF file name begin
startCluster = USR_ReadDramFdbParameter(K_SDRAM_WAV_FdbParameterBufAddr + ((ULONG)FileIndex - 1) * 10,&mediaType);
//startCluster = USR_ReadDramFdbParameter(K_SDRAM_WAV_FdbParameterBufAddr + ((ULONG)FileIndex - 1) * 8,&mediaType);
//patch4.5@ada@Record DCF file name end
if ((startCluster > 0) && (G_DOS_FileSize > 0))
{
fileExist = 1;
//printf("mediaType = K_PLAYBACK_TYPE_WAV\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -