📄 osddsply.c
字号:
break;
case OSDDSPLY_MODE_VCD_TOTAL_REMAIN:
__bShowTimeType = MSG_REMAIN_ABSTIME;
break;
#endif //#ifndef NO_VCD_DISPLAY_UI //++CoCo2.37p
case OSDDSPLY_MODE_CDROM_AUDIO:
__bShowTimeType = MSG_RELTIME;
break;
case OSDDSPLY_MODE_CDROM_MOTION_ELAPSED:
__bShowTimeType = MSG_RELTIME;
break;
#ifdef OSDDSPLY_SUPPORT_SHOW_REMAIN_TIME_FOR_DIVX
case OSDDSPLY_MODE_CDROM_MOTION_REMAIN:
__bShowTimeType = MSG_REMAIN_RELTIME;
break;
#endif //OSDDSPLY_SUPPORT_SHOW_REMAIN_TIME_FOR_DIVX
default:
break;
}
}
//***************************************************************************
// Function : _OSDDSPLY_LD_ShowTime
// Abstract : This function will show time for one-line display
// Arguments : bUpdate: OSDDSPLY_UPDATE_ITEM==>Update
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDDSPLY_LD_ShowTime(BYTE bUpdate)
{
_wOSDDSPLYHPos = 0;
//show type of the time.
switch (pOSDDSPTypeMode[_bOSDDSPLYMode].bDisplayModeID)
{
#ifndef NO_DVD_DISPLAY_UI //++CoCo2.37p
case OSDDSPLY_MODE_DVD_TITLE_ELAPSED:
//output "Title Elapsed" string.
__pOSDUTLOutputString = aDSPLYTitleElapsed;
break;
case OSDDSPLY_MODE_DVD_TITLE_REMAIN:
//Output "Title Remain" string.
__pOSDUTLOutputString = aDSPLYTitleRemain;
break;
case OSDDSPLY_MODE_DVD_CHAPTER_ELAPSED:
//Output "Chapter Elapsed" string.
__pOSDUTLOutputString = aDSPLYChapterElapsed;
break;
case OSDDSPLY_MODE_DVD_CHAPTER_REMAIN:
//Output "Chapter Remain" string.
__pOSDUTLOutputString = aDSPLYChapterRemain;
break;
#endif //#ifndef NO_DVD_DISPLAY_UI //++CoCo2.37p
#ifndef NO_VCD_DISPLAY_UI //++CoCo2.37p
case OSDDSPLY_MODE_VCD_SINGLE_ELAPSED:
//Output "Single Elapsed" string.
__pOSDUTLOutputString = aDSPLYSingleElapsed;
break;
case OSDDSPLY_MODE_VCD_SINGLE_REMAIN:
//Output "Single Remain" string.
__pOSDUTLOutputString = aDSPLYSingleRemain;
break;
case OSDDSPLY_MODE_VCD_TOTAL_ELAPSED:
//Output "Total Elapsed" string.
__pOSDUTLOutputString = aDSPLYTotalElapsed;
break;
case OSDDSPLY_MODE_VCD_TOTAL_REMAIN:
//Output "Total Remain" string.
__pOSDUTLOutputString = aDSPLYTotalRemain;
break;
#endif //#ifndef NO_VCD_DISPLAY_UI //++CoCo2.37p
case OSDDSPLY_MODE_CDROM_AUDIO:
break;
#ifdef OSDDSPLY_SUPPORT_SHOW_REMAIN_TIME_FOR_DIVX
case OSDDSPLY_MODE_CDROM_MOTION_REMAIN:
__pOSDUTLOutputString = aNDRemain;
break;
#endif //OSDDSPLY_SUPPORT_SHOW_REMAIN_TIME_FOR_DIVX
default:
break;
}
if (__wDiscType & CDROM_M1)
{
if (__bAttrPlay != ATTR_JPG)
{
#ifdef OSDDSPLY_SUPPORT_SHOW_REMAIN_TIME_FOR_DIVX
if (pOSDDSPTypeMode[_bOSDDSPLYMode].bDisplayModeID == OSDDSPLY_MODE_CDROM_MOTION_REMAIN)
{
_OSDDSPLY_LD_DrawRegion(OSDDSPLY_REGION_LD_CDROM_TIME, OSDDSPLY_UPDATE_ITEM, 0);
_wOSDDSPLYHPos = GDI_GetStringWidth_909(__pOSDUTLOutputString);
}
#endif //OSDDSPLY_SUPPORT_SHOW_REMAIN_TIME_FOR_DIVX
OSDUTL_PrepareOutputString();
OSDUTL_ShowHourMinSec();
_OSDDSPLY_LD_DrawRegion(OSDDSPLY_REGION_LD_CDROM_TIME, OSDDSPLY_UPDATE_INFO, _wOSDDSPLYHPos);
}
}
else
{
if (bUpdate & OSDDSPLY_UPDATE_ITEM)
{
_OSDDSPLY_LD_DrawRegion(OSDDSPLY_REGION_LD_TIME, OSDDSPLY_UPDATE_ITEM, 0);
}
#ifndef NO_DISC_MODE //CoCo2.37
//CoCo1.07, support title menu in one-line Display mode.
if ((__wDiscType & BOOK_DVD) && ((__bDomain==VTSM_DOM) || (__bDomain==VMGM_DOM)))
return;
#endif //#ifndef NO_DISC_MODE //CoCo2.37
_wOSDDSPLYHPos = GDI_GetStringWidth_909(__pOSDUTLOutputString);
_wOSDDSPLYHPos += OSDDSPLY_LD_DISTANCE_TIME_TITLE_TIME;
if (bUpdate & OSDDSPLY_UPDATE_INFO)
{
//Show time.
if (gcShowStatus.bStill || (__bCountStop != 0))
{
__pOSDUTLOutputString = aDSPLYUnknownTime;
_OSDDSPLY_LD_DrawRegion(OSDDSPLY_REGION_LD_TIME, OSDDSPLY_UPDATE_INFO, (BYTE)_wOSDDSPLYHPos);
return;
}
OSDUTL_PrepareOutputString();
OSDUTL_ShowHourMinSec();
_OSDDSPLY_LD_DrawRegion(OSDDSPLY_REGION_LD_TIME, OSDDSPLY_UPDATE_INFO, (BYTE)_wOSDDSPLYHPos);
}
}
}
//***************************************************************************
// Function : _OSDDSPLY_LD_DrawRegion
// Abstract : This function will draw the region.
// Arguments : bRegion: The region you want to draw.
// : bType: OSDLD_UPDATE_ITEM: You want to draw the item.
// : OSDDSPLY_UPDATE_INFO: You want to draw the info.
// : bPos: The relative position of the region.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDDSPLY_LD_DrawRegion(BYTE bRegion, BYTE bType, BYTE bPos)
{
//clear all region except time region.
if ((bRegion != OSDDSPLY_REGION_LD_TIME) && (bRegion != OSDDSPLY_REGION_TIME_LD_TIME) && (bRegion != OSDDSPLY_REGION_LD_CDROM_TIME))
_OSDDSPLY_LD_ClearRegion(bRegion, bPos);
_OSDDSPLYStringAttr.bBackground = OSDDSPLY_LD_PALETTE_ENTRY_GENERAL_BACKGROUND; //PAL_ENTRY_COLOR_TRANSPARENT; //Set the color of background is the same as color key.
_OSDDSPLYStringAttr.bColorKey = 0;
_OSDDSPLYStringAttr.bShadow1 = OSDDSPLY_LD_PALETTE_ENTRY_GENERAL_BACKGROUND; //Use OSDDSPLY_LD_PALETTE_ENTRY_GENERAL_BACKGROUND to prevent the "Open Folder" icon is wrong.
_OSDDSPLYStringAttr.bShadow2 = OSDDSPLY_LD_PALETTE_ENTRY_GENERAL_BACKGROUND; //Use OSDDSPLY_LD_PALETTE_ENTRY_GENERAL_BACKGROUND to prevent the "Open Folder" icon is wrong.
switch (bRegion)
{
#ifndef NO_DVD_DISPLAY_UI //++CoCo2.37p
case OSDDSPLY_REGION_LD_TITLE:
if (bType == OSDDSPLY_UPDATE_INFO)
{
_OSDDSPLYStringAttr.bTextColor = OSDDSPLY_LD_REGION_TITLE_INFO_COLOR;
}
else
{
_OSDDSPLYStringAttr.bTextColor = OSDDSPLY_LD_REGION_TITLE_ITEM_COLOR;
}
_OSDDSPLYStringAttr.wX = OSDDSPLY_LD_REGION_TITLE_START_H;
break;
case OSDDSPLY_REGION_LD_CHAPTER:
if (bType == OSDDSPLY_UPDATE_INFO)
{
_OSDDSPLYStringAttr.bTextColor = OSDDSPLY_LD_REGION_CHAPTER_INFO_COLOR;
}
else
{
_OSDDSPLYStringAttr.bTextColor = OSDDSPLY_LD_REGION_CHAPTER_ITEM_COLOR;
}
_OSDDSPLYStringAttr.wX = OSDDSPLY_LD_REGION_CHAPTER_START_H;
break;
#endif //#ifndef NO_DVD_DISPLAY_UI //++CoCo2.37p
case OSDDSPLY_REGION_LD_TIME:
_OSDDSPLYStringAttr.bTextColor = OSDDSPLY_LD_REGION_TIME_INFO_COLOR;
_OSDDSPLYStringAttr.wX = OSDDSPLY_LD_REGION_TIME_START_H;
break;
case OSDDSPLY_REGION_LD_PROGRAM_STATUS:
_OSDDSPLYStringAttr.bTextColor = OSDDSPLY_LD_REGION_PROGRAM_STATUS_COLOR;
_OSDDSPLYStringAttr.wX = OSDDSPLY_LD_REGION_PROGRAM_STATUS_START_H;
break;
case OSDDSPLY_REGION_TIME_LD_TIME:
_OSDDSPLYStringAttr.bTextColor = OSDDSPLY_LD_REGION_TIME_INFO_COLOR;
//_OSDDSPLYStringAttr.wX = OSDDSPLY_LD_TIME_SHOW_TIME_START_H;
_OSDDSPLYStringAttr.wX = OSDDSPLY_LD_TIME_START_H + ((OSDDSPLY_LD_TIME_WIDTH - GDI_GetStringWidth_909(__pOSDUTLOutputString)) >> 1);
break;
case OSDDSPLY_REGION_LD_FILE_NAME:
if (bType == OSDDSPLY_UPDATE_INFO)
{
_OSDDSPLYStringAttr.bTextColor = OSDDSPLY_LD_REGION_FILE_NAME_INFO_COLOR;
}
else
{
//Draw the "folder" icon.
_OSDDSPLYStringAttr.bTextColor = OSDDSPLY_LD_REGION_FILE_NAME_ITEM_TEXT_COLOR;
}
_OSDDSPLYStringAttr.wX = OSDDSPLY_LD_REGION_FILE_NAME_START_H;
break;
case OSDDSPLY_REGION_LD_FILE_NUM:
if (bType == OSDDSPLY_UPDATE_INFO)
{
_OSDDSPLYStringAttr.bTextColor = OSDDSPLY_LD_REGION_FILE_NUM_INFO_COLOR;
}
else
{
//Draw the "file num" icon.
_OSDDSPLYStringAttr.bTextColor = OSDDSPLY_LD_REGION_FILE_NUM_ITEM_TEXT_COLOR;
}
_OSDDSPLYStringAttr.wX = OSDDSPLY_LD_REGION_FILE_NUM_START_H;
break;
case OSDDSPLY_REGION_LD_CDROM_TIME:
_OSDDSPLYStringAttr.bTextColor = OSDDSPLY_LD_REGION_CDROM_TIME_COLOR;
_OSDDSPLYStringAttr.wX = OSDDSPLY_LD_REGION_CDROM_TIME_START_H;
break;
case OSDDSPLY_REGION_LD_MENU:
_OSDDSPLYStringAttr.bTextColor = OSDDSPLY_LD_REGION_MENU_COLOR;
_OSDDSPLYStringAttr.wX = OSDDSPLY_LD_REGION_MENU_START_H;
break;
default:
break;
}
_OSDDSPLYStringAttr.wX += bPos;
_OSDDSPLYStringAttr.wY = OSDDSPLY_LD_START_V + ((OSDDSPLY_LD_HEIGHT - GDI_GetStringHeight_909(__pOSDUTLOutputString)) >> 1);
//GDI_DrawString_909(0, &_OSDDSPLYStringAttr, __pOSDUTLOutputString);
_OSDDSPLY_DrawString();
}
//***************************************************************************
// Function : _OSDDSPLY_LD_ShowItem
// Abstract : This function will show the item according to bMessage.
// Arguments : bMessage: The message.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDDSPLY_LD_ShowItem(BYTE bMessage)
{
_OSDDSPLY_OutputString(bMessage);
_OSDDSPLY_LD_DrawRegion(_OSDDSPLY_LD_GetRegion(bMessage), OSDDSPLY_UPDATE_ITEM, 0);
}
//***************************************************************************
// Function : _OSDDSPLY_LD_GetRegion
// Abstract : This function will get the message's region.
// Arguments : bMessage: The message.
// Return : The region that the message want to output.
// Side Effect : none.
// Notes :
//***************************************************************************
BYTE _OSDDSPLY_LD_GetRegion(BYTE bMessage)
{
switch (bMessage)
{
case MSG_TITLE:
case MSG_TRACK:
_bOSDDSPLYTemp = OSDDSPLY_REGION_LD_TITLE;
break;
case MSG_CHAPTER:
_bOSDDSPLYTemp = OSDDSPLY_REGION_LD_CHAPTER;
break;
case MSG_PROGRAM:
_bOSDDSPLYTemp = OSDDSPLY_REGION_LD_PROGRAM_STATUS;
break;
case MSG_FILE_NAME:
_bOSDDSPLYTemp = OSDDSPLY_REGION_LD_FILE_NAME;
break;
case MSG_FILE_NUM:
_bOSDDSPLYTemp = OSDDSPLY_REGION_LD_FILE_NUM;
break;
default:
break;
}
return _bOSDDSPLYTemp;
}
//***************************************************************************
// Function : _OSDDSPLY_OutputString
// Abstract : This function will output the string of the item according to bMessage.
// Arguments : bMessage: The message.
// Return : none.
// Side Effect : none.
// Notes :
//******************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -