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

📄 disp.c

📁 Sunplus 8202S source code.
💻 C
字号:
/*****************************************************\
Creater: Kenny
Date   : 2001/5/15 02:39PM
Description: Display menu using
\*****************************************************/

#include "global.h"
#include "osd.h"
#include "func.h"
#include "cfont.h"
#include "navdata.h"
#include "user_if.h"
#include "osdfont.h"
#include "auddrv.h" //2004AUDDRV oliver 20041004 for using audio driver purpose
//#include "audif.h"
#include "setup.h"
#include "user_init.h"   // alan added : for OSD_FONT_COMPRESS
#include "stdlib.h"

#ifdef OSD_BMP
#include "osd_BmpUI.h"
#endif

#ifndef DVDRELEASE
//#define DISP_DBG    1
#endif

#ifndef DISP_DBG
#undef printf
#undef print_block
#define printf(f, a...) do {} while (0)
#define print_block(x,y) do {} while (0)
#endif

#define     DISP_SLOW_DOWN      0
#define     DISP_HOLD_COUNT     20

//OSD disp color definition(the color index are defined in palette_16color_setup[])
#ifdef GREY_OSD_DISP               // ych 2-7-8 17:39
    #define DISP_WHITE      2
    #define DISP_GRAY       3
    #define DISP_GBLUE      4
    #define DISP_GREEN      2//8
    #define DISP_YGREEN     2//9
    #define DISP_ORANGE     2//10   //2-7-6 15:29
    #define DISP_SHADOW     0
#elif defined(OSD_BMP_DISPLAY)
    #define DISP_SHADOW 7
    #ifdef DISP_REGION_BOTTOM
        #define DISP_SHADOW_CDROM		0
    #endif
    #define DISP_FONT_GRAY	10
    #define DISP_FONT_YELLOW	11
    #define DISP_GBLUE      9
    #define DISP_GREEN     8 
    #define DISP_YGREEN     11
	#define DISP_ORANGE     8
    #define DISP_GRAY       10
    #define DISP_WHITE	10
    #define DISP_LITTLE_CHAR_WIDTH	8
#elif defined(SETUP_COLOR_TYPE2)     //zhangyu 
    #define DISP_WHITE      2
    #define DISP_GRAY       3
    #define DISP_GBLUE      4
    #define DISP_GREEN     10// 8zhangyu
    #define DISP_YGREEN     1//9
    #define DISP_ORANGE     12//5
    #define DISP_SHADOW     0

#else
    #define DISP_WHITE      2
    #define DISP_GRAY       3
    #define DISP_GBLUE      4
    #define DISP_GREEN      8
    #define DISP_YGREEN     9
    #ifdef  NOSHOW_CDROM_WHEN_DISP
    #define DISP_ORANGE     2
    #else
    #define DISP_ORANGE     5
    #endif
    #define DISP_SHADOW     0
#endif //GREY_OSD_DISP

#ifndef OSD_BMP_DISPLAY
//page 1
//SVCD,VCD,CDDA
    #define COOK_CD                 0

    #if defined(SYBER_DVD)||defined(SHOW_VCD_VER_INFO)   //yaowh add 04-12-17//xulf 2003-11-18
    #define COOK_TRK                COOK_CD+7               //6
    #elif defined(USE_COOK_TRK_6)//20040210
    #define COOK_TRK                COOK_CD+5+1               //5
    #else
    #define COOK_TRK                COOK_CD+5               //5
    #endif

    #define COOK_TRK_VAL            COOK_TRK+4              //9
    #define COOK_SPK                COOK_TRK_VAL+6          //15
    #define COOK_PBC                COOK_SPK+3              //18
    #define COOK_REP                COOK_PBC+4              //22

    #ifdef FUSS_DVD
    #define COOK_CLOCK              COOK_REP+3+1+1              //27//25
    #elif defined(USE_COOK_TRK_6)//20040210
    #define COOK_CLOCK              COOK_REP+3-1              //25
    #else
    #define COOK_CLOCK              COOK_REP+3              //25
    #endif

    #if defined(USE_COOK_TRK_6) || defined(NINTAUS_DVD)//20040210
    #define COOK_CLOCK_VAL          COOK_CLOCK+2+2            //27
    #else//#elif defined(USE_COOK_TRK_6)//20040210
    #define COOK_CLOCK_VAL          COOK_CLOCK+2            //27
    #endif//#elif defined(USE_COOK_TRK_6)//20040210

