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

📄 osdsrch.c

📁 车载电子影音系统dvd播放系统原程序代码
💻 C
📖 第 1 页 / 共 3 页
字号:
#include    "winav.h"
#include    "input.h"
#include    "osd.h"
#include    "hal.h"
#include    "cc.h"
#include    "gdi.h"
#include    "dvdinfo.h"
#include    "cdinfo.h"
#include    "linear.h"
#include    "navigate.h"
#include    "utl.h"

// alex1.24,20040301 
// if open this define , it will show current TITLE/CHAPTER , in bookmark
// else  it will show current Title/ Total Title in bookmark (Request for DMTECH)
//#define SUPPORT_DMTECH_CURRENT_CHAPTER

#ifdef CT908_UI

//WORD code aDigit[] = {CHAR_0, CHAR_1, CHAR_2, CHAR_3, CHAR_4, CHAR_5, CHAR_6, CHAR_7, CHAR_8, CHAR_9};
extern WORD code aDigit[];

WORD code aTitleIcon[] = {1, CHAR_N_TITLE};  
WORD code aChapterIcon[] = {1, CHAR_N_CHAP};             
WORD code aTimeIcon[] = {1, CHAR_N_TIME};       

//Alex1,21,20031209,Write Book Mark Title
#ifdef SUPPORT_BOOKMARK
WORD code aMark[][3] = {    {2,CHAR_M,CHAR_0},
                            {2,CHAR_M,CHAR_1},
                            {2,CHAR_M,CHAR_2},
                            {2,CHAR_M,CHAR_3},
                            {2,CHAR_M,CHAR_4},
                            {2,CHAR_M,CHAR_5},
                            {2,CHAR_M,CHAR_6},
                            {2,CHAR_M,CHAR_7},
                            {2,CHAR_M,CHAR_8},
                            {2,CHAR_M,CHAR_9},                             
                        };

//Alex2.30-3,20040702,let all font during 32->63 in Y.    
#if (SDRAM_CONFIGURATION == SDRAM_16M)	  
#define SRCH_FRAME_Y0_UP_EXT 0 
#else //#if (SDRAM_CONFIGURATION == SDRAM_16M)	  
#define SRCH_FRAME_Y0_UP_EXT 12
#endif //#if (SDRAM_CONFIGURATION == SDRAM_16M)	  


#endif //#ifdef SUPPORT_BOOKMARK
#define SRCH_FRAME_X0_LEFT_EXT  35


#define BUTTON_GAP          8
#define FRAME_THICKNESS     2
#define TOTAL_BUTTON_NUM_IN_SRCH      4//3
#define TOTAL_SP_NUM_IN_VIR           2  

#include "osdvp.h"

//Alex2.30-3,20040702,let all font during 32->63 in Y.
#if (SDRAM_CONFIGURATION == SDRAM_16M)	 

#define SRCH_FRAME_X0     38//40
#define SRCH_FRAME_Y0     32 //40   
#define SRCH_FRAME_X1     352//360
#define SRCH_FRAME_Y1     SRCH_FRAME_Y0+31 //80  
#define SRCH_FONT_GAP     0
//Search Title/Track Button
#define BUTTON_T_X0  SRCH_FRAME_X0+BUTTON_GAP       
#define BUTTON_T_Y0  SRCH_FRAME_Y0
#define BUTTON_T_X1  BUTTON_T_X0+SRCH_BUTTON_WIDTH
#define BUTTON_T_Y1  SRCH_FRAME_Y1

#else //#if (SDRAM_CONFIGURATION == SDRAM_16M)	    

#define SRCH_FRAME_X0     38//40 
#define SRCH_FRAME_Y0     OSDLD_START_V //40   
#define SRCH_FRAME_X1     352//360
#define SRCH_FRAME_Y1     SRCH_FRAME_Y0+52 //92  
#define SRCH_FONT_GAP     3
//Search Title/Track Button
#define BUTTON_T_X0  SRCH_FRAME_X0+BUTTON_GAP       
#define BUTTON_T_Y0  SRCH_FRAME_Y0+BUTTON_GAP
#define BUTTON_T_X1  BUTTON_T_X0+SRCH_BUTTON_WIDTH
#define BUTTON_T_Y1  SRCH_FRAME_Y1-BUTTON_GAP

#endif //#if (SDRAM_CONFIGURATION == SDRAM_16M)	    




#define SRCH_SEPARATOR_WIDTH     2*BUTTON_GAP
#define SRCH_BUTTON_WIDTH        5*BUTTON_GAP


#define BUTTON_PREV         0
#define BUTTON_PLAY         1
#define BUTTON_PAUSE        2
#define BUTTON_STOP         3
#define BUTTON_NEXT         4
#define BUTTON_SPST_CTL     5
#define BUTTON_AST_CTL      6
#define BUTTON_AUDIO_LR     BUTTON_AST_CTL
#define BUTTON_ANGLE_CTL    7
#define BUTTON_EXIT         8


#define SEARCH_TITLE        0
#define SEARCH_TRACK        SEARCH_TITLE
#define SEARCH_CHAPTER      1
#define SEARCH_TIME         2

