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

📄 stpmenu1.h

📁 MTK 1389E SOURCE CODE
💻 H
📖 第 1 页 / 共 5 页
字号:
  ENTRY_TYPE_EDITBOX,
  ENTRY_TYPE_GROUPBUTTON,
  //ENTRY_TYPE_H_SLIDER,
  ENTRY_TYPE_V_SLIDER,
  ENTRY_TYPE_H_SLIDER_SIGNED,
#ifdef PLAYER_51_CHANNEL
  TYPE_SPK_CONFIG,
#endif  
  TYPE_CLOSE,
  ENTRY_TYPE_STATIC,
  //ENTRY_TYPE_CODE,
//  ENTRY_TYPE_TEXT,
#ifdef PLAYER_51_CHANNEL
  ENTRY_TYPE_NUM,
#endif
  ENTRY_TYPE_CNUM,
  ENTRY_TYPE_NULL,
  TYPE_USER_1
};

enum
{
  MENU_TXT,
  MENU_BMP
};


// - Page Order
enum
{
  /* 00 */ MAIN_PAGE,
  /* 01 */ GENERAL_PAGE,
  /* 02 */ SPEAKER_PAGE,
  /* 03 */ DD_PAGE,
  /* 04 */ PRE_PAGE,
#ifdef ENABLE_USER_LANG_CODE
  /* 05 */ LANG_PAGE,
#endif  
  /* 06 */ VDO_PAGE,
#if (defined(PLAYER_KARAOKE) || \
     (defined(USE_EXTERNAL_KARAOKE) && defined(MANUAL_MIC_ON_OFF)))
  /* 07 */ KOK_PAGE,
#endif
#ifdef PLAYER_KARAOKE
  /* 08 */ MIC_PAGE,
#endif
  
#if (defined(PTL_PWD_MODE_SW) || defined(SET_PTL_NEED_PWD))
  /* 09 */ PASS_PAGE,
#endif
  /* 10 */ PASS_CHG_PAGE,
  /* 11 */ PASS_CON_PAGE,
  /* 12 */ VER_PAGE,
  /* 13 */ BRIGHTNESS_PAGE,
  /* 14 */ CONTRAST_PAGE,  
#ifdef PLAYER_51_CHANNEL
  /* 15 */ ADO_PAGE,
  /* 16 */ SPDIF_PAGE,
#endif
  /* 17 */ MAX_PAGE
};

#define EXIT_PAGE (MAX_PAGE + 1)     // dummy page

///////////////////////////////////////////////////////////////////////////////
// Setup Menu Struct

typedef struct sData
{
  WORD wEntryMsg;
  WORD wMsgMsg;
  WORD wValMsg;
  BYTE bVal;
} sData;

typedef struct sEntry
{
  WORD wType;
  WORD wBmpIdx;
  WORD wEntryMsg;
  WORD wMsgMsg;
  WORD wEEPos;           // store in see entry or Page Number
  WORD wSIPos;         // send to RISC share info update entry
  WORD wMaxOpt;
  WORD wDefault;        // default value when reset
  sData **prData;
  BYTE (code *bFun)(WORD wEEPos, BYTE bValue) large;
} sEntry;

typedef struct sMenu
{
  BYTE bType;
  WORD wHdrMsg;
  WORD wMsgMsg;
  BYTE bTotalEntry;
  sEntry **prEntry;
  BYTE bMenuType; //void *vFun;           // per page draw function
  BYTE bInvType; //void *vInvaFun;       // invalid entry function
} sMenu;

typedef struct sMenuRoot
{
  BYTE wType;
  sMenu **prMenu;
  BYTE bEntryNo;
} sMenuRoot;

typedef struct _sDlgParent
{
  BYTE bDlgId;
  BYTE bPage;
  BYTE bEntry;
} sDlgParent;
  
#ifdef SETUP_USE_TAB
typedef struct sTabMsg
{
  WORD wStartX;
  WORD wStartY;
  WORD wMsgIndex;
} sTabMsg;
#endif  
  
///////////////////////////////////////////////////////////////////////////////
// Setup Menu Struct

#define bOptMaxEntryNum(menu, page, entry)  (menu.prMenu[page]->prEntry[entry-1]->wMaxOpt)

//#define NUM_STYLE_CTRL(x)  ((x == ENTRY_TYPE_H_SLIDER) || (x == ENTRY_TYPE_H_SLIDER_SIGNED))
#define NUM_STYLE_CTRL(x)  (x == ENTRY_TYPE_H_SLIDER_SIGNED)


#ifdef _SETUP_C

code void *vUsrFun[] = {vDrawDynRngBtn};

code sEntry _rEntryNull = { ENTRY_TYPE_NULL, NULL_BMP, 0, 0, NULL_EE_ITEM, 0, 0, 0, 0, 0};

code sEntry _rEntryMain = { ENTRY_TYPE_SUBMENU, NULL_BMP, OSD_MSG_MAINPAGE, OSD_MSG_BACK_TO_MAIN_PAGE, MAIN_PAGE, 0, 0, 0, 0, NULL_FUN};

///////////////////////////////////////////////////////////////////////////////
// Main Page

#ifdef SETUP_USE_TAB
code sTabMsg _rTabMag[SETUP_TAB_NUM] = 
{
  {SETUP_TAB_MSG_X_1,SETUP_TAB_MSG_Y_1,OSD_MSG_GENERAL},
  {SETUP_TAB_MSG_X_2,SETUP_TAB_MSG_Y_2,OSD_MSG_AUDIO_SETTING},
  {SETUP_TAB_MSG_X_3,SETUP_TAB_MSG_Y_3,OSD_MSG_DOLBY},
  {SETUP_TAB_MSG_X_4,SETUP_TAB_MSG_Y_4,OSD_MSG_VIDEO},
  {SETUP_TAB_MSG_X_5,SETUP_TAB_MSG_Y_5,OSD_MSG_PREFERENCE}
};
#endif

code sEntry _rEntryDD = { ENTRY_TYPE_SUBMENU, 
                        #ifdef SETUP_USE_TAB
                          NULL_BMP,
                        #else  
                          BMP_STPMN_DOLBY_ON,
                        #endif  
                          OSD_MSG_DOLBY_DIGITAL, OSD_MSG_GOTO_DOLBY_DIGITAL, DD_PAGE,  0, 0, 0, 0, NULL_FUN};
code sEntry _rEntryGeneral = { ENTRY_TYPE_SUBMENU, 
                               #ifdef SETUP_USE_TAB
                                NULL_BMP,
                               #else  
                                BMP_STPMN_GR_ON,
                               #endif   
                               OSD_MSG_GENERAL_SETUP, OSD_MSG_GOTO_GENERAL_SETUP, GENERAL_PAGE,  0, 0, 0, 0, NULL_FUN};
code sEntry _rEntryVdo = { ENTRY_TYPE_SUBMENU, 
                           #ifdef SETUP_USE_TAB
                            NULL_BMP,
                           #else  
                             BMP_STPMN_VDO_ON,
                           #endif   
                           OSD_MSG_VIDEO_SETUP, OSD_MSG_GOTO_VDO_PAGE, VDO_PAGE, 0, 0, 0, 0, NULL_FUN};
code sEntry _rEntrySpk = { ENTRY_TYPE_SUBMENU, 
                         #ifdef SETUP_USE_TAB
                           NULL_BMP,
                         #else
                           BMP_STPMN_ADO_ON, 
                         #endif
                           OSD_MSG_AUDIO_SETUP, OSD_MSG_GOTO_SPEAKER, SPEAKER_PAGE,  0, 0, 0, 0, NULL_FUN};
code sEntry _rEntryPre = { ENTRY_TYPE_SUBMENU, 
                           #ifdef SETUP_USE_TAB
                           NULL_BMP,
                           #else
                           BMP_STPMN_PR_ON, 
                           #endif
                           OSD_MSG_PREFERENC_PAGE, OSD_MSG_GOTO_PREFERENCE, PRE_PAGE, 0, 0, 0, 0, NULL_FUN};

code sData _rOptSpOff = {OSD_MSG_SPDIF_OFF, OSD_MSG_SPDIF_OUTPUT_OFF, OSD_MSG_EMPTY, EV_AO_OFF};
code sData _rOptSpRaw = {OSD_MSG_SPDIF_RAW, OSD_MSG_RAW_DATA, OSD_MSG_EMPTY, EV_RAW};
code sData _rOptSpPcm = {OSD_MSG_SPDIF_PCM, OSD_MSG_PCM_DATA, OSD_MSG_EMPTY, EV_PCM};
code sData *_prDataSpdifGlobal[] = {&_rOptSpOff, &_rOptSpRaw, &_rOptSpPcm };
code sEntry _rEntrySpdifGlobal = { ENTRY_TYPE_GROUPBUTTON, NULL_BMP, OSD_MSG_SPDIFOUTPUT, OSD_MSG_SETUPSPDIF,
                                 IEC958_POSITION, NULL_SI, TBL_SIZE(_prDataSpdifGlobal) - 1,
                                 EV_RAW, _prDataSpdifGlobal, bIecConfig};
                                 // Global SPDIF
#ifdef PLAYER_51_CHANNEL                                 
#ifdef SPDIF_PCM_FREQ_SELECT
// IEC Max Frequency
#ifdef MLP_CERTIFICATION
code sData _rOptIec04k = {OSD_MSG_04K, OSD_MSG_04K, OSD_MSG_EMPTY, EV_04K};
code sData _rOptIec16k = {OSD_MSG_16K, OSD_MSG_16K, OSD_MSG_EMPTY, EV_16K};
#else
code sData _rOptIec48k = {OSD_MSG_48K, OSD_MSG_48K, OSD_MSG_48K, EV_48K};
code sData _rOptIec96k = {OSD_MSG_96K, OSD_MSG_96K, OSD_MSG_96K, EV_96K};
#endif
#ifdef SUPPORT_DVD_AUDIO
code sData _rOptIec192k = {OSD_MSG_192K, OSD_MSG_192K, OSD_MSG_192K, EV_192K};
#endif

code sData *_prDataIecMax[] = {
#ifdef MLP_CERTIFICATION
                                &_rOptIec04k, &_rOptIec16k,
#else
                                &_rOptIec48k, &_rOptIec96k,
#endif
#ifdef SUPPORT_DVD_AUDIO
                                &_rOptIec192k
#endif
                               };
                           
                                 
code sEntry *_prEntrySpdif[] = {&_rEntrySpdifGlobal, 

#ifndef MTK_MENU
                              &_rEntryNull, &_rEntryToAudio
#endif
                              };
                              
code sMenu _rPageSpdif = {PAGE_NML,
                          OSD_MSG_SPDIF_SETUP_PAGE, OSD_MSG_GOTO_SPDIF, TBL_SIZE(_prEntrySpdif),
                          _prEntrySpdif, NULL_FUN, CHK_SPDIF};

                              
code sEntry _rEntryToAudio = { ENTRY_TYPE_SUBMENU, 
                           #ifdef SETUP_USE_TAB
                             NULL_BMP,
                           #else
                             BMP_STPMN_ADO_ON, 
                           #endif
                             OSD_MSG_TO_AUDIO_SETUP, OSD_MSG_GOTO_ADO_SETUP, ADO_PAGE,  0, 0, 0, 0, NULL_FUN};

#if 1//ndef SIMPLE_SPDIF_CTRL
code sEntry _rEntrySpdif = { ENTRY_TYPE_SUBMENU, NULL_BMP, OSD_MSG_SPDIF_SETUP, OSD_MSG_GOTO_SPDIF, SPDIF_PAGE,  0, 0, 0, 0, NULL_FUN};
#endif
#if (defined(PLAYER_KARAOKE) || \
     (defined(USE_EXTERNAL_KARAOKE) && defined(MANUAL_MIC_ON_OFF)))
code sEntry _rEntryKok = { ENTRY_TYPE_SUBMENU, NULL_BMP, OSD_MSG_KOK_SETUP, OSD_MSG_GOTO_KOK_PAGE, KOK_PAGE, 0, 0, 0, 0, NULL_FUN};
#endif


code sEntry *_prEntryAdo[] = {
                            &_rEntrySpk, 
#if 1//ndef SIMPLE_SPDIF_CTRL
                            &_rEntrySpdif, 
#endif
 #if (defined(PLAYER_KARAOKE) || \
     (defined(USE_EXTERNAL_KARAOKE) && defined(MANUAL_MIC_ON_OFF)))
                            &_rEntryKok,
#endif
                            

#ifdef PLAYER_TRIM
                            &_rEntryTrim,
#endif
#ifdef PLAYER_SURROUND
                            &_rEntryEq, &_rEntry3D,
#endif
#ifdef PLAYER_SEQ
                            &_rEntrySEQ,
#endif
#if (defined(HDCD_CERTIFICATION) || defined(HDCD_EN))
                            //&_rEntryHdcd,
#endif
#ifndef MTK_MENU
                            &_rEntryNull, &_rEntryMain
#endif
                            };
#endif

code sEntry *_prEntryMain[] = { &_rEntryGeneral, 
#if 1//def                                 
                                &_rEntryToAudio,
#else
                                &_rEntrySpk, 
#endif                                
                                &_rEntryDD, &_rEntryVdo, &_rEntryPre  };
#else

code sEntry *_prEntryMain[] = { &_rEntryGeneral, &_rEntrySpk, &_rEntryDD, &_rEntryVdo, &_rEntryPre  };

#endif
code sMenu _rPageMain = {PAGE_TYPE_MAINMENU,
                         OSD_MSG_SETUP_MENU, OSD_MSG_SETUP_MENU_D, TBL_SIZE(_prEntryMain),
                         _prEntryMain, NULL_FUN, CHK_MAIN};

///////////////////////////////////////////////////////////////////////////////
// Password Page

#if (defined(PTL_PWD_MODE_SW) || defined(SET_PTL_NEED_PWD))
// - Password Switch
code sData _rOptPassOn = {OSD_MSG_ON, OSD_MSG_ON, OSD_MSG_ON, EV_ON};
code sData _rOptPassOff = {OSD_MSG_OFF, OSD_MSG_OFF, OSD_MSG_OFF, EV_OFF};

code sData *_prDataPass[] = {&_rOptPassOn, &_rOptPassOff};
code sEntry _rEntryPass = { ENTRY_TYPE_GROUPBUTTON, NULL_BMP, OSD_MSG_PASSWORD_MODE, OSD_MSG_PASSWORD_MODE,
                         PASS_SW_POSITION, NULL_SI, TBL_SIZE(_prDataPass) - 1, EV_ON, _prDataPass, bPassSwitch};

// - Change Password
code sData _rOptPassChange = {OSD_MSG_PASS_CHANGE, OSD_MSG_CHANGE_PASSWORD, OSD_MSG_EMPTY, 0};
code sData *_prDataPassChange[] = {&_rOptPassChange};
code sEntry _rEntryPassCh = { ENTRY_TYPE_GROUPBUTTON, NULL_BMP, OSD_MSG_PASSWORD_CHANGE, OSD_MSG_CHANGE_PASSWORD,
                            NULL_EE_ITEM, NULL_SI, 0, 0, _prDataPassChange, bChangePass};

// - Password Page Definition

code sEntry *_prEntryPass[] = { 

⌨️ 快捷键说明

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