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

📄 fsosd.h

📁 一个两碟控制的VCD的代码,两碟之间的转动及连续播放,已大量生产的CODE.
💻 H
📖 第 1 页 / 共 2 页
字号:
/* Copyright 1996, ESS Technology, Inc.					*/
/* SCCSID @(#)fsosd.h	1.61 02/24/98 */

/*
 * $Log$
 */
#ifndef _FSOSD_H_
#define _FSOSD_H_

#include "common.h"

/************************************************************************
 * OSD's font definitions						*
 ************************************************************************/
#include "font.h"
/* 
 * Font related macros
 */
#ifdef CUST4
#define	FONT_START	FONT_PLAY_A	/* Starting point		*/
#else
#if ((CUST3 && !CUST71 && !CUSTDVD) || P315)
#define	FONT_START	FONT_FACE1A	/* Starting point		*/
#else
#if (CUST71 && !CUST_SPATIAL)
#define FONT_START  FONT_SPACE  /* Starting point       */
#else
#define	FONT_START	FONT_S_VOL	/* Starting point		*/
#endif
#endif /* CUST3/P315 */
#endif /* CUST4 */

#if ((CUST3 && !CUST71 && !CUSTDVD) || P315)
#define	FONT_CSTART	0x62		/* Starting for Chinese font	*/
#else
#define	FONT_CSTART	0x60		/* Starting for Chinese font	*/
#endif
/* 
 * OSD related macros
 */
#define OSD_KEEP_TIMEOUT	0xfe	/* Keep previous timeout, used in *
					 * OSD language change		  */
#ifdef CUST4
#define	OSD_MAX_CHAR		24	/* Max. number of OSD char's	*/
0#define OSD_BLINK_SIZE          15      /* Max. size of blinking msg    */
#define OSD_BLINKING		0xff	/* "duration" in OSD_output()	*/
#else
#define	OSD_MAX_CHAR		20	/* Max. number of OSD char's	*/
#endif

#define	OSD_CHAR_WIDTH		24	/* Horizontal char size (pels)	*/
#define	OSD_PIXEL		2	/* 2 bits/pixel			*/
#define	OSD_CHAR_HEIGHT		32	/* Vertical char size (pels)	*/

#define	OSD_DRAM_START		(17424+ADJUST_4_LINE)
#define	OSD_RESTRICTED_SIZE	960    	/* Size in dwords..restricted	*/
#ifdef FOUR_LINE_OSD
#define	OSD_DRAM_SIZE		1920    /* Size in dwords..unrestricted	*/
#else
#define	OSD_DRAM_SIZE		2400    /* Size in dwords..unrestricted	*/
#endif /* FOUR_LINE_OSD */

#define	OSD_DRAM_DX		3       /* 3 DWORDs */
#define	OSD_DRAM_DY		OSD_CHAR_HEIGHT	/* Each char is 24x32	*/

#define	OSD_SM_WIDTH		3	/* Width in WORD for English	*/
#define	OSD_LG_WIDTH		6	/* Width in WORD for Chinese	*/

/* Dword offset of position i with respect to OSD_DRAM_START */
#define OSD_OFFSET(i)           ((((i) << 1) + (i)) >> 1)  /* 1.5*i */


/************************************************************************
 * Local typedefs's							*
 ************************************************************************/
/* PV FSOSD
 *
 *  Example Full Screen OSD Configuration:
 *  
 *        AREA 1______________________________
 *        |           |           |           |
 *        | REGION 1  | REGION 2  | REGION 3  |  LINE 1 (AREA 1)
 *         -----------------------------------
 *        | REGION 4  | REGION 5  | REGION 6  |  LINE 2
 *         -----------------------------------
 *        | REGION 7  | REGION 8  | REGION 9  |  LINE 3
 *        -------------------------------------
 *              .           .           .
 *              .           .           .
 *              .           .           .
 *        AREA 2______________________________
 *        |           |           |           |
 *        | REGION 10 | REGION 11 | REGION 12 |  LINE 1 (AREA 2)
 *         -----------------------------------
 *        | REGION 13 | REGION 14 | REGION 15 |  LINE 2
 *        -------------------------------------
 *
 *
 *  NOTE: When reconfiguring OSD Areas, verify that the following defines are
 *        correct for your intended layout.
 *      1. OSD_TOTAL_AREAS
 *      2. OSD_LINES_IN_AREA_1 and OSD_LINES_IN_AREA_2 
 *	3. OSD_REGIONS_PER_LINE
 *      4. OSD_TIME_REGION & OSD_TIME_REGION_MASK
 *      5. OSD_TRACK_REGION & OSD_TRACK_REGION_MASK   
 */  

#if (CUST3 || CUST71 || CUSTDVD || P315)
#define OSD_TOTAL_AREAS		1		/* max is 2 */
#ifdef FOUR_LINE_OSD
#define OSD_LINES_IN_AREA_1	4
#else
#define OSD_LINES_IN_AREA_1	5
#endif
#define OSD_LINES_IN_AREA_2	0
#define OSD_REGIONS_PER_LINE	3
#else /* not CUST3 */
#ifdef CUST4
#define OSD_TOTAL_AREAS		1
#define OSD_LINES_IN_AREA_1	2
#define OSD_LINES_IN_AREA_2	0
#define OSD_REGIONS_PER_LINE	5
#else /* not CUST4 */
#define OSD_TOTAL_AREAS		2
#define OSD_LINES_IN_AREA_1	3
#ifdef FOUR_LINE_OSD
#define OSD_LINES_IN_AREA_2	1
#else
#define OSD_LINES_IN_AREA_2	2
#endif /* FOUR_LINE_OSD */
#define OSD_REGIONS_PER_LINE	3
#endif /*CUST4*/
#endif /*CUST3*/

#define OSD_MAX_LINES    (OSD_LINES_IN_AREA_1 + OSD_LINES_IN_AREA_2)
#define OSD_MAX_REGIONS  (OSD_REGIONS_PER_LINE * \
			  (OSD_LINES_IN_AREA_1 + OSD_LINES_IN_AREA_2))     

#ifdef CUST4
#define OSD_HORZ_POS        50    /* OSD horizontal display position */
#define	OSD_HORIZ_END	    (OSD_MAX_CHAR * OSD_CHAR_WIDTH)
#define OSD_NTSC_VERT_POS1  30    /* Area1 vertical display position for NTSC */
#define OSD_PAL_VERT_POS1   40    /* Area1 vertical display position for PAL */
#else /* not CUST4 */
#define OSD_HORZ_POS        110    /* OSD horizontal display position */
#define	OSD_HORIZ_END	    (OSD_MAX_CHAR * OSD_CHAR_WIDTH)
#define OSD_NTSC_VERT_POS1  30    /* Area1 vertical display position for NTSC */
#define OSD_PAL_VERT_POS1   40    /* Area1 vertical display position for PAL */
#endif /* CUST4 */

#ifdef CUST3
#define OSD_NTSC_VERT_POS2  170   /* Area2 vertical display position for NTSC */
#define OSD_PAL_VERT_POS2   210   /* Area2 vertical display position for PAL */
#else
#define OSD_NTSC_VERT_POS2  140   /* Area2 vertical display position for NTSC */
#define OSD_PAL_VERT_POS2   172   /* Area2 vertical display position for PAL */
#endif
/* 
 * NOTE: To convert from NTSC to PAL vert. position, the following equation
 *       can be used. This is needed to prevent the vertical shifting of the
 *       OSD Areas when switching between NTSC and PAL output.
 *
 *                  Y_pal = (6 * Y_ntsc / 5) + 4
 */

#define OSD_NTSC_VERT_END1  (OSD_NTSC_VERT_POS1 + \
			     OSD_lines_in_area_1 * OSD_CHAR_HEIGHT/2 -1)
#define OSD_PAL_VERT_END1   (OSD_PAL_VERT_POS1 + \
			     OSD_lines_in_area_1 * OSD_CHAR_HEIGHT/2 -1)
#define OSD_NTSC_VERT_END2  (OSD_NTSC_VERT_POS2 + \
			     OSD_lines_in_area_2 * OSD_CHAR_HEIGHT/2 -1)
#define OSD_PAL_VERT_END2   (OSD_PAL_VERT_POS2 + \
			     OSD_lines_in_area_2 * OSD_CHAR_HEIGHT/2 -1)
    
#define OSD_AREA_1          0
#define OSD_AREA_2          1
#define OSD_LINE_1          0
#define OSD_LINE_2          1
#define OSD_LINE_3          2
#define OSD_LINE_4          3
#define OSD_LINE_5          4

#ifndef CUST4    /* CUST4 has 5 regions per line */
#define OSD_LINE_1_MASK		0x0007
#define OSD_LINE_2_MASK         0x0038
#define OSD_LINE_3_MASK         0x01c0
#define OSD_LINE_4_MASK         0x0e00
#define OSD_LINE_5_MASK         0x7000
#endif /* CUST4 has 5 regions per line */

#ifdef CUST4    /* CUST4 has 5 regions per line */
#define OSD_SECT_1              0x0021  /* REGIONS 1,6 */
#define OSD_SECT_2              0x0042  /* REGIONS 2,7 */
#define OSD_SECT_3              0x0084  /* REGIONS 3,8 */
#define OSD_SECT_4              0x0108  /* REGIONS 4,9 */
#define OSD_SECT_5              0x0210  /* REGIONS 5,10 */
#else /* not CUST4 */
#define OSD_SECT_1              0x1249  /* REGIONS 1,4,7,10,13 */
#define OSD_SECT_2              0x2492  /* REGIONS 2,5,8,11,14 */
#define OSD_SECT_3              0x4924  /* REGIONS 3,6,9,12,15 */
#endif /*CUST4*/

#define OSD_REGION_1            0x0001  /* OSD_REGION_# are mask values for the region */
#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

/* Track and Time regions are special, in that once specified,
 * no other OSD messages can be displayed in those regions directly!
 */
#if defined(CUST3) || defined(P315)
#if defined(S215) || defined(P315)
#define OSD_TIME_REGION_MASK    OSD_REGION_4
#define OSD_TRACK_REGION_MASK   OSD_REGION_2
#define OSD_TIME_REGION         4  /* Change track & time masks above also! */
#define OSD_TRACK_REGION        2
#else
#define OSD_TIME_REGION_MASK OSD_REGION_3/* Change time & track region also! */ 
#define OSD_TRACK_REGION_MASK   OSD_REGION_1
#define OSD_TIME_REGION         3  /* Change track & time masks above also! */
#define OSD_TRACK_REGION        1
#endif /*S215*/
#else /* not CUST3 */
#ifdef CUST4
#define OSD_TIME_REGION_MASK    OSD_REGION_3  /* Change time & track region also! */ 
#define OSD_TRACK_REGION_MASK   0
#define OSD_TIME_REGION         3      /* Change track & time masks above also! */
#define OSD_TRACK_REGION        0
#else /* not CUST4 */
#ifdef P4O
#define OSD_TIME_REGION_MASK    0     /* Change time & track region also! */ 
#define OSD_TRACK_REGION_MASK   0
#define OSD_TIME_REGION         0      /* Change track & time masks above also! */
#define OSD_TRACK_REGION        0
#else

#ifdef FOUR_LINE_OSD
#define OSD_TRACK_REGION        0  	/* Sharing Track region */
#define OSD_TRACK_REGION_MASK   0
#else
#define OSD_TRACK_REGION        4
#define OSD_TRACK_REGION_MASK   OSD_REGION_4
#endif /* FOUR_LINE_OSD */

#define OSD_TIME_REGION_MASK    OSD_REGION_7     /* Change time & track region also! */ 
#define OSD_TIME_REGION         7      /* Change track & time masks above also! */
#endif /* P4O */
#endif /* CUST4 */
#endif /* CUST3 */

⌨️ 快捷键说明

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