📄 playback.c
字号:
startCluster = USR_ReadDramFdbParameter(K_SDRAM_JPG_FdbParameterBufAddr + (ULONG)(G_playObject.FileIndex-1) * 10,&FileType);
//startCluster = USR_ReadDramFdbParameter(K_SDRAM_JPG_FdbParameterBufAddr + (ULONG)(G_playObject.FileIndex-1) * 8,&FileType);
//patch4.5@ada@Record DCF file name end
//patch4.2@yichang@for rotation function
//patch5.0@richie@sdram mapping begin
if(!G_CameraOptions.RotationAngle)
{
File_PlayExifFile(name, startCluster, K_SDRAM_ImagePlaybackGeneralBufAddr,&ImgWidth,&ImgHeight, date, 0);
// UI_PrintOSDString(name, 0, 4, UI_MENU_DEHIGHLIGHT_COLOR);//wendy
//patch4.2@yichang@0520 for improving display speed
//L2_CopyImage(K_SDRAM_FrameBufAAddr, G_DSPHsize, G_DSPVsize, 0, 0, G_DSPHsize, G_DSPVsize, K_SDRAM_DisplayBufAAddr, G_DSPHsize, G_DSPVsize, 0, 0);
}
else
{
File_PlayExifFile(name, startCluster, K_SDRAM_ImagePlaybackGeneralBufAddr, &ImgWidth, &ImgHeight, date, 0);
if(G_CameraOptions.RotationAngle == K_UIOPTION_ROTATION_90)
{
L2_RotateImage(K_SDRAM_ImagePlaybackDisplayBufAddr, G_DSPHsize, G_DSPVsize, K_SDRAM_ImagePlaybackBufAddr , 1);
ClearScreen();
tmp = ((ULONG)G_DSPVsize * (ULONG)ImgHeight) / (ULONG)ImgWidth;
tmpWidth = (USHORT)tmp;
tmpWidth = (tmpWidth / 4) * 4;
L2_ScaleDownImage(K_SDRAM_ImagePlaybackBufAddr, G_DSPVsize, G_DSPHsize, K_SDRAM_ImagePlaybackBufAddr, tmpWidth, G_DSPVsize, K_SDRAM_ImagePlaybackGeneralBufAddr);
L2_CopyImage(K_SDRAM_ImagePlaybackBufAddr, tmpWidth, G_DSPVsize, 0, 0, tmpWidth, G_DSPVsize, K_SDRAM_ImagePlaybackDisplayBufAddr, G_DSPHsize, G_DSPVsize, (G_DSPHsize-tmpWidth)/2, 0);
}
else if(G_CameraOptions.RotationAngle == K_UIOPTION_ROTATION_180 )
{
L2_RotateImage(K_SDRAM_ImagePlaybackDisplayBufAddr, G_DSPHsize, G_DSPVsize, K_SDRAM_ImagePlaybackBufAddr , 1);
ClearScreen();
L2_RotateImage(K_SDRAM_ImagePlaybackBufAddr, G_DSPVsize, G_DSPHsize, K_SDRAM_ImagePlaybackDisplayBufAddr , 1);
//ClearScreen();
//L2_CopyImage(K_SDRAM_PlaybackImageBufAddr, G_DSPHsize, G_DSPVsize, 0, 0, G_DSPHsize, G_DSPVsize, K_SDRAM_DisplayBufAAddr, G_DSPHsize, G_DSPVsize, 0, 0);
}
else //270
{
L2_RotateImage(K_SDRAM_ImagePlaybackDisplayBufAddr, G_DSPHsize, G_DSPVsize, K_SDRAM_ImagePlaybackBufAddr , 0);
ClearScreen();
tmp = ((ULONG)G_DSPVsize * (ULONG)ImgHeight) / (ULONG)ImgWidth;
tmpWidth = (USHORT)tmp;
tmpWidth = (tmpWidth / 4) * 4;
L2_ScaleDownImage(K_SDRAM_ImagePlaybackBufAddr, G_DSPVsize, G_DSPHsize, K_SDRAM_ImagePlaybackBufAddr, tmpWidth, G_DSPVsize, K_SDRAM_ImagePlaybackGeneralBufAddr);
L2_CopyImage(K_SDRAM_ImagePlaybackBufAddr, tmpWidth, G_DSPVsize, 0, 0, tmpWidth, G_DSPVsize, K_SDRAM_ImagePlaybackDisplayBufAddr, G_DSPHsize, G_DSPVsize, (G_DSPHsize-tmpWidth)/2, 0);
}
}
L2_SetBFBAddr(K_SDRAM_ImagePlaybackDisplayBufAddr);
//if(!G_CameraOptions.RotationAngle)
//{
// File_PlayExifFile(name, startCluster, K_SDRAM_FrameBufAAddr,&ImgWidth,&ImgHeight, date, 0);
//patch4.2@yichang@0520 for improving display speed
//L2_CopyImage(K_SDRAM_FrameBufAAddr, G_DSPHsize, G_DSPVsize, 0, 0, G_DSPHsize, G_DSPVsize, K_SDRAM_DisplayBufAAddr, G_DSPHsize, G_DSPVsize, 0, 0);
//}
//else
//{
// File_PlayExifFile(name, startCluster, K_SDRAM_FrameBufAAddr, &ImgWidth, &ImgHeight, date, 0);
// if(G_CameraOptions.RotationAngle == K_UIOPTION_ROTATION_90)
// {
// L2_RotateImage(K_SDRAM_DisplayBufAAddr, G_DSPHsize, G_DSPVsize, K_SDRAM_PlaybackImageBufAddr , 1);
// ClearScreen();
// tmp = ((ULONG)G_DSPVsize * (ULONG)ImgHeight) / (ULONG)ImgWidth;
// tmpWidth = (USHORT)tmp;
// tmpWidth = (tmpWidth / 4) * 4;
// L2_ScaleDownImage(K_SDRAM_PlaybackImageBufAddr, G_DSPVsize, G_DSPHsize, K_SDRAM_PlaybackImageBufAddr, tmpWidth, G_DSPVsize, K_SDRAM_FrameBufAAddr);
// L2_CopyImage(K_SDRAM_PlaybackImageBufAddr, tmpWidth, G_DSPVsize, 0, 0, tmpWidth, G_DSPVsize, K_SDRAM_DisplayBufAAddr, G_DSPHsize, G_DSPVsize, (G_DSPHsize-tmpWidth)/2, 0);
// }
// else if(G_CameraOptions.RotationAngle == K_UIOPTION_ROTATION_180 )
// {
// L2_RotateImage(K_SDRAM_DisplayBufAAddr, G_DSPHsize, G_DSPVsize, K_SDRAM_FrameBufAAddr , 1);
// L2_RotateImage(K_SDRAM_FrameBufAAddr, G_DSPVsize, G_DSPHsize, K_SDRAM_PlaybackImageBufAddr , 1);
// ClearScreen();
// L2_CopyImage(K_SDRAM_PlaybackImageBufAddr, G_DSPHsize, G_DSPVsize, 0, 0, G_DSPHsize, G_DSPVsize, K_SDRAM_DisplayBufAAddr, G_DSPHsize, G_DSPVsize, 0, 0);
// }
// else //270
// {
// L2_RotateImage(K_SDRAM_DisplayBufAAddr, G_DSPHsize, G_DSPVsize, K_SDRAM_PlaybackImageBufAddr , 0);
// ClearScreen();
// tmp = ((ULONG)G_DSPVsize * (ULONG)ImgHeight) / (ULONG)ImgWidth;
// tmpWidth = (USHORT)tmp;
// tmpWidth = (tmpWidth / 4) * 4;
// L2_ScaleDownImage(K_SDRAM_PlaybackImageBufAddr, G_DSPVsize, G_DSPHsize, K_SDRAM_PlaybackImageBufAddr, tmpWidth, G_DSPVsize, K_SDRAM_FrameBufAAddr);
// L2_CopyImage(K_SDRAM_PlaybackImageBufAddr, tmpWidth, G_DSPVsize, 0, 0, tmpWidth, G_DSPVsize, K_SDRAM_DisplayBufAAddr, G_DSPHsize, G_DSPVsize, (G_DSPHsize-tmpWidth)/2, 0);
// }
//}
//L2_SetBFBAddr(K_SDRAM_DisplayBufAAddr);
//patch5.0@richie@sdram mapping end
//patch4.4@yichang@0624 for OSD begin
//patch4.5@ada@Record DCF file name begin
//USR_SetBaseName(name, G_playObject.FileIndex);
//patch4.5@ada@Record DCF file name end
//Joe@2003.3.4 19:07 modify begin
/*
name[8] = '\0';
UI_PrintOSDString(name, 0, FOSD_V_num-1,UI_MENU_DEHIGHLIGHT_COLOR);
UI_PrintOSDString(" ", 0, 0,UI_MENU_TITLE_TEXT_COLOR);
*/
//patch5.04@Joe@2003.5.13 19:01 add begin
//L2_CtrlScreen(1);
DELAY_100ms();
DELAY_100ms();
UI_ClearFOSD(25, 8, 0x00);
//patch5.04@Joe@2003.5.13 19:01 add end
//UI_PrintOSDString(" ", FOSD_H_num - 7, 0, UI_MENU_TITLE_TEXT_COLOR);
//name[3] = '-';
name[8] = '\0';
//for (i = 0; i < 3; i++)
//{
// name[i] = DpofDir1Name[i];
//}
for (i = 0; i < 9; i++)
{
TTName[i] = name[i];
}
// UI_PrintOSDString(name,0, FOSD_V_num - 1, UI_MENU_DEHIGHLIGHT_COLOR);
//UI_PrintOSDString(" ", 0, 0, UI_MENU_TITLE_TEXT_COLOR);
//Joe@2003.3.4 19:07 modify end
//patch4.4@yichang@0624 for OSD end
//Joe@2003.3.26 16:44 modify begin
/*
//yichang@0508
if(dspOff)
{
L2_TurnOnOffDisplay(1);
}
//yichang@0510
*/
//patch5.04@Joe@2003.5.13 19:07 mask begin
//L2_TurnOnOffDisplay(1);
//patch5.04@Joe@2003.5.13 19:07 mask end
//Joe@2003.3.26 16:44 modify end
}
else
{
if(!G_OptionYesNo)
{
if (G_playObject.mediaType == K_PLAYBACK_TYPE_AVI)
{
//patch5.04@Joe@2003.5.13 20:15 mask begin
//L2_TurnOnOffDisplay(0);
//patch5.04@Joe@2003.5.13 20:15 mask end
//patch5.04@Joe@2003.5.13 20:21 add begin
//L2_CtrlScreen(3);
UI_ClearFOSD(25, 8, 0x08);
// UI_PrintOSDString("Load...", FOSD_H_num/2-3, FOSD_V_num/2, UI_MENU_BG_COLOR_ON | UI_MENU_TITLE_TEXT_COLOR);
L2_SetFOSDIndex(FOSD_V_num/2,FOSD_H_num/2-1,0x3a);
L2_SetFOSDAttr(FOSD_V_num/2,FOSD_H_num/2-1, UI_MENU_BG_COLOR_ON | UI_MENU_TITLE_TEXT_COLOR);
L2_SetFOSDIndex(FOSD_V_num/2,FOSD_H_num/2,0x3b);
L2_SetFOSDAttr(FOSD_V_num/2,FOSD_H_num/2, UI_MENU_BG_COLOR_ON | UI_MENU_TITLE_TEXT_COLOR);
//patch5.04@Joe@2003.5.13 20:21 add end
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)G_playObject.FileIndex) - 1) * 10 + 6),K_SDRAM_Prefetch);
for (i = 0; i < 4; i += 2)
{
L2_DRAMReadWord(&name[i],&name[i + 1]);
}
TempFileIndex = G_playObject.FileIndex;
for (i = 7; i > 3; i--)
{
ch = (UCHAR) (TempFileIndex % 10) + '0';
TempFileIndex /= 10;
name[i] = ch;
}
name[8] = 'A';
name[9] = 'V';
name[10] = 'I';
name[11] = 0x20;
//USR_SetAviName(name, G_playObject.FileIndex);
//patch4.5@ada@Record DCF file name end
//patch4.5.2@ada@Fix AVI play one bug begin
//L2_SetAFBSize(G_AVIWidth, G_AVIHeight);
//L2_SetBFBSize(G_AVIWidth, G_AVIHeight);
//L2_SetDisplaySrcImgSize(G_AVIWidth, G_AVIHeight,G_DisplayType);
//patch4.5.2@ada@Fix AVI play one bug end
L1_AVIPreviewName(name, 0);
/* L2_SetDisplayMode(0,0x10); //Disable Frame-rate-conversion
//L2_SetDisplaySrcImgSize(G_AVIWidth, G_AVIHeight,G_DisplayType);
L1_SetAviDisplaySrcImgSize(G_AVIWidth, G_AVIHeight,G_DisplayType);
L2_SetAFBSize(G_AVIWidth, G_AVIHeight);
L2_SetBFBSize(G_AVIWidth, G_AVIHeight);
*/
L2_SetDisplayType(G_DisplayType);
L2_SetDisplaySrcImgSize(G_AVIWidth, G_AVIHeight,G_DisplayType);
L2_SetAFBSize(G_AVIWidth, G_AVIHeight);
L2_SetBFBSize(G_AVIWidth, G_AVIHeight);
if(SmallSizeAvi)
{
XBYTE[0x2D18] = 0x00;
SmallSizeAvi = 0;
}
//patch5.0@richie@sdram mapping begin
// L2_SetBFBAddr(K_SDRAM_AviPbBufAddrA + K_SDRAM_ImagePlaybackDisplayBufSize);
L2_SetBFBAddr(K_SDRAM_ImagePlaybackGeneralBufAddr+K_SDRAM_ImagePlaybackGeneralBufSize/*K_SDRAM_AviPbBufAddrA + K_SDRAM_ImagePlaybackDisplayBufSize*/);
//L2_SetBFBAddr(K_SDRAM_FrameBufAAddr);
//patch5.0@richie@sdram mapping end
//patch5.04@Joe@2003.5.13 19:01 add begin
//L2_CtrlScreen(1);
DELAY_100ms();
DELAY_100ms();
UI_ClearFOSD(25, 8, 0x00);
//patch5.04@Joe@2003.5.13 19:01 add end
//patch5.04@Joe@2003.5.13 20:16 mask begin
//L2_TurnOnOffDisplay(1);
//patch5.04@Joe@2003.5.13 20:16 mask end
//patch4.5.2@ada@Unnecessary resolution define begin
//if(G_DisplayType <= 7) //TV
//{
// tmp1 = (K_DISPLAY_StnLcdWidth/16)+5;
// tmp2 = (K_DISPLAY_StnLcdHeight/32);
//}
//else
//{
// tmp1 = (G_DSPHsize/16);
// tmp2 = (G_DSPVsize/32);
//}
//UI_PrintOSDString("PLAY AVI", tmp1/2-4, tmp2/2-1,UI_MENU_TITLE_TEXT_COLOR | UI_MENU_BG_COLOR_ON);
//Joe@2003.3.21 19:49 add chinese menu begin
if(G_Language==5)
UI_PrintOSDString(PLAY_AVI[G_Language], FOSD_H_num/2-8, FOSD_V_num/2-1,UI_MENU_TITLE_TEXT_COLOR | UI_MENU_BG_COLOR_ON);
else
UI_PrintOSDString(PLAY_AVI[G_Language], FOSD_H_num/2-4, FOSD_V_num/2-1,UI_MENU_TITLE_TEXT_COLOR | UI_MENU_BG_COLOR_ON);
//Joe@2003.3.21 19:49 add chinese menu end
UI_MenuYesNo(1);
L2_CtrlScreen(1);
G_OptionYesNo = 1;
G_UIAction = K_UI_ACTION_YESNO;
//patch4.4@yichang@0624 for OSD begin
//patch4.5@ada@Record DCF file name begin
//USR_SetBaseName(name, G_playObject.FileIndex);
//patch4.5@ada@Record DCF file name end
//Joe@2003.3.4 19:06 modify begin
name[8] = '\0';
for (i = 0; i < 9; i++)
{
TTName[i] = name[i];
}
// UI_PrintOSDString(name, 0, FOSD_V_num-1,UI_MENU_DEHIGHLIGHT_COLOR);
// UI_PrintOSDString(" ", 0, 0,UI_MENU_TITLE_TEXT_COLOR);
/*
UI_PrintOSDString(" ", FOSD_H_num - 7, 0, UI_MENU_TITLE_TEXT_COLOR);
//name[3] = '-';
name[8] = '\0';
//for (i = 0; i < 3; i++)
//{
// name[i] = DpofDir1Name[i];
//}
UI_PrintOSDString(name, FOSD_H_num - 7, 0, UI_MENU_DEHIGHLIGHT_COLOR);
UI_PrintOSDString(" ", 0, 0, UI_MENU_TITLE_TEXT_COLOR);
*/
//Joe@2003.3.4 19:06 modify end
//patch4.4@yichang@0624 for OSD end
if(dspOff)
{
L2_TurnOnOffDisplay(1);
}
}
else //if (G_playObject.mediaType == K_PLAYBACK_TYPE_WAV)
{
//patch5.04@Joe@2003.5.13 20:21 add begin
L2_SetColorPalette(1, 0, 0, 0);
L2_CtrlScreen(3);
UI_ClearFOSD(25, 8, 0x08);
// UI_PrintOSDString("Load...", FOSD_H_num/2-3, FOSD_V_num/2, UI_MENU_BG_COLOR_ON | UI_MENU_TITLE_TEXT_COLOR);
L2_SetFOSDIndex(FOSD_V_num/2,FOSD_H_num/2-1,0x3a);
L2_SetFOSDAttr(FOSD_V_num/2,FOSD_H_num/2-1, UI_MENU_BG_COLOR_ON | UI_MENU_TITLE_TEXT_COLOR);
L2_SetFOSDIndex(FOSD_V_num/2,FOSD_H_num/2,0x3b);
L2_SetFOSDAttr(FOSD_V_num/2,FOSD_H_num/2, UI_MENU_BG_COLOR_ON | UI_MENU_TITLE_TEXT_COLOR);
//patch5.04@Joe@2003.5.13 20:21 add end
//wendy@2004/9/8
//wendy@2004/9/8
CopyAudioIcon(1);
//patch4.5.2@ada@Unnecessary resolution define begin
//if(G_DisplayType <= 7) //TV
//{
// tmp1 = (K_DISPLAY_StnLcdWidth/16)+5;
// tmp2 = (K_DISPLAY_StnLcdHeight/32);
//}
//else
//{
// tmp1 = (G_DSPHsize/16);
// tmp2 = (G_DSPVsize/32);
//}
//UI_PrintOSDString("PLAY WAV", tmp1/2-4, tmp2/2-1,UI_MENU_TITLE_TEXT_COLOR | UI_MENU_BG_COLOR_ON);
//patch5.04@Joe@2003.5.13 19:01 add begin
L2_CtrlScreen(1);
L2_SetColorPalette(8, 0, 0, 255);
UI_ClearFOSD(25, 8, 0x00);
//patch5.04@Joe@2003.5.13 19:01 add end
//Joe@2003.3.21 19:49 add chinese menu begin
if(G_Language==5)
UI_PrintOSDString(PLAY_WAV[G_Language], FOSD_H_num/2-8, FOSD_V_num/2-1,UI_MENU_TITLE_TEXT_COLOR | UI_MENU_BG_COLOR_ON);
else
UI_PrintOSDString(PLAY_WAV[G_Language], FOSD_H_num/2-4, FOSD_V_num/2-1,UI_MENU_TITLE_TEXT_COLOR | UI_MENU_BG_COLOR_ON); //Joe@2003.3.21 19:49 add chinese menu end
//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -