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 + -
显示快捷键?