亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? osdld.c

?? 車載電子影音系統dvd播放系統原程序代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
#include "winav.h"
#include <string.h>
#include "cc.h"
#include "cdinfo.h"
#include "hal.h"
#include "chips.h"
#include "navigate.h"
#include "setup.h"
#include "fmanager.h"
#include "osd.h"
#include "gdi.h"
#include "OSDLD.h"
#include "thumb.h"
#include "linear.h"

//***************************************************************************
//Note: Don't translate the following strings.
//The following messages are just for char transformation.
WORD code aLDRemain[][2] = {{1, CHAR_DASH_26},
                           {1, CHAR_DASH}};
WORD code aLDTimeSpace[][2] = {{1, CHAR_SPACE_26},
                             {1, CHAR_SPACE}};
WORD code aLDSlash[][2] = {{1, CHAR_SLASH_26},
                           {1, CHAR_SLASH}};
WORD code aLDUnknownTitlChapter[][6] = {{5, CHAR_DASH_26, CHAR_DASH_26, CHAR_SLASH_26, CHAR_DASH_26, CHAR_DASH_26},
                                        {5, CHAR_DASH, CHAR_DASH, CHAR_SLASH, CHAR_DASH, CHAR_DASH}};
//***************************************************************************

extern BYTE    DATA    _bOSDLang;
extern STATUS  gcShowStatus;
extern WORD _wOSDFMMaxStringSpace; //CoCo.236, support UNICODE string.
extern BYTE __bJolietTitle; //CoCo.236, support UNICODE string.
extern BYTE _bSpecialMode; //CoCo2.37
#ifdef PRESTOP_BEFORE_SETUP_AND_PROGRAM	//xuli2.37
extern BYTE __bPreCountStop;
extern BYTE __bProgramStop;
#endif

extern void Service_420(void);
extern WORD _wOSDVPShowTime;
extern BYTE _bOSDVPShowAllTime;
//jyliu.temp
BYTE __bNextOSD=0;

#ifndef GDI_4_BIT_OSD
//***************************************************************************
//  Function    :   _OSDLD_InitializeGDI
//  Abstract    :   This function will initialize the palette and draw the background 
//              :   for one-line display.
//  Arguments   :   none.
//  Return		:   none.
//  Side Effect :
//  Notes       :   
//***************************************************************************
void _OSDLD_InitializeGDI(void)
{    
    //Set the palette entry.
    GDI_ChangePALEntry(OSDLD_PALETTE_ENTRY_GENERAL_BACKGROUND, OSDLD_PALETTE_COLOR_GENERAL_BACKGROUND, TRUE);
    GDI_ChangePALEntry(OSDLD_PALETTE_ENTRY_REGION_TITLE_ITEM, OSDLD_PALETTE_COLOR_REGION_TITLE_ITEM, FALSE);
    GDI_ChangePALEntry(OSDLD_PALETTE_ENTRY_REGION_TITLE_INFO, OSDLD_PALETTE_COLOR_REGION_TITLE_INFO, FALSE);
    GDI_ChangePALEntry(OSDLD_PALETTE_ENTRY_REGION_CHAPTER_ITEM, OSDLD_PALETTE_COLOR_REGION_CHAPTER_ITEM, FALSE);
    GDI_ChangePALEntry(OSDLD_PALETTE_ENTRY_REGION_CHAPTER_INFO, OSDLD_PALETTE_COLOR_REGION_CHAPTER_INFO, FALSE);
    GDI_ChangePALEntry(OSDLD_PALETTE_ENTRY_REGION_TIME, OSDLD_PALETTE_COLOR_REGION_TIME, FALSE);
    GDI_ChangePALEntry(OSDLD_PALETTE_ENTRY_REGION_FOLDER_ITEM, OSDLD_PALETTE_COLOR_REGION_FOLDER_ITEM, FALSE);
    GDI_ChangePALEntry(OSDLD_PALETTE_ENTRY_REGION_FOLDER_INFO, OSDLD_PALETTE_COLOR_REGION_FOLDER_INFO, FALSE);
}
#endif

//***************************************************************************
//  Function    :   _OSDLD_ClearRegion
//  Abstract    :   This function will clear the region for one-line display.
//  Arguments   :   bClearRegion: The region that you want to clear.
//              :   bPos: The relative position of the region that you want to clear.
//  Return		:   none.
//  Side Effect :   none.
//  Notes       :   
//***************************************************************************
void _OSDLD_ClearRegion(BYTE bClearRegion, BYTE bPos)
{
    switch (bClearRegion)
    {
    case OSDLD_REGION_ALL:
        SET_RECT(__GDIParm.u.RectParm.rect, OSDLD_START_H, OSDLD_START_V, (OSDLD_START_H+OSDLD_WIDTH), (OSDLD_START_V+OSDLD_HEIGHT-1));
        break;
    case OSDLD_REGION_TITLE:
        SET_RECT(__GDIParm.u.RectParm.rect, 
            (OSDLD_REGION_TITLE_START_H+bPos), 
            OSDLD_START_V, 
            (OSDLD_REGION_TITLE_START_H+OSDLD_REGION_TITLE_WIDTH),
            (OSDLD_START_V+OSDLD_HEIGHT-1));
        break;
    case OSDLD_REGION_CHAPTER:
        SET_RECT(__GDIParm.u.RectParm.rect, 
            (OSDLD_REGION_CHAPTER_START_H+bPos), 
            OSDLD_START_V, 
            (OSDLD_REGION_CHAPTER_START_H+OSDLD_REGION_CHAPTER_WIDTH),
            (OSDLD_START_V+OSDLD_HEIGHT-1));
        break;
    case OSDLD_REGION_TIME:
        SET_RECT(__GDIParm.u.RectParm.rect, 
            (OSDLD_REGION_TIME_START_H+bPos), 
            OSDLD_START_V, 
            (OSDLD_REGION_TIME_START_H+OSDLD_REGION_TIME_WIDTH),
            (OSDLD_START_V+OSDLD_HEIGHT-1));
        break;
    case OSDLD_REGION_PROGRAM: //CoCo1.07, add program icon 
        SET_RECT(__GDIParm.u.RectParm.rect, 
            (OSDLD_REGION_PROGRAM_START_H+bPos), 
            OSDLD_START_V, 
            (OSDLD_REGION_PROGRAM_START_H+OSDLD_REGION_PROGRAM_WIDTH),
            (OSDLD_START_V+OSDLD_HEIGHT-1));
        break;
    case OSDLD_REGION_FOLDER:
        SET_RECT(__GDIParm.u.RectParm.rect, 
            (OSDLD_REGION_FOLDER_START_H+bPos), 
            OSDLD_START_V, 
            (OSDLD_REGION_FOLDER_START_H+OSDLD_REGION_FOLDER_WIDTH),
            (OSDLD_START_V+OSDLD_HEIGHT-1));
        break;
    case OSDLD_REGION_TRACK:
        SET_RECT(__GDIParm.u.RectParm.rect, 
            (OSDLD_REGION_TRACK_START_H+bPos), 
            OSDLD_START_V, 
            (OSDLD_REGION_TRACK_START_H+OSDLD_REGION_TRACK_WIDTH),
            (OSDLD_START_V+OSDLD_HEIGHT-1));
        break;
        //CoCo2.37
    case OSDLD_REGION_TITLE_MENU:
        SET_RECT(__GDIParm.u.RectParm.rect, 
            (OSDLD_REGION_TITLE_MENU_START_H+bPos), 
            OSDLD_START_V, 
            (OSDLD_REGION_TITLE_MENU_START_H+OSDLD_REGION_TITLE_MENU_WIDTH),
            (OSDLD_START_V+OSDLD_HEIGHT-1));
        break;
    default:
        break;
    }
 
    __GDIParm.u.RectParm.bColor = OSDLD_PALETTE_ENTRY_GENERAL_BACKGROUND;
    
    GDI_FillRect((PPARM_RECT)&__GDIParm);
}


//***************************************************************************
//  Function    :   _OSDLD_ShowItem
//  Abstract    :   This function will show the item according to bMessage.
//  Arguments   :   bMessage: The message.
//  Return		:   none.
//  Side Effect :   none.
//  Notes       :   
//***************************************************************************
void _OSDLD_ShowItem(BYTE bMessage)
{
    _wOSDVPHPos = 0;

    _OSDLD_OutputString(bMessage);

    switch (bMessage)
    {
    case MSG_TITLE:
        _bOSDVPTemp = OSDLD_REGION_TITLE;
        break;
    case MSG_TRACK:
        _bOSDVPTemp = OSDLD_REGION_TRACK;
        break;
    case MSG_CHAPTER:
        _bOSDVPTemp = OSDLD_REGION_CHAPTER;
        break;
    case MSG_FOLDER:
        _bOSDVPTemp = OSDLD_REGION_FOLDER;
        break;
    default:
        break;
    }

    _OSDLD_DrawRegion(_bOSDVPTemp, OSDLD_UPDATE_ITEM, (BYTE)_wOSDVPHPos);
}

//***************************************************************************
//  Function    :   _OSDLD_ShowInfo
//  Abstract    :   This function will show the info. according to the message.
//  Arguments   :   bMessage: The message.
//  Return		:   none.
//  Side Effect :   none.
//  Notes       :   
//***************************************************************************
void _OSDLD_ShowInfo(BYTE bMessage)
{    
    if (_bSpecialMode)
    {
        if (!((__bDomain==VTSM_DOM) || (__bDomain==VMGM_DOM)))
        {
            if (bMessage == MSG_TITLE) //Recover "title" and "chapter" item.
            {
                _OSDLD_ShowItem(MSG_TITLE);
                _OSDLD_ShowItem(MSG_CHAPTER);
                _bSpecialMode = FALSE;
            }
        }
    }

    _OSDLD_GetInfoPos(bMessage);

    switch (bMessage)
    {
    case MSG_TITLE:
        //CoCo2.37
        if((__bDomain==VTSM_DOM) || (__bDomain==VMGM_DOM)) // Root Menu
        {
            _bSpecialMode = TRUE;
            _OSDLD_ShowTitleMenu();
        }
        else            
            _OSDLD_ShowTitleInfo();
        break;
    case MSG_CHAPTER:
        //CoCo2.37
        if ((__bDomain==VTSM_DOM) || (__bDomain==VMGM_DOM))
            return; //Don't show the chapter info. in title menu/DVD menu.

        _OSDLD_ShowChapterInfo();
        break;
    case MSG_TRACK:
        _OSDLD_ShowTrackInfo();
        break;
    case MSG_FOLDER:
        _OSDLD_ShowFolderInfo();
        break;
	case MSG_PROGRAM: //CoCo1.07, add program icon 
        if (__btPlayingProgram)
		{
			GDI_CopyCodeString(aLDProgramSymbol);
			_OSDLD_DrawRegion(OSDLD_REGION_PROGRAM, OSDLD_UPDATE_INFO, 0);
		}
        else
            _OSDLD_ClearRegion(OSDLD_REGION_PROGRAM, 0);
		break;
    default:
        break;
    }

}

//***************************************************************************
//  Function    :   OSDLD_Update
//  Abstract    :   Call this function when you want to update the one-line display.
//  Arguments   :   bMessage: the message.
//              :   wParam: The parameter of the message.
//  Return		:   TRUE: The message has been updated to the one-line display.
//              :   FALSE: The message is not supported.
//  Side Effect :   none.
//  Notes       :   
//***************************************************************************
BYTE OSDLD_Update(BYTE bMessage, WORD wParam)
{
    _bOSDMsg = bMessage;
    _wOSDInfo = wParam;

    GDI_LinkPseudoRegion(TRUE);

    _OSDLD_GetInfoPos(bMessage);

    switch (bMessage)
    {
    case MSG_INITIAL:
        _OSDLD_Initial();
        break;
#ifndef GDI_4_BIT_OSD
    case MSG_INITIAL_PALETTE:
        _OSDLD_InitializeGDI();
        break;
#endif
    case MSG_SHOWDISPLAY: //CoCo1.26, add new message for Display mode.
        if (__wDiscType == NO_DISC_IN_DRIVE)  
        {
            _OSDLD_ShowItem(MSG_TRACK);
            _wOSDVPHPos = GDI_GetStringWidth();
            GDI_CopyCodeString(aLDUnknownTrack);
            _OSDLD_DrawRegion(OSDLD_REGION_TRACK, OSDLD_UPDATE_INFO, (BYTE)_wOSDVPHPos);
            _OSDLD_ShowUnknownTime();
            GDI_LinkPseudoRegion(FALSE);
            return FALSE;
        }
        else
        {
            if (__wDiscType & BOOK_DVD)
            {
                _OSDLD_ShowItem(MSG_TITLE);
                _OSDLD_ShowItem(MSG_CHAPTER);
                
#ifndef PRESTOP_BEFORE_SETUP_AND_PROGRAM	//xuli2.37, after exit setup/program, do not show -:--:--
                if (__bCountStop != 0) //pre-stop or stop mode
#else
				if (((!__bSetupMode && (__bCountStop!=0))
					||(__bSetupMode && (__bPreCountStop!=0)))
					&& (__bProgramStop==0))
#endif
                {
                    _OSDLD_UpdateUnknownRegions();
                }
                else
                {
                    //update "Chapter" item
                    _OSDLD_ShowInfo(MSG_TITLE);
                    _OSDLD_ShowInfo(MSG_CHAPTER);

                    // brian0.91 
                    _bOSDMsg = __bShowTimeType;
                    _OSDLD_ShowTime();
                }
            }
            else
            {
                _OSDLD_ShowItem(MSG_TRACK);
                // brian
                // put Current Track info into _wOSDInfo
                _wOSDInfo = gcShowStatus.wCurrentTrack;
#ifndef PRESTOP_BEFORE_SETUP_AND_PROGRAM	//xuli2.37, after exit setup/program, do not show -:--:--
                if (__bCountStop != 0) //pre-stop or stop mode
#else
				if(((!__bSetupMode && (__bCountStop!=0))
					||(__bSetupMode && (__bPreCountStop!=0) ))
					&& (__bProgramStop==0))
#endif
                    _OSDLD_UpdateUnknownRegions();
                else
                {
                    _OSDLD_ShowInfo(MSG_TRACK);

                    // brian0.91 
                    //if (!(__wDiscType & CDROM_M1)) // JPEG don't show time
                    //LJY1.20, Gototime also not show, otherwise the incorrect time would be displayed due to gototime not yet finished.
//alex1.22a,20040204 combine gototime , search,bookmark
//Remvoe __btGoToTime , use bSearchMode  in OSDLD_Update
/**********************************************************************/
//                    if (!(__wDiscType & CDROM_M1) && (!__btGoToTime)) 
                    if (!(__wDiscType & CDROM_M1) && (!__bSearchMode)) 
/**********************************************************************/
                    {                       
                        _bOSDMsg = __bShowTimeType;
                        _OSDLD_ShowTime();
                    }
                }

                if (__wDiscType & CDROM_M1)
                {
                    _OSDLD_ShowItem(MSG_FOLDER);
                    _OSDLD_ShowInfo(MSG_FOLDER);                    
                }
            }

			_OSDLD_ShowInfo(MSG_PROGRAM);
        }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品女同一区二区三区| 精品亚洲国内自在自线福利| 欧美丰满少妇xxxxx高潮对白| a在线欧美一区| 99免费精品视频| 91麻豆精品国产91久久久 | 日本在线不卡视频一二三区| 日韩精品免费专区| 成人av在线网| 欧美理论在线播放| 国产精品久久久久三级| 怡红院av一区二区三区| 九九精品一区二区| 欧洲一区二区三区在线| 久久久激情视频| 免费视频最近日韩| 欧美优质美女网站| 一区二区在线免费| 欧美激情在线看| 欧美精品一区二区在线观看| 在线欧美一区二区| 99精品欧美一区| 国产一区二区成人久久免费影院| 伊人夜夜躁av伊人久久| 久久久99精品免费观看不卡| 欧美日韩aaa| 91在线免费播放| 欧美激情一区二区三区全黄| 美女免费视频一区| 欧美精品一二三四| 日韩电影在线观看网站| 欧美在线观看一区二区| 亚洲欧美精品午睡沙发| 色综合久久99| 亚洲高清免费一级二级三级| 欧美一区二区三区在线观看 | 欧美中文字幕亚洲一区二区va在线 | 久久久天堂av| 日本高清不卡一区| 国内国产精品久久| 亚洲私人黄色宅男| 日韩欧美在线观看一区二区三区| 免费高清在线视频一区·| 欧美国产乱子伦| 日韩欧美区一区二| 欧美在线观看一二区| 国产成人在线看| 青娱乐精品视频| 亚洲三级免费观看| 久久精品视频免费观看| 色综合久久综合网| 国产精品欧美一区二区三区| 亚洲第一在线综合网站| 99视频精品全部免费在线| 欧美一区二区三级| 亚洲国产日韩精品| 97se亚洲国产综合在线| 91麻豆精品国产自产在线 | 亚洲视频 欧洲视频| 精品久久人人做人人爽| 精品视频在线免费看| k8久久久一区二区三区 | 国产精品自拍毛片| 国产美女精品在线| 国产精品66部| 国产高清一区日本| 成人中文字幕电影| 96av麻豆蜜桃一区二区| 国产乱妇无码大片在线观看| 国产一区 二区| 成人免费不卡视频| 欧美三日本三级三级在线播放| 色94色欧美sute亚洲13| 欧美一区日本一区韩国一区| 91精品国产手机| 国产精品卡一卡二| 午夜精品久久久久久久久久久| 午夜亚洲国产au精品一区二区| 日本aⅴ精品一区二区三区| 国内精品第一页| 欧洲精品视频在线观看| 宅男噜噜噜66一区二区66| 久久久久9999亚洲精品| 91福利社在线观看| 欧美精品一区二区三区蜜桃| 天天影视色香欲综合网老头| 久久女同精品一区二区| 色噜噜夜夜夜综合网| 国内外成人在线视频| 国产日韩精品一区| 欧美视频精品在线观看| 国产盗摄一区二区| 亚洲国产一区二区三区| 精品国产乱码久久| 欧美日韩日日夜夜| 色婷婷激情综合| 国产馆精品极品| 精品福利一二区| 六月丁香综合在线视频| 色一情一伦一子一伦一区| 久久久综合激的五月天| 色欧美片视频在线观看| 色欧美88888久久久久久影院| 自拍偷拍国产精品| 国产精品乱码妇女bbbb| 日韩美女在线视频| 日韩小视频在线观看专区| 欧美综合在线视频| 欧美午夜精品免费| 在线观看亚洲专区| 在线观看视频一区| 色吊一区二区三区| 欧美日韩在线三区| 欧美精品一卡两卡| 亚洲精品免费在线观看| 成人黄色a**站在线观看| 国产精品精品国产色婷婷| 在线视频欧美精品| 蜜桃一区二区三区四区| 国产精品美女久久久久久久久久久| 99国产精品久久久| 久久国内精品自在自线400部| 欧美激情中文字幕一区二区| 欧美日韩国产色站一区二区三区| 久久激情五月激情| 婷婷国产在线综合| 国产精品美女久久久久aⅴ| 一本色道久久综合亚洲aⅴ蜜桃| 欧美性xxxxxxxx| 国产精品五月天| 午夜私人影院久久久久| 丁香婷婷深情五月亚洲| 欧美高清激情brazzers| 中文字幕综合网| 精品无人码麻豆乱码1区2区| 91蝌蚪porny| 久久久蜜桃精品| 一区二区三区在线免费视频| 久久精品国产秦先生| 91成人免费网站| 国产精品电影一区二区| 亚洲丝袜另类动漫二区| 综合分类小说区另类春色亚洲小说欧美 | 国产性做久久久久久| 国产精品女主播av| 久久久不卡网国产精品一区| 欧美日韩精品免费观看视频| 99精品久久久久久| 欧美图区在线视频| 欧美片在线播放| 精品精品国产高清a毛片牛牛 | 欧美性猛交xxxx乱大交退制版| 成人午夜在线视频| 国产馆精品极品| 日韩欧美黄色影院| 奇米影视一区二区三区| 欧美自拍偷拍一区| 香蕉乱码成人久久天堂爱免费| bt欧美亚洲午夜电影天堂| 国产精品不卡在线观看| 黄色精品一二区| 中文天堂在线一区| 大白屁股一区二区视频| 国产日韩欧美激情| 丰满少妇久久久久久久| 一区二区三区在线观看动漫| 99视频精品免费视频| 亚洲午夜电影在线观看| 制服丝袜亚洲播放| 亚洲成av人片在线观看无码| 欧美日韩高清在线| 激情综合色丁香一区二区| 中国色在线观看另类| 欧美精品丝袜中出| 国产乱码精品一区二区三区av| 亚洲欧洲在线观看av| 欧美日韩国产精品成人| 国产综合色在线| 亚洲欧美日韩一区二区| 日韩欧美亚洲另类制服综合在线| 国产精品 欧美精品| 视频一区在线视频| 自拍偷自拍亚洲精品播放| 欧美久久高跟鞋激| 97久久精品人人爽人人爽蜜臀| 丝袜脚交一区二区| 一区二区三区在线观看国产 | 亚洲欧洲韩国日本视频| 9191精品国产综合久久久久久| 久久国产乱子精品免费女| 一区在线中文字幕| 欧美二区三区的天堂| 国产精品一区2区| 国产精品丝袜黑色高跟| 色综合久久88色综合天天| 亚洲日本成人在线观看| 欧美久久久影院| 国产精品69久久久久水密桃| 午夜电影久久久| 国产喂奶挤奶一区二区三区|