?? fsosd.h
字號:
/* 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 + -