//DVD
    #ifdef FUSS_DVD
    #define COOK_CHP                COOK_TRK_VAL+5+1          //15//14
    #else
        //yw020909 #define COOK_CHP                COOK_TRK_VAL+5          //14
        #ifdef NEW_SEARCH_OSD
        // YW ------- osd ---------- [Top]
        // Modify 020725
        #define COOK_CHP                COOK_TRK_VAL+6          //14
        // YW ------- osd ---------- [Bottom]
        #else
        #define COOK_CHP				COOK_TRK_VAL+5
        #endif
    #endif

    #define COOK_CHP_VAL            COOK_CHP+4              //18
    //CDROM(MP3,JPEG)
    //#define COOK_SPK_MP3            COOK_TRK_VAL+8          //17
    #define COOK_SPK_MP3            COOK_TRK_VAL+9          //17   TRK_VAL=xxxx/xxxx Jeff 20020503

//page 2
    //#define COOK_AUDIO              0
    //#define COOK_AUDIO_VAL          COOK_AUDIO+3            //3
    //#define COOK_AUDIO_LANG         COOK_AUDIO_VAL+4        //7
    //#define COOK_AUDIO_TYPE         COOK_AUDIO_LANG+5       //12
    //#define COOK_SUBTITLE           COOK_AUDIO_TYPE+7       //19
    //#define COOK_SUBTITLE_VAL       COOK_SUBTITLE+3         //22
    //#define COOK_SUBTITLE_LANG      COOK_SUBTITLE_VAL+5     //26
    //#define COOK_ANGLE              COOK_SUBTITLE_LANG+6    //32
    //#define COOK_ANGLE_VAL          COOK_ANGLE+3            //35
    #ifdef FUSS_DVD
    #define COOK_AUDIO              0
    #define COOK_AUDIO_VAL          COOK_AUDIO+2            //2
    #define COOK_AUDIO_TYPE         COOK_AUDIO_VAL+3       //5
    #define COOK_AUDIO_LANG         COOK_AUDIO_TYPE+6+3        //14
    #define COOK_SUBTITLE           COOK_AUDIO_LANG+9-3        //20
    #define COOK_SUBTITLE_VAL       COOK_SUBTITLE+2         //22
    #define COOK_SUBTITLE_LANG      COOK_SUBTITLE_VAL+5     //27
    #define COOK_ANGLE              COOK_SUBTITLE_LANG+6    //33
    #define COOK_ANGLE_VAL          COOK_ANGLE+2            //35
    #else
    #ifdef NEW_SEARCH_OSD
    #define COOK_ANGLE              14
    #define COOK_ANGLE_VAL          16
    #define COOK_AUDIO              5
    #define COOK_AUDIO_VAL          COOK_AUDIO+2
    #define COOK_AUDIO_LANG         COOK_AUDIO_VAL+3
    #define COOK_AUDIO_TYPE         COOK_AUDIO_LANG+4
    #define COOK_SUBTITLE           COOK_AUDIO_TYPE+9
    #define COOK_SUBTITLE_VAL       COOK_SUBTITLE+2
    #define COOK_SUBTITLE_LANG      COOK_SUBTITLE_VAL+5
    #else // NEW_SEARCH_OSD
    #define COOK_AUDIO              0
    #define COOK_AUDIO_VAL          COOK_AUDIO+2            //2
    #define COOK_AUDIO_LANG         COOK_AUDIO_VAL+3        //5
    #define COOK_AUDIO_TYPE         COOK_AUDIO_LANG+6       //11
    #define COOK_SUBTITLE           COOK_AUDIO_TYPE+9       //20
    #define COOK_SUBTITLE_VAL       COOK_SUBTITLE+2         //22
    #define COOK_SUBTITLE_LANG      COOK_SUBTITLE_VAL+5     //27
    #define COOK_ANGLE              COOK_SUBTITLE_LANG+6    //33
    #define COOK_ANGLE_VAL          COOK_ANGLE+2            //35
    #endif
    #endif

    //special define
    #define COOK_S_TIMER            0x1<<16
    #define COOK_S_LANG             0x1<<17
    #define COOK_S_MODE             0x1<<18

//Jeff 20020411
//page 3
    #define COOK_MARK               0
    #define COOK_MARK_VAL           COOK_MARK+5             //5
    //#define COOK_MARK_VAL           COOK_MARK+4             //4 Jeff 20020621

#else//OSD_BMP_DISPLAY
//page 1
//SVCD,VCD,CDDA
    #define COOK_CD                 53
    #define COOK_CDROM		77

	#if defined(SYBER_DVD)
    #define COOK_TRK                COOK_CD+68+22
    #define COOK_TRK_CDROM		COOK_CDROM+68+22
    #elif defined(USE_COOK_TRK_6)//20040210
    #define COOK_TRK                COOK_CD+68+22
    #define COOK_TRK_CDROM		COOK_CDROM+68+22
    #else
    #define COOK_TRK            COOK_CD+68+22 //COOK_CD+68+22+24-2//libing2004-11-24 12:46
                                              //zhuyanfeng modified 02/12/2004 14:40  //to avoid the bug "dis"or"hdcd"cover with rep icon.
    #define COOK_TRK_CDROM		COOK_CDROM+68+22
    #endif//SYBER_DVD

	#define COOK_TRK_VAL            COOK_TRK+2*16+6+26//libing2004-11-24 12:46
    #define COOK_TRK_VAL_CDROM	COOK_TRK_CDROM+2*16+6
    #define COOK_SPK                404
    #define COOK_SPK_CDROM		410
    #define COOK_PBC                COOK_REP-12-48
    #define COOK_REP               350-22//350 //zhuyanfeng modified 02/12/2004 14:40  //to avoid the bug "dis"or"hdcd"cover with rep icon.
    #define COOK_REP_CDROM	  356

	#ifdef FUSS_DVD
    #define COOK_CLOCK              458
    #define COOK_CLOCK_CDROM	464
    #elif defined(USE_COOK_TRK_6)//20040210
    #define COOK_CLOCK              458
    #define COOK_CLOCK_CDROM	464
    #else
    #define COOK_CLOCK            458//  458
    #define COOK_CLOCK_CDROM	464
    #endif//FUSS_DVD

    #if defined(USE_COOK_TRK_6) || defined(NINTAUS_DVD)//20040210
    #define COOK_CLOCK_VAL          COOK_CLOCK+16+6
    #define COOK_CLOCK_VAL_CDROM	COOK_CLOCK_CDROM+16+6
    #else//#elif defined(USE_COOK_TRK_6)//20040210
    #define COOK_CLOCK_VAL          COOK_CLOCK+16+6
    #define COOK_CLOCK_VAL_CDROM	COOK_CLOCK_CDROM+16+6
    #endif//#elif defined(USE_COOK_TRK_6)//20040210

    //DVD
    #ifdef FUSS_DVD
    #define COOK_CHP                COOK_TRK_VAL+40+26
    #else
    #ifdef NEW_SEARCH_OSD
    // YW ------- osd ---------- [Top]
    // Modify 020725
    #define COOK_CHP                COOK_TRK_VAL+40+26
    // YW ------- osd ---------- [Bottom]
    #else
    #define COOK_CHP			COOK_TRK_VAL+40+26-2//libing2004-11-24 12:46

    #endif
    #endif

    #define COOK_CHP_VAL            COOK_CHP+2*16+6+28//libing2004-11-24 12:46
    #define COOK_SPK_MP3            COOK_TRK_VAL+9*8          //17   TRK_VAL=xxxx/xxxx Jeff 20020503

//page 2
    #ifdef FUSS_DVD
    #define COOK_AUDIO              COOK_CD+68+22
    #define COOK_AUDIO_VAL          COOK_AUDIO+30+6
    #define COOK_AUDIO_TYPE         381+38+6
    #define COOK_AUDIO_LANG         COOK_AUDIO_VAL+6*8
    #define COOK_SUBTITLE           COOK_AUDIO_VAL+4*8+3*8+26
    #define COOK_SUBTITLE_VAL     COOK_SUBTITLE+32+6
    #define COOK_SUBTITLE_LANG      COOK_SUBTITLE_VAL+6*8
    #define COOK_ANGLE              COOK_AUDIO_TYPE+7*8+26
    #define COOK_ANGLE_VAL          COOK_ANGLE+32+6
    #else
        #ifdef NEW_SEARCH_OSD
        #define COOK_ANGLE              507
        #define COOK_ANGLE_VAL          COOK_ANGLE+32+6
        #define COOK_AUDIO              COOK_CD+68+22
        #define COOK_AUDIO_VAL          COOK_AUDIO+30+6
        #define COOK_AUDIO_LANG         COOK_AUDIO_VAL+6*8
        #define COOK_AUDIO_TYPE         381+38+6
        #define COOK_SUBTITLE           COOK_AUDIO_VAL+4*8+3*8+26
        #define COOK_SUBTITLE_VAL     COOK_SUBTITLE+32+6
        #define COOK_SUBTITLE_LANG      COOK_SUBTITLE_VAL+6*8
        #else // NEW_SEARCH_OSD
        #define COOK_AUDIO              COOK_CD+68+22
        #define COOK_AUDIO_VAL          COOK_AUDIO+30+6
        #define COOK_AUDIO_TYPE         381+38+6
        #define COOK_AUDIO_LANG         COOK_AUDIO_VAL+6*8
        #define COOK_SUBTITLE           COOK_AUDIO_VAL+4*8+3*8+26
        #define COOK_SUBTITLE_VAL       COOK_SUBTITLE+32+6
        #define COOK_SUBTITLE_LANG      COOK_SUBTITLE_VAL+6*8
        #define COOK_ANGLE              507
        #define COOK_ANGLE_VAL          COOK_ANGLE+32+6
        #endif
    #endif

//special define
#define COOK_S_TIMER            0x1<<16
#define COOK_S_LANG             0x1<<17
#define COOK_S_MODE             0x1<<18

//Jeff 20020411
//page 3
#define COOK_MARK               0
#define COOK_MARK_VAL           COOK_MARK+5             //5
//#define COOK_MARK_VAL           COOK_MARK+4             //4 Jeff 20020621
#endif //OSD_BMP_DISPLAY

extern int getCDDAType();
extern void mark_UpdateOSD();
extern UINT8 DVD_check_state(void);
extern void osd_Move2OSD0(BYTE iLine);
extern void osd_ClearOSD0(BYTE iSLine, BYTE iELine);
extern UINT16 mp3_file_count(void);
extern UINT16 Is_JPEG_STATE(void);
extern void FSGUI_JpgUpdateOSD(void);
extern const UINT8 osd_cd_id[];

#ifdef REMAIN_TIME//nono 2-7-13 11:28 for fuss
extern BYTE polling_clock;//2-7-13 9:12
#endif

extern UINT32 coding_mode_now;

#ifdef DVD_AUDIO
extern UINT32 dAMG_LSN;		// alan, 2002/11/13 02:12

⌨️ 快捷键说明

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