📄 stpmain.c
字号:
else if (cLevel != 0)
{
cLevel = bHEXToBCD(cLevel);
pbStr[12] = fgPlus ? '+' : '-' ;
pbStr[13] = BCD_HI(cLevel) + '0';
pbStr[14] = BCD_LO(cLevel) + '0';
}
for(i=0; i<cPos/2; i++)
pbStr[i+1] = ICON_VOL_1;//6;
if (cPos%2)
{
pbStr[i+1] = ICON_VOL_2;//7;
i ++;
}
for(; i<10; i++)
{
pbStr[i+1] = ICON_VOL_0;//5;
}
pbStr[11] = ' ';
vSetItemPos(_bEntry, _rMenuRoot.prMenu[_bMenu]->bTotalEntry);
vSetMsgCol4(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_YELLOW);
vPasteMsgStr(WB_SETUP_ITEM, _rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wEntryMsg, pbStr);
break;
case ENTRY_TYPE_EDITBOX:
case ENTRY_TYPE_EDITBOX_ORDERED:
vSetItemPos(_bEntry, _rMenuRoot.prMenu[_bMenu]->bTotalEntry);
vSetMsgCol4(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_BLACK);
vSetupEntryShow(prEntry->wEntryMsg, WB_SETUP_ITEM);
_wStartX = STP_DATA_START_X;
_wEndX = STP_DATA_START_X + prEntry->wMaxOpt * 20;
vCreateButton(WB_SETUP_ITEM, DATA_BTN_BASE+_bEntry, 3);
if (_bEntry == 1)
vSetBtnCol(WB_SETUP_ITEM, ENTRY_COL_YELLOW, ENTRY_COL_DARKGRAY, ENTRY_COL_BLACK, ENTRY_COL_WHITE);
else
vSetBtnCol(WB_SETUP_ITEM, ENTRY_COL_DARKGRAY, ENTRY_COL_YELLOW, ENTRY_COL_BLACK, ENTRY_COL_WHITE);
vSelButton(WB_SETUP_ITEM, DATA_BTN_BASE+_bEntry);
break;
case ENTRY_TYPE_STATIC:
pbStr[0] = 11;
pbStr[3] = pbStr[6] = pbStr[9] = '.';
for(i=0; i<4; i++)
{
pbStr[3*i+1] = bDigToAsc(BCD_HI(bSharedInfo(prEntry->wSIPos + i)));
pbStr[3*i+2] = bDigToAsc(BCD_LO(bSharedInfo(prEntry->wSIPos + i)));
}
_wStartX = DIALOG_X + DIALOG_START_X;
_wStartY = STP_MENU_START_Y + STP_MENU_ENTRY_H * (_bEntry - 1) + 15,
vSetMsgCol4(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_GRAY, 3);
vOsdMsgPaste(WB_SETUP_ITEM, prEntry->wEntryMsg);
_wStartX = DIALOG_X + DIALOG_START_X + 200;
vOsdShowStr(WB_SETUP_ITEM, pbStr);
break;
case ENTRY_TYPE_CNUM:
pbStr[0] = 1;
pbStr[1] = '0' + bEepromReadByte(REGION_CODE_POSITION);
_wStartX = DIALOG_X + DIALOG_START_X;
_wStartY = STP_MENU_START_Y + STP_MENU_ENTRY_H * (_bEntry - 1) + 15,
vSetMsgCol4(WB_SETUP_ITEM, ENTRY_COL_GRAY, ENTRY_COL_GRAY, ENTRY_COL_GRAY, 3);
vOsdMsgPaste(WB_SETUP_ITEM, prEntry->wEntryMsg);
_wStartX = DIALOG_X + DIALOG_START_X + 268;
vOsdShowStr(WB_SETUP_ITEM, pbStr);
_wStartX -= 64;
#ifndef HILI_USE_OSD
vShowWbHiliXY(WB_SETUP_ITEM, HL_2,
_wStartX, _wStartY, _wStartX + 150, _wStartY + 30);
vSetHLRng(HL_2, WB_SETUP_ITEM);
vShowHL(HL_2);
#endif
break;
}
}
static BOOL fgProcCtrl(BYTE bCtrlType, sEntry *prEntry, BOOL fgInc) large
{
BYTE bTemp;
WORD wEEPos, wSIPos;
if(prEntry == NULL)
return FALSE;
wEEPos = prEntry->wEEPos;
wSIPos = prEntry->wSIPos;
switch (bCtrlType)
{
case TYPE_USER_1:
if (fgInc == TRUE)
{
if (_bDataCur /*bEepromReadByte(DRNG_POS)*/ < 8) //[runma] -> _bDataCur
{
//fgEepromWriteByte(DRNG_POS, bEepromReadByte(DRNG_POS) + 1); //[runma] del line, do we need to write for every ctrlmove?
_bDataCur ++; //[runma] add line.
}
else
{
return FALSE;
}
}
else
{
if (_bDataCur /*bEepromReadByte(DRNG_POS)*/ > 0) //[runma] -> _bDataCur
{
//fgEepromWriteByte(DRNG_POS, bEepromReadByte(DRNG_POS)-1); //[runma] del line.
_bDataCur --; //[runma] add line.
}
else
{
return FALSE;
}
}
fgEepromWriteByte(wEEPos, _bDataCur);
break;
#ifdef PLAYER_KARAOKE
case ENTRY_TYPE_V_SLIDER:
//[runma] modify block.
_bDataPrev = _bDataCur;
if (fgInc)
{
if(_bDataCur<prEntry->wMaxOpt)
_bDataCur= _bDataCur+1;
}
else
{
if(_bDataCur>0)
_bDataCur=_bDataCur-1;
}
fgEepromWriteByte(wEEPos, _bDataCur);
if(wSIPos != NULL_SI)
{
vSetSharedInfo(wSIPos, _bDataCur);
}
//vShowEntryValue(prEntry);
//[runma] end of block
break;
#endif
case ENTRY_TYPE_GROUPBUTTON:
if (fgInc == FALSE)
{
_bDataPrev = _bDataCur;
if (_bDataCur > 0)
{
_bDataCur--;
}
else
{
#if 1
return FALSE;
#else
_bDataCur = bOptMaxEntryNum(_rMenuRoot, _bMenu, _bEntry);
#endif
}
}
else
{
_bDataPrev = _bDataCur;
_bDataCur++;
if (_bDataCur == (bOptMaxEntryNum(_rMenuRoot, _bMenu, _bEntry) + 1))
{
#if 0
_bDataCur = 0;
#else
_bDataCur = bOptMaxEntryNum(_rMenuRoot, _bMenu, _bEntry);
return (TRUE);
#endif
}
}
break;
case ENTRY_TYPE_H_SLIDER_SIGNED:
if (fgInc)
{
if ((char) _bDataCur < (char) prEntry->wMaxOpt)
{
_bDataPrev = _bDataCur;
_bDataCur++;
fgEepromWriteByte(wEEPos, (char)_bDataCur);
if(wSIPos != NULL_SI)
{
vSetSharedInfo(wSIPos, (char)_bDataCur);
}
}
}
else
{
if ((char)_bDataCur > (char) (0 - prEntry->wMaxOpt))
{
_bDataPrev = _bDataCur;
((char)_bDataCur)--;
fgEepromWriteByte(wEEPos, (char) _bDataCur);
if(wSIPos != NULL_SI)
{
vSetSharedInfo(wSIPos, (char)_bDataCur);
}
}
}
break;
}
vSetADsp(TRUE);
}
//static void vItemValueCtrl(sEntry *prSpkItem, BOOL fgIfInc) large
//{
// BYTE bOpt;
//
//
// bOpt = bGetOptFromEeprom(prSpkItem);
// if(fgIfInc)
// {
// if(bOpt < prSpkItem->wMaxOpt)
// bOpt++;
// }
// else
// {
// if(bOpt > 0)
// bOpt--;
// }
// fgEepromWriteByte(prSpkItem->wEEPos, bOpt);
// if(prSpkItem->wSIPos != NULL_SI)
// {
// vSetSharedInfo(prSpkItem->wSIPos, bOpt);
// }
//
// vSetADsp(TRUE);
//}
static BOOL fgDataPrev(sEntry *prEntry) large
{
WORD wType;
wType = prEntry->wType;
switch(wType)
{
case TYPE_USER_1:
fgProcCtrl(TYPE_USER_1, prEntry, TRUE);
vCtrlMove(TYPE_USER_1, _bEntry);
break;
#ifdef PLAYER_KARAOKE
case ENTRY_TYPE_V_SLIDER:
fgProcCtrl(wType, prEntry, TRUE); //[runma] FALSE);->true(inc)
vCtrlDraw(wType, _bEntry);
break;
#endif
case ENTRY_TYPE_GROUPBUTTON:
//case TYPE_SPK_CONFIG:
fgProcCtrl(wType, prEntry, FALSE);
vCtrlMove(wType, _bEntry);
break;
//case ENTRY_TYPE_NUM:
//case ENTRY_TYPE_H_SLIDER:
case ENTRY_TYPE_H_SLIDER_SIGNED:
fgProcCtrl(wType, prEntry, FALSE);
vCtrlDraw(wType, _bEntry);
break;
case ENTRY_TYPE_STATIC:
break;
}
return TRUE;
}
static BOOL fgDataNext(sEntry *prEntry) large
{
WORD wType;
wType = prEntry->wType;
switch(wType)
{
case TYPE_USER_1:
fgProcCtrl(TYPE_USER_1, prEntry, FALSE);
vCtrlMove(TYPE_USER_1, _bEntry);
break;
#ifdef PLAYER_KARAOKE
case ENTRY_TYPE_NUM:
case ENTRY_TYPE_V_SLIDER:
fgProcCtrl(wType, prEntry, FALSE); //[runma] TRUE);->FALSE (dec)
vCtrlDraw(wType, _bEntry);
break;
#endif
case ENTRY_TYPE_GROUPBUTTON:
//case TYPE_SPK_CONFIG:
fgProcCtrl(wType, prEntry, TRUE);
vCtrlMove(wType, _bEntry);
break;
//case ENTRY_TYPE_H_SLIDER:
case ENTRY_TYPE_H_SLIDER_SIGNED:
fgProcCtrl(wType, prEntry, TRUE);
vCtrlDraw(wType, _bEntry);
break;
//case ENTRY_TYPE_NUM:
// fgProcCtrl(wType, prEntry, FALSE); //[runma] TRUE);->FALSE (dec)
// vCtrlDraw(wType, _bEntry);
// break;
}
return TRUE;
}
void vCtrlAct(void) large
{
BYTE bCtrlType = _rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wType;
WORD wH;
sEntry *prEntry = _rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]; //[runma] add line.
BYTE bOffset, bIndex,bOptNum; //[runma] add line;
bIndex = _bEntry; //[runma] add line.
switch(bCtrlType)
{
//[runma] add block for testing, to change color when item to option, option to item.
//case TYPE_SPK_CONFIG:
// vSetSpkConfigPos(1);
// vChgColRep(WB_SETUP_ITEM, OPT_SEL_CLR, OPT_CURR_CLR);
// vSetSpkConfigPos(_bDataCur);
// break;
//[runma] end of block
case ENTRY_TYPE_GROUPBUTTON:
// case TYPE_GROUPBUTTON:
//[runma] add block which is copied from draw ctrl.
bOptNum = prEntry->wMaxOpt;
if ((bOptNum+1) > _rMenuRoot.bEntryNo) //[runma] add word +1
{
fgCalDataShowRange(prEntry->wMaxOpt+1, _rMenuRoot.bEntryNo); //[runma] add word +1
bOptNum = _rMenuRoot.bEntryNo - 1;
bOffset = bIndex - _bMinShowData;
}
else
{
_bMinShowDat = 0;
bOffset = 0;
if ((bIndex + bOptNum - _bMinShowData) >= _rMenuRoot.bEntryNo)
{
bOffset = bIndex + bOptNum - _bMinShowData - _rMenuRoot.bEntryNo + 1;
}
/* temp solution for item number bigger then _rMenuRoot.bEntryNo */
if (bOptNum == _rMenuRoot.bEntryNo)
{
bOffset = bIndex + bOptNum - _bMinShowData - _rMenuRoot.bEntryNo;
}
}
//[runma] end of copy.
vSetDataPos(_bDataSel-_bMinShowDat, bOffset); //0); [runma] 0->bOffset, add word- _bMinShowDat
vChgColRep(WB_SETUP_ITEM, OPT_NONE_CLR, OPT_CURR_CLR); //[runma] add line
vChgColRep(WB_SETUP_ITEM, OPT_SEL_CLR, OPT_CURR_CLR); //[runma] add line.
// vGrpButtonActivate(WB_SETUP_ITEM, DATA_BTN_BASE + _bDataSel , BTN_STYLE_HILIGHT);
break;
// case TYPE_SCR:
//case ENTRY_TYPE_H_SLIDER:
case ENTRY_TYPE_H_SLIDER_SIGNED:
#if 0
wH = ((WORD)bOptMaxEntryNum(_rMenuRoot, _bMenu, _bEntry)) << 2;
_wStartX = STP_DATA_START_X;
_wEndX = _wStartX + H_SLIDER_WIDTH;
_wStartY = SETUP_ITEM_END_Y - 100 - (wH * 2);
_wEndY = _wStartY + wH * 2;
#endif
vCalSliderPos(_bEntry);
_wStartX += SETUP_ITEM_START_X;
_wStartY += SETUP_ITEM_START_Y;
_wEndX += SETUP_ITEM_START_X;
_wEndY += SETUP_ITEM_START_Y;
vChgColRng(WB_SETUP_ITEM);
vChgColEn();
break;
}
}
#if 0
static void vCtrlDeact(void) large
{
BYTE bCtrlType = _rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wType;
switch(bCtrlType)
{
case ENTRY_TYPE_GROUPBUTTON:
// case TYPE_GROUPBUTTON:
vGrpButtonDeactivate(WB_SETUP_ITEM, DATA_BTN_BASE + _bDataSel , BTN_STYLE_HILIGHT);
if (_bDataCur != _bDataSel)
{
vGrpButtonDeactivate(WB_SETUP_ITEM, DATA_BTN_BASE + _bDataCur , BTN_STYLE_NORMAL);
}
break;
// case TYPE_SCR:
//case ENTRY_TYPE_H_SLIDER:
case ENTRY_TYPE_H_SLIDER_SIGNED:
vChgColDis();
break;
}
}
#endif
BYTE bEntryToOption(sMenu *prMenu) large
{
BYTE bType = prMenu->bType;
// BYTE bEntry = bGetTrueItem(_bEntry);
//if ((bType == PAGE_TYPE_MAINMENU) || (bType == PAGE_TYPE_SUBMENU) || (_bOsdState == STPSTT_OPTION))
//if ((bType == PAGE_TYPE_SUBMENU) || (_bOsdState == STPSTT_OPTION))
if ((_bOsdState == STPSTT_SUBMENU) || (_bOsdState == STPSTT_OPTION))
{
return VK_NONE;
}
/*
if ((bType == PAGE_TYPE_SUBMENU) || (bType == PAGE_NML) || (bType == PAGE_TXT) ||
((bType == PAGE_COM) && (_bEntry < prMenu->bFirst)))
*/
if ( (bType == PAGE_NML))// || (bType == PAGE_TXT))
{
//bType = prMenu->prEntry[_bEntry-1]->wType;
bType = prMenu->prEntry[_bEntry-1]->wType;
if ((bType == ENTRY_TYPE_DIALOG)||(bType == ENTRY_TYPE_SUBMENU)) //r add || ..== entry_..submenu..
{
return VK_CHANGE_PAGE;
}
//else if ((bType != TYPE_PAGE) && (bType != TYPE_CLOSE) && (bType != ENTRY_TYPE_MENU))
else if (bType != TYPE_CLOSE)
{
// set sel color for entry.
//vSetItemPos(_bEntry, _rMenuRoot.prMenu[_bMenu]->bTotalEntry); //r
//vChgColRep(WB_SETUP_ITEM, OPT_CURR_CLR, OPT_SEL_CLR ); //r
// fail.
_bOsdState = STPSTT_OPTION;
if (bType == TYPE_USER_1)
{
vShowDynMsg();
}
//vSetHLCol(HL_1, HL1_SEL_COL);
//vSetHLCol(HL_2, HL1_SEL_COL);
//if(prMenu->prEntry[_bEntry-1]->wEEPos)
if(prMenu->prEntry[_bEntry-1]->wEEPos)
{
//_bDataSel = bGetOptFromEeprom(prMenu->prEntry[_bEntry-1]);
_bDataSel = bGetOptFromEeprom(prMenu->prEntry[_bEntry-1]);
}
else
{
_bDataSel = 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -