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

📄 posi.h

📁 mtk1389L latest sourcecode enjoy
💻 H
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 07/04/09 11:58a   $       ****************/
/***************  $Revision:: 2                $       ****************/
/***************                                       ****************/
/***************   Description :                       ****************/
/***************                                       ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer :                       ****************/
/**********************************************************************/

#ifndef _POS_H_
#define _POS_H_

// *********************************************************************
// For position NTSC/PAL video/OSD offset
// *********************************************************************
#define OSD_NTSC_H_OFST            (NTSC_ADJUST_H * 2 - OSD_NTSC_ADJUST_H * 2 + 4)
#define OSD_PAL_H_OFST             (PAL_ADJUST_H * 2 - OSD_PAL_ADJUST_H * 2 + 10)

// *********************************************************************
// For position table number
// *********************************************************************
#define OSD_POS_TBL_LAYER1         0
#define OSD_POS_TBL_LAYER2         1
#define OSD_POS_TBL_PROG           2
#define OSD_POS_TBL_MARK           3
#define OSD_POS_TBL_DGST           4
#define OSD_POS_TBL_UPG            5
#define OSD_POS_TBL_AIN            6
#define OSD_POS_TBL_FLMENU         7
#define OSD_POS_TBL_GOTO           8
#ifdef SUPPORT_USB_COPY //yan 070409
#define OSD_POS_TBL_USB            9
#define OSD_POS_TBL_MAX            10
#else
#define OSD_POS_TBL_MAX            9
#endif
// *********************************************************************
// Macros
// *********************************************************************
#define wOsdPos(tbl,idx)           ((WORD)(((tbl) << 8) | (idx)))
#define bOsdPosTbl(pos)            ((BYTE)((pos) >> 8))
#define bOsdPosIdx(pos)            ((BYTE)((pos) & 0x00ff))

#define OSD_POS_NULL               ((WORD)(0xffff))

// *********************************************************************
// For Status Layer
// *********************************************************************
#define OSD_POS_REMAIN_MSG         wOsdPos(OSD_POS_TBL_LAYER1, 0)
#define OSD_POS_INIT               wOsdPos(OSD_POS_TBL_LAYER1, 1)
#define OSD_POS_PBC                wOsdPos(OSD_POS_TBL_LAYER1, 2)
#define OSD_POS_PLAY_STATUS        wOsdPos(OSD_POS_TBL_LAYER1, 3)
#define OSD_POS_TIME_LEFT          wOsdPos(OSD_POS_TBL_LAYER1, 4)
#define OSD_POS_TIME_RIGHT         wOsdPos(OSD_POS_TBL_LAYER1, 5)
#define OSD_POS_REPEAT             wOsdPos(OSD_POS_TBL_LAYER1, 6)
#define OSD_POS_REPEAT_LEFT        wOsdPos(OSD_POS_TBL_LAYER1, 7)
#define OSD_POS_ZOOM               wOsdPos(OSD_POS_TBL_LAYER1, 8)
#define OSD_POS_ANGLE              wOsdPos(OSD_POS_TBL_LAYER1, 9)
#define OSD_POS_PLAY_INFO          wOsdPos(OSD_POS_TBL_LAYER1, 10)
#define OSD_POS_SUBTITLE           wOsdPos(OSD_POS_TBL_LAYER1, 11)
#define OSD_POS_AUDIO              wOsdPos(OSD_POS_TBL_LAYER1, 12)
#define OSD_POS_AUD_CTRL           wOsdPos(OSD_POS_TBL_LAYER1, 13)
#define OSD_POS_AUD_CTRL1          wOsdPos(OSD_POS_TBL_LAYER1, 14)
#define OSD_POS_SHIFT_MARK         wOsdPos(OSD_POS_TBL_LAYER1, 15)
#define OSD_POS_PCD_AUD_CTRL       wOsdPos(OSD_POS_TBL_LAYER1, 16)
#define OSD_POS_ISO_TIME_LEFT      wOsdPos(OSD_POS_TBL_LAYER1, 17)
#define OSD_POS_ISO_TIME_RIGHT     wOsdPos(OSD_POS_TBL_LAYER1, 18)
#define OSD_POS_ISO_REPEAT         wOsdPos(OSD_POS_TBL_LAYER1, 19)
#define OSD_POS_ISO_REPEAT_LEFT    wOsdPos(OSD_POS_TBL_LAYER1, 20)
#define OSD_POS_ISO_ZOOM           wOsdPos(OSD_POS_TBL_LAYER1, 21)
#define OSD_POS_KSCORE             wOsdPos(OSD_POS_TBL_LAYER1, 22)
#define OSD_POS_KSINFO             wOsdPos(OSD_POS_TBL_LAYER1, 23)
#define OSD_POS_DIVX6_STRM_INFO wOsdPos(OSD_POS_TBL_LAYER1, 24)
//alfonso
#if (defined( DDISC_SUPPORT_QT_CHAPTER) || defined(DIVXMENU_INFO))
#define OSD_POS_MP4_CHAP             wOsdPos(OSD_POS_TBL_LAYER1, 25)
#define OSD_POS_LAYER1_MAX         26
#else /*!(DDISC_SUPPORT_QT_CHAPTER||DIVXMENU_INFO)*/
#define OSD_POS_LAYER1_MAX         25
#endif /* DDISC_SUPPORT_QT_CHAPTER||DIVXMENU_INFO */

#define fgIsLayer1(bPosIdx)        (bOsdPosTbl(bPosIdx) == OSD_POS_TBL_LAYER1)

// *********************************************************************
// For Message Layer
// *********************************************************************
#define OSD_POS_LAYER2_LINE1       wOsdPos(OSD_POS_TBL_LAYER2, 0)
#define OSD_POS_LAYER2_LINE2       wOsdPos(OSD_POS_TBL_LAYER2, 1)
#define OSD_POS_LAYER2_LINE3       wOsdPos(OSD_POS_TBL_LAYER2, 2)
#define OSD_POS_LAYER2_LINE4       wOsdPos(OSD_POS_TBL_LAYER2, 3)

#define OSD_POS_LAYER2_MAX         4

#ifdef PLAYER_FLMENU
  #define fgIsLayer2(bPosIdx)        ((bOsdPosTbl(bPosIdx) == OSD_POS_TBL_LAYER2) &&  \
                                      (!(fgIsIsoPlay() && fgFlCheckStatus(FL_STATUS_IN_MENU))))
#else
  #define fgIsLayer2(bPosIdx)        (bOsdPosTbl(bPosIdx) == OSD_POS_TBL_LAYER2)
#endif

// *********************************************************************
// Postion Alias
// *********************************************************************
#define OSD_POS_STOP_MSG1     OSD_POS_LAYER2_LINE4
#define OSD_POS_STOP_MSG2     OSD_POS_LAYER2_LINE2
#define OSD_POS_EMD_ATTACH    OSD_POS_LAYER2_LINE2

#define OSD_POS_NORMAL        OSD_POS_LAYER2_LINE1
#define OSD_POS_SELECT        OSD_POS_LAYER2_LINE1
#define OSD_POS_ERROR         OSD_POS_LAYER2_LINE1

#define OSD_POS_VCD_SEARCH    OSD_POS_LAYER2_LINE3
#define OSD_POS_DVD_SEARCH    OSD_POS_LAYER2_LINE3

#define OSD_POS_ISO_SEARCH    OSD_POS_LAYER2_LINE1

/* for disc start play information */
#define OSD_POS_DISC_TYPE     OSD_POS_LAYER2_LINE1
#define OSD_POS_PBC_2         OSD_POS_LAYER2_LINE2
#define OSD_POS_LAST_MEM      OSD_POS_LAYER2_LINE3

#define OSD_POS_ISO_INFO      OSD_POS_PLAY_INFO

/* for temp parental level password */
#define OSD_POS_PTL_PWD       OSD_POS_LAYER2_LINE2

/* for JPEG zoom percent show */
#define OSD_POS_ZOOM_PCT      OSD_POS_LAYER2_LINE2

// *********************************************************************
// Postion common definition
// *********************************************************************
#define OSD_POS_CLEAR         0xff

#endif /* _POS_H_ */

#define VOL_POS_X1    364 //(VOL_POS_X + 8*EFONT_WIDTH)
// *********************************************************************
// only for osdshow.c
// *********************************************************************
#ifdef _OSDSHOW_MAIN_C_

// *********************************************************************
// Position Table Type Define
// *********************************************************************
typedef struct
{
  BYTE bWB;
  WORD wX;
  WORD wY;
  WORD wWidth;
  WORD wHeight;
}
strucOsdPos;

// *********************************************************************
// For Status Layer
// *********************************************************************
#define PBC_POS_Y     0
#define PBC_POS_Y2    (1 * LINE_HEIGHT)
#define SELECT_POS_X  0

#define ANGLE_POS_X       ((LINE_WIDTH - 5) * EFONT_WIDTH)
#define ZOOM_POS_X        (ANGLE_POS_X - 5 * EFONT_WIDTH)
#define PLAY_STATUS_POS_X ((LINE_WIDTH - 6) * EFONT_WIDTH) /* SF1/16: 6 chars */
#define PBC_POS_X         ((LINE_WIDTH - 13) * EFONT_WIDTH) /* PBC OFF: 7 chars */

#define REPEAT_POS_X      (7 * EFONT_WIDTH)
#define REPEAT_LEFT_POS_X (0)

#define INIT_POS_X    40
#define INIT_POS_Y    0

#define TIME_POS_X    0
#define TIME_POS_Y    0
#define TIME_POS_Y2   (1 * LINE_HEIGHT)
#define TIME_POS_X2   (20 * EFONT_WIDTH)
#define TIME_WIDTH    (7 * EFONT_WIDTH)
#define T_TIME_WIDTH  (8 * EFONT_WIDTH)

#ifdef TIME_INFO_SAME_LINE
  #ifdef DVD_CHAP_3_DIGITS
    #define PLAY_INFO_WIDTH   (19 * EFONT_WIDTH)
  #else
    #define PLAY_INFO_WIDTH   (18 * EFONT_WIDTH)
  #endif
#else
  #define PLAY_INFO_WIDTH   DISP_WIDTH
#endif
//alfonso
#if (defined( DDISC_SUPPORT_QT_CHAPTER) || defined(DIVXMENU_INFO))
#define MP4_CHAP_WIDTH	(19 * EFONT_WIDTH)
#endif /* DDISC_SUPPORT_QT_CHAPTER||DIVXMENU_INFO */

#define HEAD_POS_X    0
#define HEAD_POS_Y    0
#define HEAD_POS_Y2   (1 * LINE_HEIGHT)

#define VOL_POS_X     0
#define VOL_POS_Y     0

#define SHIFT_MARK_POS_X     ((LINE_WIDTH - 2) * EFONT_WIDTH)

#define KSCORE_POS_X  (HEAD_POS_X + 20 * EFONT_WIDTH)
#define KSINFO_POS_X  (HEAD_POS_X + 7 * EFONT_WIDTH)

// *********************************************************************
// For Status Layer
// *********************************************************************
static code strucOsdPos pwPosLayer1[OSD_POS_LAYER1_MAX] = {
  {WB_NORMAL_HEAD1,  TIME_POS_X, TIME_POS_Y,            /* 00 OSD_POS_REMAIN_MSG      */
                     PBC_POS_X - TIME_POS_X},
  {WB_NORMAL_HEAD1,  INIT_POS_X, INIT_POS_Y,            /* 01 OSD_POS_INIT            */
                     PBC_POS_X - INIT_POS_X},
  {WB_NORMAL_HEAD1,  PBC_POS_X, HEAD_POS_Y,             /* 02 OSD_POS_PBC             */
                     PLAY_STATUS_POS_X - PBC_POS_X},
  {WB_NORMAL_HEAD1,  PLAY_STATUS_POS_X, HEAD_POS_Y,     /* 03 OSD_POS_PLAY_STATUS     */
                     DISP_WIDTH - PLAY_STATUS_POS_X},
#ifdef OSD_SWAP_LINE_23
  {WB_NORMAL_PBC1,   TIME_POS_X, TIME_POS_Y,            /* 04 OSD_POS_TIME_LEFT       */
                     TIME_WIDTH},
  {WB_NORMAL_HEAD2,  TIME_POS_X2, TIME_POS_Y,           /* 05 OSD_POS_TIME_RIGHT      */
                     T_TIME_WIDTH},
  {WB_NORMAL_PBC1,   REPEAT_POS_X, PBC_POS_Y,           /* 06 OSD_POS_REPEAT          */
                     ZOOM_POS_X - REPEAT_POS_X},
  {WB_NORMAL_PBC1,   REPEAT_LEFT_POS_X, PBC_POS_Y,      /* 07 OSD_POS_REPEAT_LEFT     */
                     ZOOM_POS_X - REPEAT_LEFT_POS_X},
  {WB_NORMAL_PBC1,   ZOOM_POS_X, PBC_POS_Y,             /* 08 OSD_POS_ZOOM            */
                     ANGLE_POS_X - ZOOM_POS_X},
  {WB_NORMAL_PBC1,   ANGLE_POS_X, PBC_POS_Y,            /* 09 OSD_POS_ANGLE           */
                     DISP_WIDTH - ANGLE_POS_X},
  {WB_NORMAL_HEAD2,  HEAD_POS_X, HEAD_POS_Y,            /* 10 OSD_POS_PLAY_INFO       */
                     PLAY_INFO_WIDTH},
#else /* original position */
  {WB_NORMAL_HEAD2,  TIME_POS_X, TIME_POS_Y,            /* 04 OSD_POS_TIME_LEFT       */
                     TIME_WIDTH},
  {WB_NORMAL_PBC1,   TIME_POS_X2, TIME_POS_Y,           /* 05 OSD_POS_TIME_RIGHT      */
                     T_TIME_WIDTH},
  {WB_NORMAL_HEAD2,  REPEAT_POS_X, PBC_POS_Y,           /* 06 OSD_POS_REPEAT          */
                     ZOOM_POS_X - REPEAT_POS_X},
  {WB_NORMAL_HEAD2,  REPEAT_LEFT_POS_X, PBC_POS_Y,      /* 07 OSD_POS_REPEAT_LEFT     */
                     ZOOM_POS_X - REPEAT_LEFT_POS_X},
  {WB_NORMAL_HEAD2,  ZOOM_POS_X, PBC_POS_Y,             /* 08 OSD_POS_ZOOM            */
                     ANGLE_POS_X - ZOOM_POS_X},
  {WB_NORMAL_HEAD2,  ANGLE_POS_X, PBC_POS_Y,            /* 09 OSD_POS_ANGLE           */
                     DISP_WIDTH - ANGLE_POS_X},
  {WB_NORMAL_PBC1,   HEAD_POS_X, HEAD_POS_Y,            /* 10 OSD_POS_PLAY_INFO       */
                     PLAY_INFO_WIDTH},
#endif /* original position */
  {WB_NORMAL_PBC2,   HEAD_POS_X, PBC_POS_Y,             /* 11 OSD_POS_SUBTITLE        */
                     DISP_WIDTH - HEAD_POS_X},
  {WB_NORMAL_PBC2,   HEAD_POS_X, PBC_POS_Y,             /* 12 OSD_POS_AUDIO           */
                     DISP_WIDTH - HEAD_POS_X},
  {WB_NORMAL_VOL,    VOL_POS_X, VOL_POS_Y,              /* 13 OSD_POS_AUD_CTRL        */
                     DISP_WIDTH - VOL_POS_X},
  {WB_NORMAL_VOL,    VOL_POS_X1, VOL_POS_Y,             /* 14 OSD_POS_AUD_CTRL1       */
                     DISP_WIDTH - VOL_POS_X1},
  {WB_NORMAL_VOL,    SHIFT_MARK_POS_X, VOL_POS_Y,       /* 15 OSD_POS_SHIFT_MARK      */
                     2*EFONT_WIDTH},
  {WB_NORMAL_HEAD2,  VOL_POS_X, VOL_POS_Y,              /* 16 OSD_POS_PCD_AUD_CTRL    */
                     DISP_WIDTH - VOL_POS_X},
  {WB_NORMAL_HEAD2,  TIME_POS_X, TIME_POS_Y,            /* 17 OSD_POS_ISO_TIME_LEFT   */
                     TIME_WIDTH},
  {WB_NORMAL_PBC1,   TIME_POS_X2, TIME_POS_Y,           /* 18 OSD_POS_ISO_TIME_RIGHT  */
                     T_TIME_WIDTH},
  {WB_NORMAL_HEAD2,  REPEAT_POS_X, PBC_POS_Y,           /* 19 OSD_POS_ISO_REPEAT      */
                     ZOOM_POS_X - REPEAT_POS_X},
  {WB_NORMAL_HEAD2,  REPEAT_LEFT_POS_X, PBC_POS_Y,      /* 20 OSD_POS_ISO_REPEAT_LEFT */
                     ZOOM_POS_X - REPEAT_LEFT_POS_X},
  {WB_NORMAL_HEAD2,  ZOOM_POS_X, PBC_POS_Y,             /* 21 OSD_POS_ISO_ZOOM        */
                     ANGLE_POS_X - ZOOM_POS_X},
  {WB_NORMAL_HEAD1,  KSCORE_POS_X, INIT_POS_Y,          /* 22 OSD_POS_KSCORE          */
                     DISP_WIDTH - KSCORE_POS_X},
  {WB_NORMAL_HEAD1,  KSINFO_POS_X, INIT_POS_Y,          /* 23 OSD_POS_KSINFO          */
                     DISP_WIDTH - KSINFO_POS_X},
  {WB_NORMAL_PBC2,   HEAD_POS_X, PBC_POS_Y2,             /* 24 OSD_POS_DIVX6_STRM_INFO        */
                     DISP_WIDTH - HEAD_POS_X},
  //alfonso
#if (defined( DDISC_SUPPORT_QT_CHAPTER) || defined(DIVXMENU_INFO))
  {WB_NORMAL_PBC1,  HEAD_POS_X, HEAD_POS_Y,            /* 24 OSD_POS_MP4_CHAP       */
                     MP4_CHAP_WIDTH},
#endif /* DDISC_SUPPORT_QT_CHAPTER||DIVXMENU_INFO */
};

// *********************************************************************
// For Message Layer
// *********************************************************************
static code strucOsdPos pwPosLayer2[OSD_POS_LAYER2_MAX] = {
  {WB_OVERLAY_MSG1,  HEAD_POS_X, HEAD_POS_Y,            /* 00 OSD_POS_LAYER2_LINE1 */
                     DISP_WIDTH - HEAD_POS_X},
  {WB_OVERLAY_MSG2,  HEAD_POS_X, HEAD_POS_Y,            /* 01 OSD_POS_LAYER2_LINE2 */
                     DISP_WIDTH - HEAD_POS_X},
  {WB_OVERLAY_MSG3,  HEAD_POS_X, HEAD_POS_Y,            /* 02 OSD_POS_LAYER2_LINE3 */
                     DISP_WIDTH - HEAD_POS_X},
  {WB_OVERLAY_MSG4,  HEAD_POS_X, HEAD_POS_Y,            /* 03 OSD_POS_LAYER2_LINE4 */
                     DISP_WIDTH - HEAD_POS_X}
};


#ifdef SUPPORT_USB_COPY //yan 070409

#define OSD_POS_USB_PERCENT       wOsdPos(OSD_POS_TBL_USB, 0)

#define OSD_POS_USB_MAX          1


static code strucOsdPos pwPosUSB[OSD_POS_USB_MAX] = {
{WB_USB_MENU, USB_ITEM_BEGIN_X+10,                
               USB_ITEM_BEGIN_Y+LINE_HEIGHT,
               LINE_HEIGHT}
};

#endif

#endif /* _OSDSHOW_MAIN_C_ */

⌨️ 快捷键说明

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