//current pos 
extern BYTE    __bSearchCursor; 



//Search Chapter Button
#define BUTTON_C_X0  BUTTON_T_X1+2*SRCH_BUTTON_WIDTH+3*BUTTON_GAP       
#define BUTTON_C_Y0  BUTTON_T_Y0
#define BUTTON_C_X1  BUTTON_C_X0+SRCH_BUTTON_WIDTH
#define BUTTON_C_Y1  BUTTON_T_Y1


//Search Time Button
#define BUTTON_E_X0  BUTTON_C_X0
#define BUTTON_E_Y0  BUTTON_C_Y0
#define BUTTON_E_X1  BUTTON_C_X1
#define BUTTON_E_Y1  BUTTON_C_Y1
//Kevin1.07, VCD/CDDA time postion for absolute gototime
#define BUTTON_EABS_X0  BUTTON_T_X0
#define BUTTON_EABS_Y0  BUTTON_T_Y0
#define BUTTON_EABS_X1  BUTTON_T_X1
#define BUTTON_EABS_Y1  BUTTON_T_Y1
  
typedef struct
{             
    WORD wX0; 
    WORD wY0;
    WORD wX1;
    WORD wY1;               
    WORD *wpOSDVIRFONT;
} BUTTON_INFO;


BUTTON_INFO code aSRCHButton[TOTAL_BUTTON_NUM_IN_SRCH] =
                        { {BUTTON_T_X0, BUTTON_T_Y0, BUTTON_T_X1, BUTTON_T_Y1, aTitleIcon},
                          {BUTTON_C_X0, BUTTON_C_Y0, BUTTON_C_X1, BUTTON_C_Y1, aChapterIcon},
						  {BUTTON_E_X0, BUTTON_E_Y0, BUTTON_E_X1, BUTTON_E_Y1, aTimeIcon},
						  {BUTTON_EABS_X0, BUTTON_EABS_Y0, BUTTON_EABS_X1, BUTTON_EABS_Y1, aTimeIcon} };  
				
//Internal Functions
void OSDSRCH_BookMark(BYTE bMessage, WORD wParam, BYTE bSec);
void OSDSRCH_Search(BYTE bMessage, WORD wParam, BYTE bSec);
static void _OSDSRCH_ShowButton(BYTE bButtonIndex, BYTE bColor);
static void _ShowOneEntry(BYTE bColor); //rename later
static void _ShowOneEntryNumber(BYTE bSize, BYTE bNumber);
static void _OSDSRCH_ShowTwoEntry(BYTE bColor1 , BYTE bColor2); // 

//Global variables 
//BYTE __bOSDSRCHMode = FALSE;      
//WORD code *__wpDataPointer; //the data pointed to by __wpDataPointer can not be changed. __wpDataPointer can be changed.
//static  BYTE _bCurrentButton;

//extern  BYTE    IDATA   __bTemp;
//extern  BYTE    DATA    _bOSDLang;
extern  BYTE    __bTimeMin, __bTimeSec, __bTimeHour;
extern  BYTE    __bGoToTimeNO; 
extern  BYTE    IDATA   __bMin, __bSec;


//Alex1.21,20031209 support book mark
#ifdef SUPPORT_BOOKMARK
//  *********************************************************************************
//  Function    :   OSDSRCH_BookMark
//  Description :   Display BOOKMARK UI
//  Arguments   :   bMessage    : the message type
//                  wParam      : the parameter for this message
//                  bSec        : the display time for this message (currently not used)
//  Return      :   None
//  Side Effect :   None
//  *********************************************************************************
void OSDSRCH_BookMark(BYTE bMessage, WORD wParam, BYTE bSec)
{
    //Kevin1.00, fix the video hang/audio broken when invoking Search GUI
    // Micky1.05-2, fix TT/CC search will hang sometimes.K
    // After A/V reset-> still has VOBU data input before starting playing new cell.
    if (wParam == OSD_INPUT_TITLE_CHAPTER)
    {
        HAL_PreFillBuffer(HAL_FILL_AV_BUFFER, NULL);
    }

    switch (wParam)
        {

		    case OSD_INPUT_TIME: //alex1.22,20040204 combine bookmark,gototime,search
            case OSD_INPUT_TITLE_CHAPTER: //0xFF

                _bCurrentUI = OSD_UI_SEARCH;
				GDI_ClearRegion(0);
    
                //__bTitle_Ns   //total # of titles
                //__bSearchTitle=__bTitle;        //current title
                //__wSearchChapter_Ns_Title=__wChapter_Ns_Title;  //total # of chapters in current title
                //__wSearchChapter=__wChapter;    //current chapter

                GDI_SetMixRatio(GDI_GENERAL_MIX_RATIO);               
                GDI_SetCurrentRegion(0);
                GDI_ActivateRegion();
                   
                __bSearchTitle = __bBookMark_Title[__wBookMark[0]];
                __bGoToTimeNO = 0;
                if (__wBookMark[__wBookMark[0]] != 0)
                {
                    __bGoToTimeNO=1;
                }


		        if(wParam == OSD_INPUT_TIME)
		        {
#ifdef ABSOLUTE_GOTOTIME //Kevin1.07, VCD/CDDA shows track# only for relative gototime only                
                    if (!(__wDiscType & BOOK_DVD))   
                    {        
//Alex2.30-3,20040702,let all font during 32->63 in Y.
#if (SDRAM_CONFIGURATION != SDRAM_16M)                  
                        GDI_DRAW_FRAME(SRCH_FRAME_X0-SRCH_FRAME_X0_LEFT_EXT, SRCH_FRAME_Y0, BUTTON_C_X1, SRCH_FRAME_Y1,
                                       GDI_ENTRY_4B_COLOR_CENTER, // bColorBright
                                       GDI_ENTRY_4B_COLOR_CENTER, // bColorDark
                                       GDI_ENTRY_4B_COLOR_GENERAL_BG_BLUE, // bColorCenter
                                       FRAME_POP_SOLID, // bStyle
                                       FRAME_THICKNESS // bThickness
                                      );  
#else //#if (SDRAM_CONFIGURATION == SDRAM_16M)
                        GDI_FILL_RECT(SRCH_FRAME_X0-SRCH_FRAME_X0_LEFT_EXT, SRCH_FRAME_Y0, BUTTON_C_X1, SRCH_FRAME_Y1,GDI_ENTRY_4B_COLOR_GENERAL_BG_BLUE);
#endif //#if (SDRAM_CONFIGURATION == SDRAM_16M)

                    }
                    else
#endif
                    {
//Alex2.30-3,20040702,let all font during 32->63 in Y.
#if (SDRAM_CONFIGURATION != SDRAM_16M)  
                        GDI_DRAW_FRAME(SRCH_FRAME_X0-SRCH_FRAME_X0_LEFT_EXT, SRCH_FRAME_Y0, SRCH_FRAME_X1, SRCH_FRAME_Y1,
                                    GDI_ENTRY_4B_COLOR_CENTER, // bColorBright
                                    GDI_ENTRY_4B_COLOR_CENTER, // bColorDark
                                    GDI_ENTRY_4B_COLOR_GENERAL_BG_BLUE, // bColorCenter
                                    FRAME_POP_SOLID, // bStyle
                                    FRAME_THICKNESS // bThickness
                                    ); 
#else //#if (SDRAM_CONFIGURATION == SDRAM_16M)
                        GDI_FILL_RECT(SRCH_FRAME_X0-SRCH_FRAME_X0_LEFT_EXT, SRCH_FRAME_Y0, SRCH_FRAME_X1, SRCH_FRAME_Y1,GDI_ENTRY_4B_COLOR_GENERAL_BG_BLUE);
#endif //#if (SDRAM_CONFIGURATION == SDRAM_16M)

//Alex2.38, fix the drawing UI slowly when playing CDDA in Anti-Shock
#ifndef SUPPORT_ANTISHOCK 
                        //Kevin1.00, fix the video hang/audio broken when invoking Search GUI
                        HAL_PreFillBuffer(HAL_FILL_AV_BUFFER, NULL);
#endif //#ifndef SUPPORT_ANTISHOCK
              
                        //show buttons                 
                        GDI_SetTextColor(TEXT_FG_COLOR, GDI_ENTRY_4B_COLOR_BLACK);               
                        _OSDSRCH_ShowButton(SEARCH_CURSOR_TITLE-SEARCH_CURSOR_BEGIN, GDI_ENTRY_4B_COLOR_CENTER);     

//Alex2.38, fix the drawing UI slowly when playing CDDA in Anti-Shock
#ifndef SUPPORT_ANTISHOCK 
                        //Kevin1.00, fix the video hang/audio broken when invoking Search GUI
                        HAL_PreFillBuffer(HAL_FILL_AV_BUFFER, NULL);
#endif //#ifndef SUPPORT_ANTISHOCK

                        __bSearchCursor = SEARCH_CURSOR_TITLE;                    
                        _ShowOneEntry(GDI_ENTRY_4B_COLOR_GENERAL_BG_BLUE); 
                    }


//Alex2.38, fix the drawing UI slowly when playing CDDA in Anti-Shock
#ifndef SUPPORT_ANTISHOCK 
                    //Kevin1.00, fix the video hang/audio broken when invoking Search/Program GUI
                    HAL_PreFillBuffer(HAL_FILL_AV_BUFFER, NULL);
#endif //#ifndef SUPPORT_ANTISHOCK
            

                    GDI_SetTextColor(TEXT_FG_COLOR, GDI_ENTRY_4B_COLOR_BLACK);  
                    _OSDSRCH_ShowButton(SEARCH_CURSOR_TIME-SEARCH_CURSOR_BEGIN, GDI_ENTRY_4B_COLOR_CENTER);                     

//Alex2.38, fix the drawing UI slowly when playing CDDA in Anti-Shock
#ifndef SUPPORT_ANTISHOCK 
                    //Kevin1.00, fix the video hang/audio broken when invoking Search GUI
                    HAL_PreFillBuffer(HAL_FILL_AV_BUFFER, NULL);
#endif //#ifndef SUPPORT_ANTISHOCK

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -