cg.h

来自「ESS3890+SL原代码(1*16内存)」· C头文件 代码 · 共 370 行

H
370
字号
/* Copyright 1997, ESS Technology, Inc.					*//* SCCSID @(#)cg.h	4.10 11/10/04 *//* * $Log$ */#ifndef __CG_H__#define __CG_H__/*  * Font related defines */#include "font.h"/* definitions for special digit2ascii[] symbols */#define D2A_BLANK	0xa#define D2A_COLON	0xb#define D2A_SLASH	0xc#define D2A_MINUS	0xd#define D2A_PLUS	0xe#define D2A_NULL	0xf/* defines for default(text) color map (index of osd_pal3d[]) */#define TEXT_BACKGROUND	1 /* 50% black */#define TEXT_BORDER     2 /* 100% black */#define TEXT_FOREGROUND 3 /* white *//*  * OSD macros  */#ifdef BILINGUAL_OSD#define OUTOSD(area, msg1, msg2, sec)   outosd(area,msg1,msg2,sec,1)#define OUTOSDX(area, msg1, msg2, sec)   outosd(area,msg1,msg2,sec,0)#ifdef DEBUG_OSD#define DBG_OSD(a, b, c, d)	OUTOSD(a, b, c, d)#else#define DBG_OSD(a, b, c, d)#endif	/* DEBUG_OSD */#else#define OUTOSD(area, msg, dummy_msg, sec)   outosd(area,msg,sec,1)#define OUTOSDX(area, msg, dummy_msg, sec)   outosd(area,msg,sec,0)#ifdef DEBUG_OSD#define DBG_OSD(a, b, c, d)	OUTOSD(a, b, d)#else#define DBG_OSD(a, b, c, d)#endif	/* DEBUG_OSD */#endif	/* BILINGUAL_OSD */#define	CLEAROSD(reg)		OSD_clear_region(reg)		#define	CLEARALLOSD()		OSD_clear_all(1)#define CG_MAP_COLOR(a,b,c)	CG_map_color_array(a,b,c)#define	CG_MAP_DELAYED(a,b,c)	CG_map_color_delayed(a,b,c)/* OSD timeouts (in seconds) */#define DISPLAY_TIME_OUT	2#define QUICK_TIME_OUT		1#define DIGEST_OSD_TIME_OUT	5#define EXTENDED_TIME_OUT	4#define OSD_KEEP_TIMEOUT	0xfe#define OSD_LINES_IN_AREA_1	3#define OSD_LINES_IN_AREA_2	1#define OSD_REGIONS_PER_LINE	3#define OSD_MAX_LINES    (OSD_LINES_IN_AREA_1 + OSD_LINES_IN_AREA_2)#define OSD_MAX_REGIONS  (OSD_REGIONS_PER_LINE * OSD_MAX_LINES)/* predefined OSD regions */#ifdef P4O#define OSD_AUDIO_REGION	7#define OSD_DIGEST_REGION	8#define OSD_VOCAL_REGION	9#define OSD_KARAOKE_REGION      11#define OSD_VOLUME_REGION	11#define OSD_FUNCTION_STATUS_REGION  1#define OSD_TV_STANDARD_REGION	6#define OSD_CD_TYPE_REGION	4#define OSD_REPEAT_REGION	1#define OSD_PAUSE_REGION	3#define OSD_VIEW_REGION		2#endif /* P4O */#define OSD_FUNCTION_STATUS_REGION  1#define OSD_INPUT_MODE_REGION   1#define OSD_KARAOKE_REGION      11#define OSD_AUDFX_REGION        7#define OSD_AUDIO_REGION        9#define OSD_VOCAL_REGION        8#define OSD_PBC_REGION          5#define OSD_REPEAT_REGION       5#define OSD_CD_TYPE_REGION  	4#define OSD_TV_STANDARD_REGION  6#define OSD_PLAY_ORDER_REGION   4#define OSD_GOTO_REGION         5#define OSD_TIME_TYPE_REGION    1#define OSD_DIGEST_REGION       11#define OSD_SLIDE_BAR_REGION	9/* OSD_REGION_# are mask values for the region */#define OSD_REGION_1            0x0001  #define OSD_REGION_2            0x0002#define OSD_REGION_3            0x0004#define OSD_REGION_4            0x0008#define OSD_REGION_5            0x0010#define OSD_REGION_6            0x0020#define OSD_REGION_7            0x0040#define OSD_REGION_8            0x0080#define OSD_REGION_9            0x0100#define OSD_REGION_10           0x0200#define OSD_REGION_11           0x0400#define OSD_REGION_12           0x0800#define OSD_REGION_13           0x1000#define OSD_REGION_14           0x2000#define OSD_REGION_15           0x4000#define NPOSD_MASK		0x8000#define OSD_TRACK_REGION        2#define OSD_TRACK_REGION_MASK   OSD_REGION_2#define OSD_TIME_REGION_MASK    OSD_REGION_3     /* Change time & track region also! */#define OSD_TIME_REGION         3      /* Change track & time masks above also! *//* * OSD_TIME_SIZE and OSD_TRACK_SIZE should be the exact width of the * displayed string */#define OSD_TIME_SIZE           6#define OSD_TRACK_SIZE          7GBLDEF0(unsigned char OSD_time_minute); /* BCD time for minute*/GBLDEF0(unsigned char OSD_time_second); /* BCD time for second	*/GBLDEF0(unsigned short OSD_displayed_regions); /* regions actively displayed *//* CG_track_entry[15:0] = (CG track entry[15:12] | OSD track number[11:0]) */GBLDEF0(unsigned short CG_track_entry); /***********************************************  OSD region to XY position use structure************************************************/typedef struct {    short x;    short y;} OSD_pos;extern OSD_pos OSD2CG_map[];extern unsigned int	OSD_next_update; /* time next update allowed */ extern unsigned char	OSD_update_time;/************************************************************************ * OSD Global functions                                                     * ************************************************************************/#ifdef BILINGUAL_OSDEXPORT  void                    OSD_language_change(void);EXPORT  int			outosd(int, unsigned char *,				       unsigned char *, int, int);#elseEXPORT  int			outosd(int, unsigned char *, int, int);#endifEXPORT  void                    OSD_update_info(void);EXPORT  void                    OSD_time_track(unsigned short, int);EXPORT  void                    OSD_echo(void);EXPORT  void                    OSD_pitch_bar(int);EXPORT	void			OSD_slide_bar(int, int);#ifdef GAMMAEXPORT	void			GAMMA_bar(int);#endifEXPORT  void                    OSD_digest_menu(int);EXPORT  void                    OSD_clear_all(int);EXPORT  void                    OSD_clear_region(int);EXPORT  void			NPOSD_clear_all(void);EXPORT  void 			NPOSD_output(int,int,unsigned char*);#ifdef DEBUG_OSD        /* for debugging */EXPORT  void                    debug_osd(char *, unsigned int , int);#endif/* * CG defines */GBLDEF0(int osd_on);/************************************************************************  16 colors font  If we are going to use this following setting, we should confirm that   we have enough memory(25920 Dwords) to do osd displaying.*************************************************************************/#define CG_FONT_WIDTH         20#define CG_CFONT_WIDTH	      (2*CG_FONT_WIDTH)#define CG_FONT_HEIGHT        32#define CG_CFONT_HEIGHT       32#ifdef PLAYONLY#define CG_SCREEN_XSTART      26#define CG_SCREEN_YSTART      0#define CG_LINE_WIDTH         32#define CG_LINES              17#else#define CG_SCREEN_XSTART      76#define CG_SCREEN_YSTART      50#define CG_LINE_WIDTH         28#define CG_LINES              12#endif#define CG_LINE_HEIGHT        32#ifdef C256#define CG_BITS_PER_PIXEL      8 #else#define CG_BITS_PER_PIXEL      4#endif#define CG_BYTES_PER_LINE     (CG_FONT_WIDTH * CG_LINE_WIDTH * CG_BITS_PER_PIXEL / 8 )#define CG_DWORD_PER_LINE     (CG_BYTES_PER_LINE / 4)#define CG_BYTES_PER_CH       (CG_FONT_WIDTH * CG_BITS_PER_PIXEL * CG_FONT_HEIGHT / 8)#define CG_DWORDS_PER_CH      (CG_BYTES_PER_CH / 4)#define CG_DWORDS_PER_BIG_CH  (2*CG_DWORDS_PER_CH)#define CG_FULL_SCR          0#define CG_SETUP_MENU        1#define CG_PLAY_MODE         2#define CG_EQPLAY_MODE	     3#define CG_KSC_MODE	     4/************************************************************************  Function:*************************************************************************/int  CG_set_scr(int mode);void CG_init(int reset);int  CG_set_window(int first, int last);void CG_map_color(int color_in, int color_out);void CG_map_color3(int color1, int color2, int color3);void CG_map_color_array(int color1, int color2, int color3);#ifdef NOT_USED int  CG_show_message(int immed, uchar *msg, int x, int y, int dt, 		int hli_s, int hli_e);int  CG_show_line(int immed, uchar *msg, int x, int y, int dt, 		int hli_s, int hli_e);#endifint  CG_show_frame(int x, int y, int dx, int dy, int mode);void CG_clear_message(int x, int y, int dx);void CG_service(int mode);#ifdef NOT_USEDint  CG_is_busy();int  CG_line_to( int x1, int y1, int dx, int dy, int color);int  CG_state(void);void CG_bkcolor_saver(int saver);#endif/************************************************************************  OSD language support*************************************************************************/typedef enum {    ENGLISH_OSD,#ifdef BILINGUAL_OSD    CHINESE_OSD,#endif#ifdef CHINESE_F_OSD_LANG    CHINESEF_OSD,#endif#ifdef FRENCH_OSD_LANG    FRENCH_OSD,#endif#ifdef GERMAN_OSD_LANG    GERMAN_OSD,#endif#ifdef ITALIAN_OSD_LANG    ITALIAN_OSD,#endif#ifdef SWEDISH_OSD_LANG    SWEDISH_OSD,#endif#ifdef DANISH_OSD_LANG    DANISH_OSD,#endif#ifdef JAPANESE_OSD_LANG    JAPANESE_OSD,#endif#ifdef PORTUGAL_OSD_LANG    PORTUGAL_OSD,#endif} OSD_Language;#ifdef BILINGUAL_OSDextern OSD_Language   osd_lang;  /* 0 : English, 1 : other(Chinese) */#endif/************************************************************************  ICON and GI*************************************************************************/#define INFO_SIZE       0#define INFO_CMPS_SIZE  1#define INFO_WIDTH      2#define INFO_DATA_WIDTH 3#define INFO_HEIGHT     4#define INFO_BASE       5#define INFO_FORMAT     6#define INFO_RESERVE    7#define TOP_LEFT        0#define TOP_CENTER  	1#define TOP_RIGHT       2#define MIDDLE_LEFT     3#define MIDDLE_CENTER   4#define MIDDLE_RIGHT    5#define BOTTOM_LEFT     6#define BOTTOM_CENTE    7#define BOTTOM_RIGHT    8 #define AREA_WAIT       0x01#define AREA_CLEAR      0x02#define AREA_REFRESH    0x04#define AREA_FREE       0x00#define AREA_ERASE      (AREA_CLEAR|AREA_REFRESH)#define AREA_WAIT_ERASE (AREA_WAIT|AREA_ERASE)#define FORMAT0       	0	/* 4bpp */#define FORMAT1  	1	/* 1bpp */#define FORMAT2      	2	/* 2bpp */void ICON_init(void);#ifdef NOT_USEDvoid GI_on_forced(int on);#endifvoid ICON_set_bkcolor(int bkcolor);void ICON_auto_mapping(int on_off);void ICON_color_mapping(int index, int color);void ICON_color_array_mapping(int color1, int color2, int color3);void ICON_charset_select(int charset);void ICON_charset_restore(void);unsigned int ICON_info(int icon_id, int info_id);int ICON_register(int charset, int id);int CG_current_font(void);#ifdef NOT_USEDint GI_msg_info(uchar *msg, int info_id);#endif/* the new GI interface without time, region and animation control */int GI_icon_show(int icon_id, int x, int y);int GI_text_show(uchar *message, int x, int y, int align);int GI_text_erase(uchar *message, int x, int y, int align);/* the new GI interface to user */void GI_msg_reset(int screen_erase);#ifdef BILINGUAL_OSDint GI_msg_show(int immed, uchar *emsg, uchar *cmsg, int x, int y, int align,        int display_time, int hli_s, int hli_e, int area_control,        int animation_speed);#elseint GI_msg_show(int immed, uchar *msg, int x, int y, int align, 	int display_time, int hli_s, int hli_e, int area_control, 	int animation_speed);#endifint GI_msg_remove(int entry);int GI_animation_remove(void);/* for compatiable with previous cg function */int CGI_icon_show(int icon_id, int row, int col);int CGI_msg_show(int immed, uchar *msg, int x, int y, int time, int hli_s, int hli_e);#ifdef NOT_USEDint CGI_text_show(uchar *message, int row, int col, int hli_s, int hli_e);int CGI_msg_show_smooth(int immed, uchar *msg, int row, int col, int time);int CGI_text_show_more(int immed, uchar *msg, int row, int col, int align, int hli_s, int hli_e);int CGI_text_show_offset(uchar *msg, int x, int y, int xoff, int yoff);int CGI_text_show_async(uchar *msg, int row, int col, int hli_s, int hli_e);int GI_saver_show(int icon);#endifint button_erase(int x, int y, int dx, int dy, int color);#endif

⌨️ 快捷键说明

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