📄 osdvp.c
字号:
GDI_CopyCodeString(aVPProgramSymbol);
else
__wGDIString[0] = 0;
break;
default:
break;
}
}
//***************************************************************************
// Function : _OSDVP_ShowAngle
// Abstract : Show the angle according to bType.
// Arguments : bType: OSDVP_UPDATE_ITEM: Show the angle's mark.
// : OSDVP_UPDATE_INFO: Show the info. of the angle.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDVP_ShowAngle(BYTE bType)
{
if (bType == OSDVP_UPDATE_ITEM)
{
GDI_CopyCodeString(aVPAngleMark);
}
else //show info.
{
if (__bAGL_Ns) //angle exist
{
__wGDIString[0] = 3;
__wGDIString[1] = aNumbers[OSDVP_REGION_ANGLE_NUMBER_INDEX][__bAGLN];
__wGDIString[2] = aVPSlash[OSDVP_REGION_ANGLE_NUMBER_INDEX];
__wGDIString[3] = aNumbers[OSDVP_REGION_ANGLE_NUMBER_INDEX][__bAGL_Ns];
}
else
{
GDI_CopyCodeString(aVPUnknownAngle);
}
}
}
//***************************************************************************
// Function : _OSDVP_ShowTVMode
// Abstract : Show the TV mode
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDVP_ShowTVMode(BYTE bType)
{
if (bType == OSDVP_UPDATE_ITEM)
{
GDI_CopyCodeString(aVPTVModesymbol);
}
else //show info.
{
switch (__SetupInfo.bTVSystem)
{
case SETUP_SCREEN_TV_SYSTEM_NTSC:
GDI_CopyCodeString(aVPNTSC);
break;
case SETUP_SCREEN_TV_SYSTEM_AUTO:
GDI_CopyCodeString(aVPAuto);
break;
case SETUP_SCREEN_TV_SYSTEM_PAL:
GDI_CopyCodeString(aVPPAL);
break;
case SETUP_SCREEN_TV_SYSTEM_PAL_M:
GDI_CopyCodeString(aVPPALM);
break;
case SETUP_SCREEN_TV_SYSTEM_PAL_N:
GDI_CopyCodeString(aVPPALN);
break;
}
}
}
//***************************************************************************
// Function : _OSDVP_ShowPSCAN
// Abstract : Show the info. of the PSCAN/INTERLACE.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDVP_ShowPSCAN(void)
{
if (__SetupInfo.bProgressiveScan == SETUP_PROGRESSIVE_SCAN_ON)
GDI_CopyCodeString(aVPpscan[_bOSDLang]);
else
GDI_CopyCodeString(aVPinterlace[_bOSDLang]);
}
//***************************************************************************
// Function : _OSDVP_ShowAudioOutput
// Abstract : This function will show the audio output according to SETUP's value.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDVP_ShowAudioOutput(void)
{
if (__bASTNs) // AST exist
{
_OSD_OutputAudioType();
_OSDVP_DrawRegion(OSDVP_REGION_AUDIO, OSDVP_UPDATE_INFO, 0);
_wOSDVPHPos = GDI_GetStringWidth();
//Draw distance between audio type and info.
GDI_CopyCodeString(aVPAudioTypeChDistance);
_wOSDVPHPos += GDI_GetStringWidth();
_OSDVP_DrawRegion(OSDVP_REGION_AUDIO, OSDVP_UPDATE_INFO, (BYTE)_wOSDVPHPos);
_OSD_OutputAudioChannel();
_OSDVP_DrawRegion(OSDVP_REGION_AUDIO, OSDVP_UPDATE_INFO, (BYTE)_wOSDVPHPos);
}
else
{
//clear region
_OSDVP_ClearRegion(OSDVP_REGION_AUDIO, 0);
}
}
//***************************************************************************
// Function : _OSDVP_ShowAST
// Abstract : This function will show the audio language according to bType.
// Arguments : bType: OSDVP_UPDATE_ITEM: Show the item of audio language.
// : OSDVP_UPDATE_INFO: Show the info. of the audio language.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDVP_ShowAST(BYTE bType)
{
if (bType == OSDVP_UPDATE_ITEM)
{
GDI_CopyCodeString(aVPLanguage[_bOSDLang]);
}
else
{
if (__bASTNs) // AST exist
{
_OSDVP_CodeToLanguage(__wA_LCD);
_OSDVP_DrawRegion(OSDVP_REGION_AST, OSDVP_UPDATE_INFO, (BYTE)_wOSDVPHPos);
_wOSDVPHPos += GDI_GetStringWidth();
_bOSDIndex = 1;
OSD_OutputNumFromIndex((WORD)(__bASTNO+1), OSDVP_REGION_AST_INFO_NUMBER_INDEX);
__wGDIString[_bOSDIndex++] = aVPSlash[OSDVP_REGION_AST_INFO_NUMBER_INDEX]; //to be modified to "/"
OSD_OutputNumFromIndex(__bASTNs, OSDVP_REGION_AST_INFO_NUMBER_INDEX);
}
else
GDI_CopyCodeString(aVPUnknownLanguage);
}
}
//***************************************************************************
// Function : _OSDVP_ShowSPST
// Abstract : This function will show the subtitle according to bType.
// Arguments : bType: OSDVP_UPDATE_ITEM: Show the item of the subtitle.
// : OSDVP_UPDATE_INFO: Show the info. of the subtitle.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDVP_ShowSPST(BYTE bType)
{
if (bType == OSDVP_UPDATE_ITEM)
{
GDI_CopyCodeString(aVPSubtitle[_bOSDLang]);
}
else
{
if (__bSPSTNs) // exist SP
{
// spst is on, ie. __bSP_Disp_OFF is 0 or 128 ~255
if ((__bSP_Disp_OFF==0) || (__bSP_Disp_OFF&0x80))
{
_OSDVP_CodeToLanguage(__wSP_LCD);
_OSDVP_DrawRegion(OSDVP_REGION_SUBTITLE, OSDVP_UPDATE_INFO, (BYTE)_wOSDVPHPos);
_wOSDVPHPos += GDI_GetStringWidth();
//_bOSDIndex = __wGDIString[0]+1;
_bOSDIndex = 1;
//__wGDIString[_bOSDIndex++] = CHAR_DASH_26;
OSD_OutputNumFromIndex((WORD)(__bSPSTNO+1), OSDVP_REGION_SUBTITLE_INFO_NUMBER_INDEX);
__wGDIString[_bOSDIndex++] = aVPSlash[OSDVP_REGION_SUBTITLE_INFO_NUMBER_INDEX]; //to be modified to "/"
OSD_OutputNumFromIndex(__bSPSTNs, OSDVP_REGION_SUBTITLE_INFO_NUMBER_INDEX);
}
else // spst is off
{
GDI_CopyCodeString(aVPOff[_bOSDLang]);
}
}
else // no SP exist
{
GDI_CopyCodeString(aVPUnknownSubtitle);
}
}
}
//***************************************************************************
// Function : _OSDVP_ShowTitle
// Abstract : This function will show the title according to bType.
// Arguments : bType: OSDVP_UPDATE_ITEM: Show the item of the title.
// : OSDVP_UPDATE_INFO: Show the info. of the title.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDVP_ShowTitle(BYTE bType)
{
if (__bDomain == VTSM_DOM) // Root Menu
{
GDI_CopyCodeString(aVPRootMenu[_bOSDLang]);
}
else if (__bDomain == VMGM_DOM) // Title Menu
{
GDI_CopyCodeString(aVPTitleMenu[_bOSDLang]);
}
else
{
if (bType == OSDVP_UPDATE_ITEM)
{
GDI_CopyCodeString(aVPTitle[_bOSDLang]);
}
else //show info.
{
_bOSDIndex = 1;
//_bDispTitle or __bTitle for current value?
OSD_OutputNumFromIndex(__bTitle, OSDVP_REGION_TITLE_INFO_NUMBER_INDEX);
__wGDIString[_bOSDIndex++] = aVPSlash[OSDVP_REGION_TITLE_INFO_NUMBER_INDEX]; //to be modified to "/"
OSD_OutputNumFromIndex(__bTitle_Ns, OSDVP_REGION_TITLE_INFO_NUMBER_INDEX);
}
}
}
//***************************************************************************
// Function : _OSDVP_ShowChapter
// Abstract : This function will show the chapter according to bType.
// Arguments : bType: OSDVP_UPDATE_ITEM: Show the item of the chapter.
// : OSDVP_UPDATE_INFO: Show the info. of the chapter.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDVP_ShowChapter(BYTE bType)
{
if (bType == OSDVP_UPDATE_ITEM)
{
GDI_CopyCodeString(aVPChapter[_bOSDLang]);
}
else //show info.
{
_bOSDIndex = 1;
//_wDispChapter or __wChapter?
OSD_OutputNumFromIndex(__wChapter, OSDVP_REGION_CHAPTER_INFO_NUMBER_INDEX);
__wGDIString[_bOSDIndex++] = aVPSlash[OSDVP_REGION_CHAPTER_INFO_NUMBER_INDEX]; //to be modified to "/"
//_wDispChapter_Ns_Title or __wChapter_Ns_Title?
OSD_OutputNumFromIndex(__wChapter_Ns_Title, OSDVP_REGION_CHAPTER_INFO_NUMBER_INDEX);
}
}
//***************************************************************************
// Function : _OSDVP_DrawRegion
// Abstract : This function will draw the specified region.
// Arguments : bRegion: The region you want draw.
// : bType: OSDVP_UPDATE_ITEM: Draw the item.
// : OSDVP_UPDATE_INFO: Draw the info. of the item.
// : bPos: The relative position of the region.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
// Brian1.21,
// limit color usage in Display mode
// for Item ==> use WHITE color
// for Info ==> use YELLOW color
// for Status icons ==> use ORANGE color
#ifndef SUPPORT_COLORFUL_DISPLAY_MODE
void _OSDVP_DrawRegion(BYTE bRegion, BYTE bType, BYTE bPos)
{
//Clear the region except time region.
if ((bRegion != OSDVP_REGION_TIME) && (bRegion != OSDVP_REGION_STATUS))
_OSDVP_ClearRegion(bRegion, bPos);
GDI_SetTextColor(TEXT_BG_COLOR, OSDVP_PALETTE_ENTRY_GENERAL_BACKGROUND);
_wOSDVPTemp = GDI_GetStringHeight();
// Brian1.21, assign Foreground color
switch (bRegion)
{
case OSDVP_REGION_STATUS:
case OSDVP_REGION_REPEAT:
case OSDVP_REGION_PROGRAM:
GDI_SetTextColor(TEXT_FG_COLOR, OSDVP_REGION_STATUS_COLOR); // Orange
break;
default:
if (bType == OSDVP_UPDATE_INFO)
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDVP_REGION_TITLE_INFO_COLOR); // Yellow
}
else
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDVP_REGION_TITLE_ITEM_COLOR); // White
}
}
switch (bRegion)
{
case OSDVP_REGION_TITLE:
GDI_DRAW_STRING((OSDVP_REGION_TITLE_START_H+bPos), OSDVP_REGION_TITLE_START_V+((OSDVP_REGION_TITLE_HEIGHT-_wOSDVPTemp)>>1));
break;
case OSDVP_REGION_CHAPTER:
GDI_DRAW_STRING((OSDVP_REGION_CHAPTER_START_H+bPos), OSDVP_REGION_CHAPTER_START_V+((OSDVP_REGION_CHAPTER_HEIGHT-_wOSDVPTemp)>>1));
break;
case OSDVP_REGION_SUBTITLE:
GDI_DRAW_STRING((OSDVP_REGION_SUBTITLE_START_H+bPos), OSDVP_REGION_SUBTITLE_START_V+((OSDVP_REGION_SUBTITLE_HEIGHT-_wOSDVPTemp)>>1));
break;
case OSDVP_REGION_AST:
GDI_DRAW_STRING((OSDVP_REGION_AST_START_H+bPos), OSDVP_REGION_AST_START_V+((OSDVP_REGION_AST_HEIGHT-_wOSDVPTemp)>>1));
break;
case OSDVP_REGION_TIME:
GDI_DRAW_STRING((OSDVP_REGION_TIME_START_H+bPos), OSDVP_REGION_TIME_START_V+((OSDVP_REGION_TIME_HEIGHT-_wOSDVPTemp)>>1));
break;
/*
case OSDVP_REGION_KEY:
GDI_DRAW_STRING((OSDVP_REGION_KEY_START_H+bPos), OSDVP_REGION_KEY_START_V+((OSDVP_REGION_KEY_HEIGHT-_wOSDVPTemp)>>1));
break;
*/
case OSDVP_REGION_AUDIO:
GDI_DRAW_STRING((OSDVP_REGION_AUDIO_START_H+bPos), OSDVP_REGION_AUDIO_START_V+((OSDVP_REGION_AUDIO_HEIGHT-_wOSDVPTemp)>>1));
break;
/*
case OSDVP_REGION_EQUALIZER:
GDI_DRAW_STRING(OSDVP_REGION_EQUALIZER_START_H, OSDVP_REGION_EQUALIZER_START_V+((OSDVP_REGION_EQUALIZER_HEIGHT-_wOSDVPTemp)>>1));
break;
*/
case OSDVP_REGION_TVMODE:
GDI_DRAW_STRING((OSDVP_REGION_TVMODE_START_H+bPos), OSDVP_REGION_TVMODE_START_V+((OSDVP_REGION_TVMODE_HEIGHT-_wOSDVPTemp)>>1));
break;
case OSDVP_REGION_TV:
GDI_DRAW_STRING(OSDVP_REGION_TV_START_H, OSDVP_REGION_TV_START_V+((OSDVP_REGION_TV_HEIGHT-_wOSDVPTemp)>>1));
break;
case OSDVP_REGION_ANGLE:
GDI_DRAW_STRING((OSDVP_REGION_ANGLE_START_H+bPos), OSDVP_REGION_ANGLE_START_V+((OSDVP_REGION_ANGLE_HEIGHT-_wOSDVPTemp)>>1));
break;
case OSDVP_REGION_STATUS:
GDI_DRAW_STRING(OSDVP_REGION_STATUS_START_H, OSDVP_REGION_STATUS_START_V+((OSDVP_REGION_STATUS_HEIGHT-_wOSDVPTemp)>>1));
break;
case OSDVP_REGION_REPEAT:
GDI_DRAW_STRING(OSDVP_REGION_REPEAT_START_H, OSDVP_REGION_REPEAT_START_V+((OSDVP_REGION_REPEAT_HEIGHT-_wOSDVPTemp)>>1));
break;
case OSDVP_REGION_PROGRAM:
GDI_DRAW_STRING(OSDVP_REGION_PROGRAM_START_H, OSDVP_REGION_PROGRAM_START_V+((OSDVP_REGION_PROGRAM_HEIGHT-_wOSDVPTemp)>>1));
break;
case OSDVP_REGION_MENU:
GDI_DRAW_STRING(OSDVP_REGION_MENU_START_H, OSDVP_REGION_MENU_START_V+((OSDVP_REGION_MENU_HEIGHT-_wOSDVPTemp)>>1));
break;
default:
break;
}
}
#else //#ifndef SUPPORT_COLORFUL_DISPLAY_MODE
void _OSDVP_DrawRegion(BYTE bRegion, BYTE bType, BYTE bPos)
{
//Clear the region except time region.
if ((bRegion != OSDVP_REGION_TIME) && (bRegion != OSDVP_REGION_STATUS))
_OSDVP_ClearRegion(bRegion, bPos);
GDI_SetTextColor(TEXT_BG_COLOR, OSDVP_PALETTE_ENTRY_GENERAL_BACKGROUND);
_wOSDVPTemp = GDI_GetStringHeight();
switch (bRegion)
{
case OSDVP_REGION_TITLE:
if (bType == OSDVP_UPDATE_INFO)
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDVP_REGION_TITLE_INFO_COLOR);
}
else
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDVP_REGION_TITLE_ITEM_COLOR);
}
GDI_DRAW_STRING((OSDVP_REGION_TITLE_START_H+bPos), OSDVP_REGION_TITLE_START_V+((OSDVP_REGION_TITLE_HEIGHT-_wOSDVPTemp)>>1));
break;
case OSDVP_REGION_CHAPTER:
if (bType == OSDVP_UPDATE_INFO)
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDVP_REGION_CHAPTER_INFO_COLOR);
}
else
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDVP_REGION_CHAPTER_ITEM_COLOR);
}
GDI_DRAW_STRING((OSDVP_REGION_CHAPTER_START_H+bPos), OSDVP_REGION_CHAPTER_START_V+((OSDVP_REGION_CHAPTER_HEIGHT-_wOSDVPTemp)>>1));
break;
case OSDVP_REGION_SUBTITLE:
if (bType == OSDVP_UPDATE_INFO)
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDVP_REGION_SUBTITLE_INFO_COLOR);
}
else
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDVP_REGION_SUBTITLE_ITEM_COLOR);
}
GDI_DRAW_STRING((OSDVP_REGION_SUBTITLE_START_H+bPos), OSDVP_REGION_SUBTITLE_START_V+((OSDVP_REGION_SUBTITLE_HEIGHT-_wOSDVPTemp)>>1));
break;
case OSDVP_REGION_AST:
if (bType == OSDVP_UPDATE_INFO)
{
GDI_SetTextColor(TEXT_FG_COLOR, OSDVP_REGION_AST_INFO_COLOR);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -