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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? osdld.c

?? 車載電子影音系統(tǒng)dvd播放系統(tǒng)原程序代碼
?? 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);
        }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91丝袜在线播放九色| 亚洲不卡av一区二区三区| 国产一区不卡视频| 精品日本一线二线三线不卡| 久久精品国产一区二区三 | 亚洲一区二区欧美激情| 欧美亚洲高清一区二区三区不卡| 亚洲国产日韩a在线播放性色| 欧美三级一区二区| 轻轻草成人在线| 久久精品人人爽人人爽| 制服丝袜中文字幕亚洲| 秋霞午夜av一区二区三区| 久久众筹精品私拍模特| 不卡一区二区三区四区| 亚洲一区二区三区自拍| 欧美mv日韩mv亚洲| aa级大片欧美| 日本欧美肥老太交大片| 久久九九久精品国产免费直播| av中文字幕亚洲| 视频在线观看91| 中文字幕欧美区| 欧美日韩国产乱码电影| 国产成人福利片| 五月婷婷综合在线| 国产日韩视频一区二区三区| 91美女视频网站| 毛片一区二区三区| 国产精品第一页第二页第三页| 欧美手机在线视频| 懂色一区二区三区免费观看 | 亚洲一区二区在线免费观看视频| 69堂精品视频| 91丨porny丨首页| 麻豆免费看一区二区三区| ...xxx性欧美| 精品成人在线观看| 在线中文字幕不卡| 国产成人免费在线| 亚洲成av人片一区二区梦乃| 久久久久国产精品麻豆ai换脸| 在线观看91视频| 国产成人精品网址| 爽爽淫人综合网网站| 中文字幕亚洲一区二区av在线| 日韩精品一区二区三区在线| 91福利社在线观看| 国产成人午夜视频| 欧美a一区二区| 一二三区精品视频| 综合欧美一区二区三区| 久久麻豆一区二区| 91麻豆精品久久久久蜜臀| 日本道色综合久久| 波多野结衣一区二区三区 | 亚洲国产一二三| 亚洲欧洲日产国产综合网| 精品国产乱码久久久久久牛牛| 欧美日韩中文一区| 91美女福利视频| 成人黄色电影在线| 国产精品一线二线三线精华| 蜜桃视频在线观看一区二区| 午夜私人影院久久久久| 亚洲精选免费视频| 亚洲视频在线一区| 国产精品成人网| 国产精品无遮挡| 久久精品夜夜夜夜久久| 日韩你懂的电影在线观看| 欧美日韩国产综合一区二区| 色综合天天综合| 91亚洲男人天堂| 99精品桃花视频在线观看| 成人丝袜18视频在线观看| 国产福利电影一区二区三区| 国产精品亚洲综合一区在线观看| 激情亚洲综合在线| 国产成人午夜精品5599| 国产成人小视频| 成人av集中营| 91免费精品国自产拍在线不卡| 国产寡妇亲子伦一区二区| 国产剧情av麻豆香蕉精品| 国产九九视频一区二区三区| 九九精品一区二区| 精品系列免费在线观看| 欧美视频日韩视频| 欧美少妇bbb| 91精品国产综合久久福利| 精品日韩欧美在线| 国产性色一区二区| 国产精品久久久久7777按摩| 1000精品久久久久久久久| 亚洲一区二区在线免费观看视频| 午夜精品久久久久久久| 久久机这里只有精品| 精品无人区卡一卡二卡三乱码免费卡 | 国产精品一区二区免费不卡| 国产成人精品三级| 色欲综合视频天天天| 欧美日韩成人在线一区| 精品免费日韩av| 国产精品久久久久久户外露出| 17c精品麻豆一区二区免费| 亚洲电影你懂得| 捆绑调教美女网站视频一区| 成人白浆超碰人人人人| 欧美日韩国产高清一区二区三区 | 99久久久国产精品| 欧美图片一区二区三区| 日韩精品资源二区在线| 中文字幕永久在线不卡| 五月婷婷综合网| 成人夜色视频网站在线观看| 欧美亚洲国产一区在线观看网站| 日韩女同互慰一区二区| 亚洲欧美另类综合偷拍| 久久国产尿小便嘘嘘尿| 91麻豆成人久久精品二区三区| 欧美放荡的少妇| 欧美国产1区2区| 日日摸夜夜添夜夜添亚洲女人| 国产成人亚洲综合色影视| 欧美午夜不卡视频| 欧美国产欧美综合| 日韩va欧美va亚洲va久久| 成人动漫中文字幕| 欧美一区二区三区播放老司机| 国产精品久久三| 麻豆精品国产传媒mv男同| av激情成人网| 久久久99免费| 日本欧美韩国一区三区| 日本精品免费观看高清观看| 久久久久久久久久久99999| 亚洲成人黄色影院| 99久久99久久久精品齐齐 | 欧美国产激情一区二区三区蜜月 | 国产日韩欧美一区二区三区乱码| 三级亚洲高清视频| 欧美性色欧美a在线播放| 国产精品女人毛片| 国产乱人伦精品一区二区在线观看 | 成人精品电影在线观看| 欧美xxx久久| 亚洲综合在线视频| 成人自拍视频在线观看| 日韩欧美一区中文| 亚洲第一av色| 91国偷自产一区二区三区观看 | 亚洲精品一区二区三区影院| 毛片一区二区三区| 在线综合视频播放| 国产在线精品一区二区三区不卡| 国产精品美女视频| 亚洲国产精品av| 欧美日韩dvd在线观看| 日本麻豆一区二区三区视频| 精品久久久久av影院| 九九**精品视频免费播放| 久久精品亚洲一区二区三区浴池| 色香蕉成人二区免费| 国产一区二区不卡| 亚洲美腿欧美偷拍| 久久久夜色精品亚洲| 91精品国产综合久久精品图片| 黑人巨大精品欧美黑白配亚洲| 国产精品久久久久9999吃药| 在线观看亚洲精品视频| 亚洲天堂2016| 久久精品夜夜夜夜久久| 91一区二区三区在线观看| 裸体健美xxxx欧美裸体表演| 久久精品日产第一区二区三区高清版 | 99热国产精品| 亚洲欧美日韩国产手机在线 | 91网站黄www| 亚洲18色成人| 亚洲欧美精品午睡沙发| 日韩欧美激情一区| 一本到一区二区三区| 狠狠色狠狠色综合系列| 一级女性全黄久久生活片免费| 日韩一区和二区| 69av一区二区三区| 一区二区三区久久久| av亚洲产国偷v产偷v自拍| 欧美日韩国产乱码电影| 亚洲色图一区二区三区| 欧美做爰猛烈大尺度电影无法无天| 一区二区不卡在线播放| 欧美一区二区三区在线观看| 精品一区二区三区免费播放| 亚洲国产精品二十页| 色综合天天综合色综合av| 婷婷国产在线综合| 久久综合狠狠综合久久综合88| 成人免费视频网站在线观看|