⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 osdnd.c

📁 车载电子影音系统dvd播放系统原程序代码
💻 C
📖 第 1 页 / 共 5 页
字号:
    __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 + -