📄 stpmain.c
字号:
#endif
static void vEnVerMenu(void) large
{
if ((_bMenu == GENERAL_PAGE) && (_bEnVerIdx != 0x0F))
{
if ((_bEnVerIdx < sizeof(_pbEnVerMenu)/sizeof(BYTE)) && (_bIRKey == _pbEnVerMenu[_bEnVerIdx]))
{
_bEnVerIdx++;
}
else
{
_bEnVerIdx = 0;
}
if (_bEnVerIdx == sizeof(_pbEnVerMenu)/sizeof(BYTE))
{
// _bIRKey = IR_NONE;
_bEnVerIdx = 0x0F;
_bDlgId = DLG_VERSION;
_bOsdState = STPSTT_DIALOG;
_bMenu = VER_PAGE;
vRedrawMenu(ENTRY_FUN_REDRAW);
}
}
#ifdef NO_RS232_PORT //0 for port GPIO9/10
if(_bIRKey == IR_NUM0)
{
WriteBIM(BIM_RISCSSH, 0x15); // Enable RS-232
SetBitBIM(BIM_PCTL2, DSPT);
ClrBitBIM(BIM_PCTL2, RS232P2);
WriteBIM(BIM_PLLS, PS_ANALOG_PIN_CTRL1); ClrBitBIM(BIM_PLLD, UD_GPIO9_EN|LR_GPIO10_EN);
}
if(_bIRKey == IR_NUM2) //1 for port ALAR
{
WriteBIM(BIM_RISCSSH, 0x15); // Enable RS-232
SetBitBIM(BIM_PCTL2, DSPT);
// BIM_RISCSSH
// SetBitBIM(BIM_PCTL2, DSPT);
SetBitBIM(BIM_PCTL2, RS232P2);
WriteBIM(ADAC_OUT_CFG0,ADAC_CONFIG_1_0);SetBitBIM(ADAC_OUT_CFG1,ADAC_AR);
WriteBIM(ADAC_OUT_CFG0,ADAC_CONFIG_1_5);SetBitBIM(ADAC_OUT_CFG1,ADAC_AR);
WriteBIM(ADAC_OUT_CFG0,ADAC_CONFIG_1_8);SetBitBIM(ADAC_OUT_CFG1,ADAC_AR);
// InitIoPIN_GPIO1(0);
WriteBIM(ADAC_OUT_CFG0,ADAC_CONFIG_1_0);SetBitBIM(ADAC_OUT_CFG1,ADAC_AL);
WriteBIM(ADAC_OUT_CFG0,ADAC_CONFIG_1_5);SetBitBIM(ADAC_OUT_CFG1,ADAC_AL);
WriteBIM(ADAC_OUT_CFG0,ADAC_CONFIG_1_8);SetBitBIM(ADAC_OUT_CFG1,ADAC_AL);
// InitIoPIN_GPIO0(0);
}
#endif
}
#ifdef PANEL_FACTORY_SETTING
static void vEnPanelFactoryMenu(void) large
{
if ((_bMenu == GENERAL_PAGE) && (_bEnPanelFactoryIdx != 0x0F))
{
if ((_bEnVerIdx < sizeof(_pbEnPanelFactoryMenu)/sizeof(BYTE)) && (_bIRKey == _pbEnPanelFactoryMenu[_bEnPanelFactoryIdx]))
{
_bEnPanelFactoryIdx++;
}
else
{
_bEnPanelFactoryIdx = 0;
}
if (_bEnPanelFactoryIdx == sizeof(_pbEnPanelFactoryMenu)/sizeof(BYTE))
{
_bEnPanelFactoryIdx = 0x0F;
_bOsdState = STPSTT_SUBMENU;
_bMenu = PANEL_FACTORY_PAGE;//VDO_PQ_PAGE;
vRedrawMenu(ENTRY_FUN_REDRAW);
}
}
}
#endif
static void vEnRegCodeChg(void) large
{
if ((_bMenu == PRE_PAGE) && (_bRegChgIdx != 0x0F))
{
if ((_bRegChgIdx < sizeof(_pbEnRegChg)/sizeof(BYTE)) && (_bIRKey == _pbEnRegChg[_bRegChgIdx]))
{
_bRegChgIdx++;
}
else
{
_bRegChgIdx = 0;
}
}
if ((_bMenu == PRE_PAGE) && (_bRegChgIdx == sizeof(_pbEnRegChg)/sizeof(BYTE)))
{
// _bIRKey = IR_NONE;
_bRegChgIdx = 0x0F;
_bDlgId = DLG_REGCODE;
_bOsdState = STPSTT_DIALOG;
_bMenu = REGCODE_PAGE;
vRedrawMenu(ENTRY_FUN_REDRAW);
}
}
#if 0
void vShowVerPage(void)
{
if ((_bMenu != PASS_PAGE) && (_bShowVerIdx != 0x0F))
{
if ((_bShowVerIdx < sizeof(_ShowVerMenu)/sizeof(BYTE)) && (_bIRKey == _ShowVerMenu[_bShowVerIdx]))
{
_bShowVerIdx++;
}
else
{
_bShowVerIdx = 0;
}
}
#ifdef CHK_PASSWD_VCD_EN
if (_bMenu == PASS_PAGE)
{
if ((_bVcdEnIdx < sizeof(_pbVcdEnPass)/sizeof(BYTE)) && (_bIRKey == _pbVcdEnPass[_bVcdEnIdx]))
{
_bVcdEnIdx++;
}
else
{
_bVcdEnIdx = 0;
}
}
#endif
if ((_bMenu != PASS_PAGE) && (_bShowVerIdx == sizeof(_ShowVerMenu)/sizeof(BYTE)))
{
_bShowVerIdx = 0x0F;
vRedrawMenu(ENTRY_FUN_REDRAW);
}
#ifdef CHK_PASSWD_VCD_EN
if ((_bMenu == PASS_PAGE) && (_bVcdEnIdx == sizeof(_pbVcdEnPass)/sizeof(BYTE)))
{
vClearMsgRng();
if (bEepromReadByte(VCD_PASSWRD_POSITION) == TRUE)
{
fgEepromWriteByte(VCD_PASSWRD_POSITION, FALSE);
//vSetupEntryShowXY(MSG_X, MSG_Y, OSD_MSG_VCD_DISABLE, WB_SETUP_MSG);
vSetupEntryShowXY(MSG_X, MSG_Y, OSD_MSG_ON, WB_SETUP_MSG);
}
else
{
fgEepromWriteByte(VCD_PASSWRD_POSITION, TRUE);
//vSetupEntryShowXY(MSG_X, MSG_Y, OSD_MSG_VCD_ENABLE, WB_SETUP_MSG);
vSetupEntryShowXY(MSG_X, MSG_Y, OSD_MSG_OFF, WB_SETUP_MSG);
}
}
#endif
}
#endif
#if 0
void vClearUpDownMark(void)
{
_wStartX = STP_DATA_START_X+DATA_LEN/2-20;
_wEndX = _wStartX+40;
_wStartY = 5;
_wEndY = 30;
if ((_bMinShowDat > 0) && (_bDataCur > _rMenuRoot.bEntryNo))
{
vRectangle(WB_SETUP_ITEM, 0, 0, 1, ENTRY_COL_BG);
}
_wStartY = 290;
_wEndY = 290+32;
if ((_rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wMaxOpt > _rMenuRoot.bEntryNo) &&
(_bDataCur+_rMenuRoot.bEntryNo < _rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wMaxOpt))
{
vRectangle(WB_SETUP_ITEM, 0, 0, 1, ENTRY_COL_BG);
}
}
#endif
#ifdef ENABLE_USER_LANG_CODE
BYTE bCheckLangCode(WORD wEEPos, BYTE bValue) large
{
BYTE bTmp1, bTmp2;
bTmp1 = bSharedInfo(SH_DLG_VAL_0) * 10 + bSharedInfo(SH_DLG_VAL_1);
bTmp2 = bSharedInfo(SH_DLG_VAL_2) * 10 + bSharedInfo(SH_DLG_VAL_3);
switch(_bDlgId)
{
case DLG_AUDIO_LANG_CODE:
fgEepromWriteByte(AUDIO_LCD_POSITION_0, bTmp1);
fgEepromWriteByte(AUDIO_LCD_POSITION_1, bTmp2);
vSystemPrefAuLang('a'-'A' + bTmp1, 'a'-'A' + bTmp2);
break;
case DLG_MENU_LANG_CODE:
fgEepromWriteByte(MENU_LCD_POSITION_0, bTmp1);
fgEepromWriteByte(MENU_LCD_POSITION_1, bTmp2);
vSystemPrefMenuLang('a'-'A' + bTmp1, 'a'-'A' + bTmp2);
break;
case DLG_SP_LANG_CODE:
fgEepromWriteByte(SP_LCD_POSITION_0, bTmp1);
fgEepromWriteByte(SP_LCD_POSITION_1, bTmp2);
vSystemPrefSpLang('a'-'A' + bTmp1, 'a'-'A' + bTmp2);
break;
}
return RESULT_SUCCESS;
}
/*
void vCheckLangCode(void) large
{
BYTE bTmp1, bTmp2;
sEntry *prEntry = _rMenuRoot.prMenu[LANG_PAGE]->prEntry[OTHER_LANG_RETURN-1];
WORD wEEPos = _rMenuRoot.prMenu[prEntry->wEEPos]->prEntry[prEntry->wDefault]->wEEPos;
vSetSharedInfo(SH_LCD_0 + _bDataCur, _bIRKey);
if (_bDataCur + 1 == _bDataSel)
{
_bDataCur = _bDataSel + 1;
bTmp1 = bSharedInfo(SH_LCD_0) * 10 + bSharedInfo(SH_LCD_0 + 1);
bTmp2 = bSharedInfo(SH_LCD_0 + 2) * 10 + bSharedInfo(SH_LCD_0 + 3);
switch(wEEPos)
{
case AUDIO_LCD_POSITION_0:
case AUDIO_LCD_POSITION_1:
fgEepromWriteByte(AUDIO_LCD_POSITION_0, bTmp1);
fgEepromWriteByte(AUDIO_LCD_POSITION_1, bTmp2);
vSystemPrefAuLang('a'-'A' + bTmp1, 'a'-'A' + bTmp2);
break;
case SP_LCD_POSITION_0:
case SP_LCD_POSITION_1:
fgEepromWriteByte(SP_LCD_POSITION_0, bTmp1);
fgEepromWriteByte(SP_LCD_POSITION_1, bTmp2);
vSystemPrefSpLang('a'-'A' + bTmp1, 'a'-'A' + bTmp2);
break;
case MENU_LCD_POSITION_0:
case MENU_LCD_POSITION_1:
fgEepromWriteByte(MENU_LCD_POSITION_0, bTmp1);
fgEepromWriteByte(MENU_LCD_POSITION_1, bTmp2);
vSystemPrefMenuLang('a'-'A' + bTmp1, 'a'-'A' + bTmp2);
break;
}
_fgNextItem = TRUE;
}
}
*/
#if 0
BOOL fgAddNewLangCode(void) large
{
BYTE pbStr[5];
if ((_bIRKey >= IR_NUM0) && (_bIRKey <= IR_NUM9) && (_bDataSel < 4))
{
switch(_bDataSel)
{
case 0:
_bDataPrev = _bIRKey * 10;
break;
case 1:
_bDataPrev += _bIRKey;
break;
case 2:
_bDataCur = _bIRKey * 10;
break;
case 3:
_bDataCur += _bIRKey;
break;
}
pbStr[0] = 4;
pbStr[1] = pbStr[2] = pbStr[3] = pbStr[4] = ' ';
switch(_bDataSel)
{
case 3: pbStr[4] = (_bDataCur % 10) + '0';
case 2: pbStr[3] = (_bDataCur / 10) + '0';
case 1: pbStr[2] = (_bDataPrev % 10) + '0';
case 0: pbStr[1] = (_bDataPrev / 10) + '0';
}
vOsdShowStrXY(STP_DATA_START_X + 20,
STP_MENU_START_Y + STP_MENU_ENTRY_H * (_bEntry - 1),
WB_SETUP_ITEM, pbStr);
_bDataSel++;
}
if (_bDataSel == 4)
{
vShowSetupMsg(OSD_MSG_ENTER_CONTINUE);
if ((_bIRKey == IR_ENTER) || (_bIRKey == IR_PLAY) || (_bIRKey == IR_PLAY_ENTER) || (_bIRKey == IR_PLAY_PAUSE))
{
_bPrevItem = INVALID_ENTRY;
_bMenu = PRE_PAGE;
_bEntry = 4;
_bDataSel = _bDataCur = 8;
_bDataPrev = 0xFF;
_bOsdState = STPSTT_ENTRY;
vShowMenu(_rMenuRoot.prMenu[_bMenu]);
if (fgIsOsdType2())
{
//vShowMark();
}
}
switch(_bOsdState)
{
case STPSTT_INPUT_AUDIO_LCD:
fgEepromWriteByte(AUDIO_LCD_POSITION_0, _bDataPrev);
fgEepromWriteByte(AUDIO_LCD_POSITION_1, _bDataCur);
vSystemPrefAuLang('a'-'A'+_bDataPrev, 'a'-'A'+_bDataCur);
break;
case STPSTT_INPUT_SP_LCD:
fgEepromWriteByte(SP_LCD_POSITION_0, _bDataPrev);
fgEepromWriteByte(SP_LCD_POSITION_1, _bDataCur);
vSystemPrefSpLang('a'-'A'+_bDataPrev, 'a'-'A'+_bDataCur);
break;
case STPSTT_INPUT_MENU_LCD:
fgEepromWriteByte(MENU_LCD_POSITION_0, _bDataPrev);
fgEepromWriteByte(MENU_LCD_POSITION_1, _bDataCur);
vSystemPrefMenuLang('a'-'A'+_bDataPrev, 'a'-'A'+_bDataCur);
break;
}
}
return TRUE;
}
#endif
#endif
static BOOL fgMainMenuPrev(sMenu *prMenu) large
{
BYTE bPrevPage = _bMenuCur;
BYTE bPrevMenu = _bMainMenu;
vDrawMenuBtn(prMenu, _bMainMenu, FALSE);
do {
_bMainMenu--;
if (_bMainMenu < 1 )
{
#ifdef SETUP_CIRCULAR_ITEM
_bMainMenu = prMenu->bTotalEntry;
#else
_bMainMenu = bPrevMenu;
return (FALSE);
#endif
}
} while(((_wMenuInvalid & (1<<(_bMainMenu-1))) == 0)
||(prMenu->prEntry[_bMainMenu-1]->wType == ENTRY_TYPE_NULL));
#if 0
#ifndef SETUP_CIRCULAR_ITEM
if(_bMainMenu == 1)
{
return(FALSE);
}
#endif
#ifdef SETUP_CIRCULAR_ITEM
if (_bMainMenu == 1)
{
_bMainMenu = prMenu->bTotalEntry;
}
else
#endif
{
_bMainMenu--;
}
while (!(_wMenuInvalid & (0x01<<_bMainMenu-1)) ||
(prMenu->prEntry[_bMainMenu-1]->wType == ENTRY_TYPE_NULL))
{
if(_bMainMenu == 0)
{
break;
}
_bMainMenu --;
}
if ((_bMainMenu == 0) && (bPrevPage == prMenu->bTotalEntry))
{
_bMainMenu = prMenu->bTotalEntry;
}
else if (_bMainMenu == 0)
{
while (!(_wMenuInvalid & (0x01<<_bMainMenu-1)) || (prMenu->prEntry[_bMainMenu-1]->wType == ENTRY_TYPE_NULL))
{
_bMainMenu++;
}
}
#endif
vDrawMenuBtn(prMenu, _bMainMenu, TRUE);
//vGrpButtonActivate(WB_SETUP_HEAD, _bMainMenu + 20, BTN_STYLE_HILIGHT);
_bMenu = prMenu->prEntry[_bMainMenu-1]->wEEPos;
_bEntry = 1;
//r if (_rMenuRoot.prMenu[_bMenu]->bType == PAGE_NML) //[runma]TYPE_SUBMENU)->nml
//r _bOsdState = STPSTT_SUBMENU;
//r else
//r _bOsdState = STPSTT_MAINMENU;
_bOsdState = STPSTT_MAINMENU; //r
return (TRUE);
}
static BOOL fgMainMenuNext(sMenu *prMenu) large
{
BYTE bPrevMenu;
bPrevMenu = _bMainMenu;
vDrawMenuBtn(prMenu, _bMainMenu, FALSE);
//[runma] modify block
do {
_bMainMenu++;
if (_bMainMenu > prMenu->bTotalEntry)
{
#ifdef SETUP_CIRCULAR_ITEM
_bMainMenu = 1;
#else
_bMainMenu = bPrevMenu;
return (FALSE);
#endif
}
} while(((_wMenuInvalid & (1<<(_bMainMenu-1))) == 0)
||(prMenu->prEntry[_bMainMenu-1]->wType == ENTRY_TYPE_NULL));
vDrawMenuBtn(prMenu, _bMainMenu, TRUE);
//vGrpButtonActivate(WB_SETUP_HEAD, _bMainMenu + 20, BTN_STYLE_HILIGHT);
_bMenu = prMenu->prEntry[_bMainMenu-1]->wEEPos;
_bEntry = 1;
//r if (_rMenuRoot.prMenu[_bMenu]->bType == PAGE_NML) //[runma] PAGE_TYPE_SUBMENU) -> nml
//r _bOsdState = STPSTT_SUBMENU;
//r else
//r _bOsdState = STPSTT_MAINMENU;
_bOsdState = STPSTT_MAINMENU; //r
return TRUE;
}
static void vSetItemPos(BYTE bIndex, BYTE bOffset) large
{
switch(_rMenuRoot.prMenu[_bMenu]->bType)
{
case PAGE_TYPE_V_DIALOG:
_wStartX = DIALOG_X + DIALOG_START_X;
_wEndX = DIALOG_X + DIALOG_W - DIALOG_START_X;
_wStartY = (SETUP_ITEM_H - (bOffset + 2) * DIALOG_LINE_H) / 2 + (bIndex * DIALOG_LINE_H);
_wEndY = _wStartY + DIALOG_LINE_H;
break;
case PAGE_TYPE_H_DIALOG:
_wStartX = (SETUP_ITEM_W - ((bOffset-1) * 2 + 1) * DIALOG_ITEM_W ) / 2 + (bIndex * 2 - 1) * DIALOG_ITEM_W;
_wEndX = _wStartX + DIALOG_ITEM_W;
_wStartY = 32 * 2 + 32;
_wEndY = _wStartY + 100;
break;
default:
_wStartX = STP_ENTRY_START_X;
// _wStartY = STP_MENU_START_Y + STP_MENU_ENTRY_H * (_bEntry + bIndex - _bMinShowData - bOffset);
_wStartY = STP_MENU_START_Y + (WORD) STP_MENU_ENTRY_H * (bIndex - bOffset) + bIndex;
_wEndX = STP_ENTRY_START_X + STP_ENTRY_END_X; //STP_DATA_START_X;[runma] -> item end x.
_wEndY = _wStartY + STP_MENU_ENTRY_H - 1; //[runma] add word -1
break;
}
}
static void vEntryAct(void) large
{
sMenu *prMenu = _rMenuRoot.prMenu[_bMenu];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -