?? osdld.c
字號:
{
case OSDLD_REGION_TITLE:
GDI_DRAW_STRING((OSDLD_REGION_TITLE_START_H+bPos), _wOSDVPTemp);
break;
case OSDLD_REGION_CHAPTER:
GDI_DRAW_STRING((OSDLD_REGION_CHAPTER_START_H+bPos), _wOSDVPTemp);
break;
case OSDLD_REGION_TIME:
GDI_DRAW_STRING((OSDLD_REGION_TIME_START_H+bPos), _wOSDVPTemp);
break;
case OSDLD_REGION_PROGRAM: //CoCo1.07, add program icon
GDI_DRAW_STRING((OSDLD_REGION_PROGRAM_START_H+bPos), _wOSDVPTemp);
break;
case OSDLD_REGION_FOLDER:
#ifdef SUPPORT_UNICODE //CoCo2.36, support UNICODE string.
GDI_DRAW_UNICODE_STRING((OSDLD_REGION_FOLDER_START_H+bPos), _wOSDVPTemp, _wOSDFMMaxStringSpace);
#else
GDI_DRAW_STRING((OSDLD_REGION_FOLDER_START_H+bPos), _wOSDVPTemp);
#endif
break;
case OSDLD_REGION_TRACK:
GDI_DRAW_STRING((OSDLD_REGION_TRACK_START_H+bPos), _wOSDVPTemp);
break;
//CoCo2.37
case OSDLD_REGION_TITLE_MENU:
GDI_DRAW_STRING((OSDLD_REGION_TITLE_MENU_START_H+bPos), _wOSDVPTemp);
break;
default:
break;
}
}
#else // #ifndef SUPPORT_COLORFUL_DISPLAY_MODE
void _OSDLD_DrawRegion(BYTE bRegion, BYTE bType, BYTE bPos)
{
//clear all region except time region.
if (bRegion != OSDLD_REGION_TIME)
_OSDLD_ClearRegion(bRegion, bPos);
GDI_SetTextColor(TEXT_BG_COLOR, OSDLD_PALETTE_ENTRY_GENERAL_BACKGROUND);
_wOSDVPTemp = OSDLD_START_V + ((OSDLD_HEIGHT - GDI_GetStringHeight()) >> 1);
switch (bRegion)
{
case OSDLD_REGION_TITLE:
if (bType == OSDLD_UPDATE_INFO)
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDLD_REGION_TITLE_INFO_COLOR);
}
else
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDLD_REGION_TITLE_ITEM_COLOR);
}
GDI_DRAW_STRING((OSDLD_REGION_TITLE_START_H+bPos), _wOSDVPTemp);
break;
case OSDLD_REGION_CHAPTER:
if (bType == OSDLD_UPDATE_INFO)
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDLD_REGION_CHAPTER_INFO_COLOR);
}
else
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDLD_REGION_CHAPTER_ITEM_COLOR);
}
GDI_DRAW_STRING((OSDLD_REGION_CHAPTER_START_H+bPos), _wOSDVPTemp);
break;
case OSDLD_REGION_TIME:
GDI_SetTextColor(TEXT_FG_COLOR, OSDLD_REGION_TIME_COLOR);
GDI_DRAW_STRING((OSDLD_REGION_TIME_START_H+bPos), _wOSDVPTemp);
break;
case OSDLD_REGION_PROGRAM: //CoCo1.07, add program icon
GDI_SetTextColor(TEXT_FG_COLOR, OSDLD_REGION_PROGRAM_COLOR);
GDI_DRAW_STRING((OSDLD_REGION_PROGRAM_START_H+bPos), _wOSDVPTemp);
break;
case OSDLD_REGION_FOLDER:
if (bType == OSDLD_UPDATE_INFO)
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDLD_REGION_FOLDER_INFO_COLOR);
}
else if (bType == OSDLD_UPDATE_ITEM)
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDLD_REGION_FOLDER_ITEM_COLOR);
}
#ifdef SUPPORT_UNICODE //CoCo2.36, support UNICODE string.
GDI_DRAW_UNICODE_STRING((OSDLD_REGION_FOLDER_START_H+bPos), _wOSDVPTemp, _wOSDFMMaxStringSpace);
#else
GDI_DRAW_STRING((OSDLD_REGION_FOLDER_START_H+bPos), _wOSDVPTemp);
#endif
break;
case OSDLD_REGION_TRACK:
if (bType == OSDLD_UPDATE_INFO)
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDLD_REGION_TRACK_INFO_COLOR);
}
else
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDLD_REGION_TRACK_ITEM_COLOR);
}
GDI_DRAW_STRING((OSDLD_REGION_TRACK_START_H+bPos), _wOSDVPTemp);
break;
//CoCo2.37
case OSDLD_REGION_TITLE_MENU:
GDI_SetTextColor(TEXT_FG_COLOR, OSDLD_REGION_TITLE_MENU_COLOR);
GDI_DRAW_STRING((SDLD_REGION_TITLE_MENU_START_H+bPos), _wOSDVPTemp);
break;
default:
break;
}
}
#endif // #ifndef SUPPORT_COLORFUL_DISPLAY_MODE
//***************************************************************************
// Function : _OSDLD_GetInfoPos
// Abstract : Call this function to get the position of the info.
// Arguments : bMessage: the message.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDLD_GetInfoPos(BYTE bMessage)
{
_wOSDVPHPos = 0;
//Get the width of the items.
switch (bMessage)
{
case MSG_TITLE:
GDI_CopyCodeString(aLDTitle[_bOSDLang]);
break;
case MSG_CHAPTER:
GDI_CopyCodeString(aLDChapter[_bOSDLang]);
break;
case MSG_TRACK:
GDI_CopyCodeString(aLDTrack[_bOSDLang]);
break;
case MSG_FOLDER:
GDI_CopyCodeString(aLDOpenFolderIcon);
_wOSDVPHPos += GDI_GetStringWidth();
GDI_CopyCodeString(aLDFolderItem);
break;
default:
_wOSDVPHPos = 0;
return;
}
_wOSDVPHPos += GDI_GetStringWidth();
}
//***************************************************************************
// Function : _OSDLD_ShowTime
// Abstract : This function will show the time.
// Arguments : bMessage: the message.
// : wTime: The time you want to display.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDLD_ShowTime(void)
{
_wOSDVPHPos = 0;
if (gcShowStatus.bStill)
{
_OSDLD_ShowUnknownTime();
return;
}
switch (_bOSDMsg)
{
case MSG_REMAIN_ABSTIME:
case MSG_REMAIN_RELTIME:
case MSG_REMAIN_TITLE_TIME:
case MSG_REMAIN_CHAPTER_TIME:
GDI_CopyCodeString(aLDRemain[OSDLD_REGION_TIME_NUMBER_INDEX]);
break;
case MSG_ABSTIME:
case MSG_RELTIME:
case MSG_TITLE_TIME:
case MSG_CHAPTER_TIME:
default:
GDI_CopyCodeString(aLDTimeSpace[OSDLD_REGION_TIME_NUMBER_INDEX]);
break;
}
_OSDLD_DrawRegion(OSDLD_REGION_TIME, OSDLD_UPDATE_INFO, (BYTE)_wOSDVPHPos);
_wOSDVPHPos += GDI_GetStringWidth();
#ifdef SUPPORT_SHOW_TIME_ONCE
OSD_ShowHourMinSec(OSDLD_REGION_TIME_NUMBER_INDEX);
_OSDLD_DrawRegion(OSDLD_REGION_TIME, OSDLD_UPDATE_INFO, (BYTE)_wOSDVPHPos);
#else
if (_wOSDVPShowTime != gcShowStatus.wCurrentTime)
{
if (_wOSDVPShowTime > gcShowStatus.wCurrentTime)
{
if ((_wOSDVPShowTime - gcShowStatus.wCurrentTime) > 1)
_bOSDVPShowAllTime = TRUE;
}
else if (gcShowStatus.wCurrentTime > _wOSDVPShowTime)
{
if ((gcShowStatus.wCurrentTime - _wOSDVPShowTime) > 1)
_bOSDVPShowAllTime = TRUE;
}
//jyliu.temp
if(__bNextOSD)
{
__bNextOSD = FALSE;
_bOSDVPShowAllTime = TRUE;
}
_bOSDIndex = 1;
//show "hour"
_OSD_ShowTimeNum((BYTE)(HIBYTE(gcShowStatus.wCurrentTime)/60), OSDLD_REGION_TIME_NUMBER_INDEX);
//show ":"
__wGDIString[_bOSDIndex] = aMouhow[OSDLD_REGION_TIME_NUMBER_INDEX];
__wGDIString[0] = _bOSDIndex;
if (_bOSDVPShowAllTime || ((HIBYTE(gcShowStatus.wCurrentTime)/60) != (HIBYTE(_wOSDVPShowTime)/60)))
{
_OSDLD_DrawRegion(OSDLD_REGION_TIME, OSDLD_UPDATE_INFO, (BYTE)_wOSDVPHPos);
Service_420();
}
_wOSDVPHPos += GDI_GetStringWidth();
//show "Minute"
_bOSDIndex = 1;
_OSD_ShowTimeNum((BYTE)(HIBYTE(gcShowStatus.wCurrentTime)%60), OSDLD_REGION_TIME_NUMBER_INDEX);
//show ":"
__wGDIString[_bOSDIndex] = aMouhow[OSDLD_REGION_TIME_NUMBER_INDEX];
__wGDIString[0] = _bOSDIndex;
if (_bOSDVPShowAllTime || ((HIBYTE(gcShowStatus.wCurrentTime)%60) != (HIBYTE(_wOSDVPShowTime)%60)))
{
_OSDLD_DrawRegion(OSDLD_REGION_TIME, OSDLD_UPDATE_INFO, (BYTE)_wOSDVPHPos);
Service_420();
}
_wOSDVPHPos += GDI_GetStringWidth();
//show "second"
_bOSDIndex = 1;
if (_bOSDVPShowAllTime || ((LOBYTE(gcShowStatus.wCurrentTime)) != (LOBYTE(_wOSDVPShowTime))))
{
_OSD_ShowTimeNum((BYTE)(LOBYTE(gcShowStatus.wCurrentTime)), OSDLD_REGION_TIME_NUMBER_INDEX);
_OSDLD_DrawRegion(OSDLD_REGION_TIME, OSDLD_UPDATE_INFO, (BYTE)_wOSDVPHPos);
}
}
#endif
_wOSDVPShowTime = gcShowStatus.wCurrentTime;
_bOSDVPShowAllTime = FALSE;
}
//***************************************************************************
// Function : _OSDLD_Initial
// Abstract : This function will do initialization for one-line display.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDLD_Initial(void)
{
_bSpecialMode = FALSE;
_wOSDVPShowTime = 0xFFFF;
_bOSDVPShowAllTime = TRUE;
GDI_SetMixRatio(OSDLD_MIX_RATIO_BACKGROUND); //The mix ration just effects the background
GDI_SetCurrentRegion(0); //use region 0
_OSDLD_ClearRegion(OSDLD_REGION_ALL, 0);
GDI_ActivateRegion(); //open GDI
//No shadow
GDI_SetTextColor(TEXT_SHADOW_COLOR_1, OSDLD_PALETTE_ENTRY_GENERAL_BACKGROUND);
GDI_SetTextColor(TEXT_SHADOW_COLOR_2, OSDLD_PALETTE_ENTRY_GENERAL_BACKGROUND);
}
//***************************************************************************
// Function : _OSDLD_ShowUnknownTrack
// Abstract : This function will show unknown track.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDLD_ShowUnknownTrack(void)
{
_OSDLD_GetInfoPos(MSG_TRACK);
#ifdef SHOW_UNKNOWN_STATE_WHEN_STOP
GDI_CopyCodeString(aLDUnknownTitlChapter[OSDLD_REGION_TRACK_NUMBER_INDEX]);
#else
GDI_CopyCodeString(aLDStopTrack);
_bOSDIndex = __wGDIString[0]+1;
__wGDIString[_bOSDIndex++] = aLDSlash[OSDLD_REGION_TRACK_NUMBER_INDEX][1]; //to be modified to "/"
if (gcShowStatus.wTotalTracks != 0)
OSD_OutputNumFromIndex(gcShowStatus.wTotalTracks, OSDLD_REGION_TRACK_NUMBER_INDEX);
else
GDI_CopyCodeString(aLDUnknownTrack);
#endif
_OSDLD_DrawRegion(OSDLD_REGION_TRACK, OSDLD_UPDATE_INFO, (BYTE)_wOSDVPHPos);
}
//***************************************************************************
// Function : _OSDLD_ShowUnknownTime
// Abstract : This function will show unknown time.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDLD_ShowUnknownTime(void)
{
_bOSDVPShowAllTime = TRUE;
_wOSDVPShowTime = 0xFFFF;
GDI_CopyCodeString(aLDUnknownTime);
_OSDLD_DrawRegion(OSDLD_REGION_TIME, OSDLD_UPDATE_INFO, 0);
}
//***************************************************************************
// Function : _OSDLD_ShowUnknownTitle
// Abstract : This function will show unknown title.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDLD_ShowUnknownTitle(void)
{
_OSDLD_GetInfoPos(MSG_TITLE);
GDI_CopyCodeString(aLDUnknownTitlChapter[OSDLD_REGION_TITLE_NUMBER_INDEX]);
_OSDLD_DrawRegion(OSDLD_REGION_TITLE, OSDLD_UPDATE_INFO, (BYTE)_wOSDVPHPos);
}
//***************************************************************************
// Function : _OSDLD_ShowUnknownChapter
// Abstract : This function will show unknown chapter.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDLD_ShowUnknownChapter(void)
{
_OSDLD_GetInfoPos(MSG_CHAPTER);
GDI_CopyCodeString(aLDUnknownTitlChapter[OSDLD_REGION_CHAPTER_NUMBER_INDEX]);
_OSDLD_DrawRegion(OSDLD_REGION_CHAPTER, OSDLD_UPDATE_INFO, (BYTE)_wOSDVPHPos);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -