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

📄 sltmenu.h

📁 MTK portableDVD 采用mtk1389方案的代码
💻 H
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 05/10/12 09:19a   $       ****************/
/***************  $Revision: 2.0 $       ****************/
/***************                                       ****************/
/***************   Description :                       ****************/
/***************                                       ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer :  shangbo lin          ****************/
/**********************************************************************/
#ifndef _SLTMENU_H_
#define  _SLTMENU_H_

// *********************************************************************
// selector position define
// *********************************************************************
#define SLT_RECT_WIDTH       WB_SELECTOR_WIDTH
#define SLT_RECT_HEIGHT      WB_SELECTOR_HEIGHT
#define SLT_RECT_START_X     0
#define SLT_RECT_START_Y     0
#define SLT_RECT_END_X       (SLT_RECT_START_X + WB_SELECTOR_WIDTH)
#define SLT_RECT_END_Y       (SLT_RECT_START_X + WB_SELECTOR_WIDTH)

#define SLT_MSG_LINE1_START_X     24
#define SLT_MSG_LINE1_START_Y     4
#define SLT_MSG_LINE2_START_X     SLT_RECT_START_X
#define SLT_MSG_LINE2_END_X       SLT_RECT_END_X      
#define SLT_MSG_LINE2_START_Y     40
#define SLT_MSG_LINE2_END_Y       69

#define SLT_ITEM_START_Y          38      
#define SLT_ITEM_END_Y            72

#define SLT_CORNER_BMP_WIDTH      12
#define SLT_CORNER_BMP_HEIGHT     12


// *********************************************************************
// selector palette define
// *********************************************************************
enum
{
  SLT_COL_GRAY41,
  SLT_COL_BLACK2,
  SLT_COL_BLACK1,
  SLT_COL_RED,
  SLT_COL_RED1,
  SLT_COL_WHITE,
  SLT_COL_WHITE1,
  
  SLT_COL_WHITE41,  
  SLT_COL_WHITE42,   
  SLT_COL_WHITE43,   
  
  SLT_COL_RED41,     
  SLT_COL_RED43,
  SLT_COL_BLACK41,
  SLT_COL_BLACK42,
  SLT_COL_BLACK43,
  SLT_COL_WHITE0,
  
  SLT_COL_NS,
  SLT_COL_MAX = SLT_COL_NS - 1,
  SLT_COL_BG   = SLT_COL_GRAY41
};

#define  SLT_FOCUS_COLOR        SLT_COL_RED43
#define  SLT_UNFOCUS_COLOR    SLT_COL_BLACK42
#define  SLT_COLOR_BLEND          BLEND_2
// *********************************************************************
// selector menu structure define
// *********************************************************************
#define  OSD_SHOW_MENU_UP     0xA0
#define  OSD_SHOW_MENU_DOWN   0xA1 

typedef enum
{
  SLT_STATE_INIT,
  SLT_STATE_WAIT_TIMEOUT,
  SLT_STATE_NORMAL
}E_SLT_STATE;


typedef struct
{
 BYTE  bItemCmd;
 WORD  pwItemMsg;
 WORD  wStartX;
 WORD  wEndX;
}S_SLT_ITEM_INDEX;


typedef struct
{
WORD pwMenuMsg;
S_SLT_ITEM_INDEX *prItem;
BYTE   bItemCnt;
void (code *vMenuInit)(void) large;
BOOL (code *vMenuState)(void) large;
void (code *vMenuExit)(void) large;
}S_SLT_MENU_INDEX;

typedef struct
{
 E_SLT_STATE eState;
 BYTE eError;
 BYTE  bPosition; 
}S_SELECTOR;


code S_SLT_ITEM_INDEX  _rSltRepeatItemDvd[] = {
{SV_REPEAT_NONE,         OSD_MSG_SLT_OFF,       8,     106},
{SV_REPEAT_AB,           OSD_MSG_SLT_AB,        107,   191},
{SV_REPEAT_CHAPTER,      OSD_MSG_SLT_CHAPTER,   192,   321},
{SV_REPEAT_TITLE,        OSD_MSG_SLT_TITLE,     322,   459},
{SV_REPEAT_ALL,          OSD_MSG_SLT_ALL,       460,   548}
};


code S_SLT_ITEM_INDEX  _rSltRepeatItemVcd[] = {
{SV_REPEAT_NONE,        OSD_MSG_SLT_OFF,        8,     106},
{SV_REPEAT_AB,          OSD_MSG_SLT_AB,         107,   201},
{SV_REPEAT_TRACK,       OSD_MSG_SLT_TRACK,      202,   313},
{SV_REPEAT_ALL,         OSD_MSG_SLT_ALL,        314,   459}
};


code S_SLT_MENU_INDEX  _rSltRepeatDvd[] ={
OSD_MSG_SLT_REPEAT,
_rSltRepeatItemDvd, 
TBL_SIZE(_rSltRepeatItemDvd), 
vRepeatMenuInit, 
vRepeatMenuState,
vRepeatMenuExit
};

code S_SLT_MENU_INDEX  _rSltRepeatVcd[] ={
OSD_MSG_SLT_REPEAT,
_rSltRepeatItemVcd, 
TBL_SIZE(_rSltRepeatItemVcd), 
vRepeatMenuInit, 
vRepeatMenuState,
vRepeatMenuExit
};

code S_SLT_MENU_INDEX  _rSltRepeatCdda[] ={
OSD_MSG_SLT_REPEAT,
_rSltRepeatItemVcd, 
TBL_SIZE(_rSltRepeatItemVcd), 
vRepeatMenuInit, 
vRepeatMenuState,
vRepeatMenuExit
};

code S_SLT_MENU_INDEX  *_rSltMenu[SLT_MENU_NS] ={
&_rSltRepeatDvd,  
&_rSltRepeatVcd,   
&_rSltRepeatCdda
};

#define bSltItemCmd(bMenu, bItem)    ((_rSltMenu[bMenu]->prItem)[bItem].bItemCmd)
#define wSltItemMsg(bMenu, bItem)    ((_rSltMenu[bMenu]->prItem)[bItem].pwItemMsg)
#define wSltItemStartX(bMenu, bItem) ((_rSltMenu[bMenu]->prItem)[bItem].wStartX)
#define wSltItemEndY(bMenu, bItem)   ((_rSltMenu[bMenu]->prItem)[bItem].wEndX)
//*********************************************************************
// function relate define
//**********************************************************************
#define SLT_FUN_NULL        0x00
#define SLT_RET_FALSE       0x00
#define SLT_RET_SUCCESS     0x01

#define SLT_ERR_NONE                0x00
#define SLT_ERR_INVALID_OPERATION   0x01
#define SLT_ERR_REPEAT_OPERATION    0x02
#endif

⌨️ 快捷键说明

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