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

📄 osdvp.c

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