📄 osdnd.c
字号:
__GDIParm.u.VolumeBar.wVolume = (WORD)_wOSDInfo*100/OSDND_DISPLAY_AUDIO_KEY_BAR_RANGE; // percent
SET_RECT(__GDIParm.u.VolumeBar.rect, _wOSDVPHPos, (__wOSDBottomVPos+(OSDND_FONT_HEIGHT-OSDND_DISPLAY_AUDIO_KEY_BAR_HEIGHT)/2), (_wOSDVPHPos+OSDND_DISPLAY_AUDIO_KEY_BAR_WIDTH), (__wOSDBottomVPos+OSDND_DISPLAY_AUDIO_KEY_BAR_HEIGHT));
GDI_DrawVolumeBar((PPARM_VOLUME_BAR)&__GDIParm);
_wOSDVPHPos +=OSDND_DISPLAY_AUDIO_KEY_BAR_WIDTH+OSDND_DISTANCE_FONT_AUDIO_KEY_BAR;
//show "+" or "-"
if (_wOSDInfo > NORMALKEY_OFFSET)
{
GDI_CopyCodeString(aNDPlus);
_bOSDVPTemp = _wOSDInfo - NORMALKEY_OFFSET;
}
else if (_wOSDInfo < NORMALKEY_OFFSET)
{
GDI_CopyCodeString(aNDDash);
_bOSDVPTemp = NORMALKEY_OFFSET - _wOSDInfo;
}
else
{
__wGDIString[0] = 1;
__wGDIString[1] = aSpace[OSDND_FONT_INDEX];
_bOSDVPTemp = 0;
}
_OSDND_OutputBottomString();
//show value
OSD_OutputNum(_bOSDVPTemp, OSDND_FONT_INDEX);
}
//***************************************************************************
// Function : _OSDND_ShowEcho
// Abstract : Call this function to show Echo bar.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDND_ShowEcho(void)
{
GDI_CopyCodeString(aNDEcho[_bOSDLang]);
_OSDND_OutputBottomString();
//show bolume bar
if (!(_bVolDisplayed & ECHO_DISPLAYED)) // brian0.95
GDI_FILL_RECT(_wOSDVPHPos, __wOSDBottomVPos, (_wOSDVPHPos+OSDND_DISPLAY_ECHO_BAR_WIDTH+OSDND_DISTANCE_FONT_ECHO_BAR*2), (__wOSDBottomVPos+OSDND_FONT_HEIGHT-1), __bOSDBg);
_wOSDVPHPos += OSDND_DISTANCE_FONT_ECHO_BAR;
_OSDND_SetBarAttribute();
__GDIParm.u.VolumeBar.wVolume = (WORD)_wOSDInfo*100/OSDND_DISPLAY_ECHO_BAR_RANGE; // percent
SET_RECT(__GDIParm.u.VolumeBar.rect, _wOSDVPHPos, (__wOSDBottomVPos+(OSDND_FONT_HEIGHT-OSDND_DISPLAY_ECHO_BAR_HEIGHT)/2), (_wOSDVPHPos+OSDND_DISPLAY_ECHO_BAR_WIDTH), (__wOSDBottomVPos+OSDND_DISPLAY_ECHO_BAR_HEIGHT));
GDI_DrawVolumeBar((PPARM_VOLUME_BAR)&__GDIParm);
OSD_OutputNum(_wOSDInfo, OSDND_FONT_INDEX);
_wOSDVPHPos += OSDND_DISPLAY_ECHO_BAR_WIDTH+OSDND_DISTANCE_FONT_ECHO_BAR;
}
//***************************************************************************
// Function : _OSDND_Surround
// Abstract : Call this function to show surround info.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDND_ShowSurround(void)
{
//switch (gcShowStatus.bSurround)
switch (__bSurround) //CoCo1.21
{
case CHIPS_SURROUND_NONE:
GDI_CopyCodeString(aNDNoSurround[_bOSDLang]);
break;
case CHIPS_SURROUND_LIVE:
GDI_CopyCodeString(aNDLiveSurround[_bOSDLang]);
break;
case CHIPS_SURROUND_THEATER:
GDI_CopyCodeString(aNDTheaterSurround[_bOSDLang]);
break;
case CHIPS_SURROUND_STEREO:
GDI_CopyCodeString(aNDStereoSurround[_bOSDLang]);
break;
case CHIPS_SURROUND_MOVIE:
GDI_CopyCodeString(aNDMovieSurround[_bOSDLang]);
break;
case CHIPS_SURROUND_KARAOKE:
GDI_CopyCodeString(aNDKaraSurround[_bOSDLang]);
break;
}
}
//***************************************************************************
// Function : _OSDND_Show3D
// Abstract : Call this function to show the 3D info.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDND_Show3D(void)
{
#ifdef SUPPORT_3D_FEATURE
switch (_wOSDInfo)
{
case 1:
GDI_CopyCodeString(aND3D1);
break;
case 2:
GDI_CopyCodeString(aND3D2);
break;
case 3:
GDI_CopyCodeString(aND3D3);
break;
case 4:
GDI_CopyCodeString(aND3D4);
break;
case 5:
GDI_CopyCodeString(aND3D5);
break;
case 6:
GDI_CopyCodeString(aND3D6);
break;
}
#endif
}
//CoCo1.23
//***************************************************************************
// Function : _OSDND_ShowAudioOutput
// Abstract : Show auio output.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDND_ShowAudioOutput(void)
{
switch (__SetupInfo.bAudioAnalogOut)
{
case SETUP_AUDIO_ANALOG_OUT_51CH:
GDI_CopyCodeString(a51Channel[OSDND_FONT_INDEX]);
break;
case SETUP_AUDIO_ANALOG_OUT_OFF:
GDI_CopyCodeString(aNDAnalogOff);
break;
case SETUP_AUDIO_ANALOG_OUT_2CH:
default:
GDI_CopyCodeString(a2Channel[OSDND_FONT_INDEX]);
break;
}
}
//***************************************************************************
// Function : _OSDND_ShowAngle
// Abstract : Call this function to show the angle info.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDND_ShowAngle(void)
{
if (__bAGL_Ns)
{
GDI_CopyCodeString(aNDAngle);
_OSDND_OutputBottomString();
_bOSDIndex = 1;
OSD_OutputNumFromIndex(__bAGLN, OSDND_FONT_INDEX);
__wGDIString[_bOSDIndex++] = aNDSlash[1];
OSD_OutputNumFromIndex(__bAGL_Ns, OSDND_FONT_INDEX);
}
}
#ifndef GDI_4_BIT_OSD
//***************************************************************************
// Function : _OSDND_InitializeGDI
// Abstract : This function will initialize the palettes and draw the background of
// : the normal display.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDND_InitializeGDI(void)
{
//Set the palette entry.
GDI_ChangePALEntry(OSDND_PALETTE_ENTRY_BACKGROUND, OSDND_PALETTE_COLOR_BACKGROUND, TRUE);
GDI_ChangePALEntry(OSDND_PALETTE_ENTRY_UPPER_RIGHT_STRING, OSDND_PALETTE_COLOR_UPPER_RIGHT_STRING, FALSE);
GDI_ChangePALEntry(OSDND_PALETTE_ENTRY_BOTTOM_STRING, OSDND_PALETTE_COLOR_BOTTOM_STRING, FALSE);
GDI_ChangePALEntry(OSDND_PALETTE_ENTRY_BAR_FG, OSDND_PALETTE_COLOR_BAR_FG, FALSE);
}
#endif
//***************************************************************************
// Function : _OSDND_ShowJPEGEffect
// Abstract : This function will show the effect of slide show for JPEG.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDND_ShowJPEGEffect(void)
{
switch (_wOSDInfo)
{
case HAL_JPEG_EFFECT_NO_EFFECT:
_OSDND_OutputTextEx(aNDJPEGEffectNone[_bOSDLang]);
break;
#ifdef SUPPORT_JPEG_EFFECT_NAME
case HAL_JPEG_EFFECT_COVER_UP:
_OSDND_OutputTextEx(aNDJPEGEffectCoverUp[_bOSDLang]);
break;
case HAL_JPEG_EFFECT_COVER_DOWN:
_OSDND_OutputTextEx(aNDJPEGEffectCoverDown[_bOSDLang]);
break;
case HAL_JPEG_EFFECT_UNCOVER_UP:
_OSDND_OutputTextEx(aNDJPEGEffectUncoverUp[_bOSDLang]);
break;
case HAL_JPEG_EFFECT_UNCOVER_DOWN:
_OSDND_OutputTextEx(aNDJPEGEffectUncoverDown[_bOSDLang]);
break;
case HAL_JPEG_EFFECT_SPLIT_HORIZONTAL_IN:
_OSDND_OutputTextEx(aNDJPEGEffectSplitHorizontalIn[_bOSDLang]);
break;
case HAL_JPEG_EFFECT_SPLIT_HORIZONTAL_OUT:
_OSDND_OutputTextEx(aNDJPEGEffectSplitHorizontalOut[_bOSDLang]);
break;
case HAL_JPEG_EFFECT_WIPE_UP:
_OSDND_OutputTextEx(aNDJPEGEffectWipeUp[_bOSDLang]);
break;
case HAL_JPEG_EFFECT_WIPE_DOWN:
_OSDND_OutputTextEx(aNDJPEGEffectWipeDown[_bOSDLang]);
break;
case HAL_JPEG_EFFECT_BLINDS_HORIZONTAL_UP:
_OSDND_OutputTextEx(aNDJPEGEffectBlindsHorizontalUp[_bOSDLang]);
break;
case HAL_JPEG_EFFECT_BLINDS_HORIZONTAL_DOWN:
_OSDND_OutputTextEx(aNDJPEGEffectBlindsHorizontalDown[_bOSDLang]);
break;
case HAL_JPEG_EFFECT_FADE_THROUGH_BLACK:
_OSDND_OutputTextEx(aNDJPEGEffectFadeThroughBlack[_bOSDLang]);
break;
default:
break;
#else
default:
GDI_CopyCodeString(aNDJPEGEffect);
_bOSDIndex = __wGDIString[0] + 1;
OSD_OutputNumFromIndex(_wOSDInfo-1, OSDND_FONT_INDEX);
_OSDND_OutputUpString();
break;
#endif //SUPPORT_JPEG_EFFECT_NAME
}
}
//***************************************************************************
// Function : _OSDND_DefaultState
// Abstract : This function will set the default value about forground,
// : background, and vertical starting position for upper right
// : message.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDND_DefaultState(void)
{
__bOSDFg = OSDND_PALETTE_ENTRY_UPPER_RIGHT_STRING;
__bOSDBg = OSDND_PALETTE_ENTRY_BACKGROUND;
__wOSDUpVPos = OSDND_DISPLAY_UPPER_RIGHT_POS_V;
__wOSDUpHPos = OSDND_DISPLAY_UPPER_RIGHT_POS_H;
__wOSDBottomVPos = OSDND_DISPLAY_BOTTOM_START_V;
__wOSDBottomHPos = OSDND_DISPLAY_BOTTOM_START_H;
GDI_SetMixRatio(OSDND_MIX_RATIO_BACKGROUND); //The mix ration just effects the background
}
//***************************************************************************
// Function : _OSDND_OutputUpString
// Abstract : This function will update the horizontal position to output the string.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDND_OutputUpString(void)
{
_wOSDVPHPos -= GDI_GetStringWidth();
GDI_DRAW_STRING(_wOSDVPHPos, __wOSDUpVPos);
}
//***************************************************************************
// Function : _OSDND_OutputBottomString
// Abstract : This function will output the string and then update the
// : horizontal position for next output.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDND_OutputBottomString(void)
{
GDI_DRAW_STRING(_wOSDVPHPos, __wOSDBottomVPos);
_wOSDVPHPos += GDI_GetStringWidth();
}
//***************************************************************************
// Function : _OSDND_Show10Plus
// Abstract : This function will show the info. for 10+.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDND_Show10Plus(void)
{
GDI_CopyCodeString(aNDDash);
_OSDND_OutputUpString();
OSD_OutputNum((WORD)(_wOSDInfo/10), OSDND_FONT_INDEX);
}
//***************************************************************************
// Function : _OSDND_OutputErrorDisc
// Abstract : This function will Output error disc info.
// Arguments : none.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDND_OutputErrorDisc(void)
{
if (__bDiscInfo & DISCINFO_ENCRYPT)
{
_OSDND_OutputTextEx(aNDEncrypt[_bOSDLang]);
}
else if(__bDiscInfo & DISCINFO_REGION_ERROR)
{
_OSDND_OutputTextEx(aNDErrRegionCode[_bOSDLang]);
}
else if(__bDiscInfo & DISCINFO_UNRECOGNIZE)
{
_OSDND_OutputTextEx(aNDWrongDisc[_bOSDLang]);
}
/* --CoCo2.31, no one set DISCINFO_DAMAGED
else if(__bDiscInfo & DISCINFO_DAMAGED)
{
_OSDND_OutputTextEx(aNDDamageDisc[_bOSDLang]);
}
*/
else
{
_OSDND_OutputTextEx(aNDNoDisc[_bOSDLang]);
}
}
//***************************************************************************
// Function : _OSDND_CodeToLanguage
// Abstract : This function will output the country according to wCode.
// Arguments : wCode: The code that you want to transform.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _OSDND_CodeToLanguage(WORD wCode)
{
switch(wCode)
{
case 0x6a61: // Japanese, 'ja'
GDI_CopyCodeString(aNDLanguageJapanese[_bOSDLang]);
break;
case 0x656e: // English, 'en'
GDI_CopyCodeString(aNDLanguageEnglish[_bOSDLang]);
break;
case 0x6672: // French, 'fr'
GDI_CopyCodeString(aNDLanguageFrench[_bOSDLang]);
break;
case 0x6465: // German, 'de'
GDI_CopyCodeString(aNDLanguageGerman[_bOSDLang]);
break;
case 0x7275: // Russian, 'ru'
GDI_CopyCodeString(aNDLanguageRussian[_bOSDLang]);
break;
case 0x7a68: // Chinese, 'zh'
GDI_CopyCodeString(aNDLanguageChinese[_bOSDLang]);
break;
case 0x6b6f: // Korean, 'ko'
GDI_CopyCodeString(aNDLanguageKorean[_bOSDLang]);
break;
case 0x6869: // Hindi, 'hi'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -