📄 bbktuner.c
字号:
{
vChgColRep(WB_TUNER_MENU, TUNER_MENU_RED44, TUNER_MENU_GRAY43);
vChgColRep(WB_TUNER_MENU, TUNER_MENU_RED42, TUNER_MENU_GRAY43);
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
static void vTnrBrwDataItemHili(BYTE bDataVal, BOOL fgHili) large
{
WORD wStartY;
wStartY = _wItemStY(_eTunerBrwItem) + TUNER_BRW_DATA_SELECT_HEIGHT * bDataVal;
vSetStartEndXY(TUNER_BRW_DATA_AREA_START_X, wStartY,
TUNER_BRW_DATA_AREA_END_X - 1, wStartY + TUNER_BRW_DATA_SELECT_HEIGHT - 1);
if(fgHili)
{
vChgColRep(WB_TUNER_MENU, TUNER_MENU_GRAY43, TUNER_MENU_RED44);
vSetStartEndXY(TUNER_BRW_DATA_AREA_START_X, wStartY,
TUNER_BRW_DATA_AREA_END_X, wStartY + TUNER_BRW_DATA_SELECT_HEIGHT);
vTnrBrwDataItemCorner(bDataVal);
}
else
{
vChgColRep(WB_TUNER_MENU, TUNER_MENU_RED44, TUNER_MENU_GRAY43);
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
static void vTnrBrwArrowHili(BYTE bItemVal, BOOL fgUp, BOOL fgHili) large
{
switch(bItemVal)
{
case TUNER_BRW_ITEM_CHANNEL:
if(fgUp)
{
vSetStartEndXY(TUNER_BRW_ARROW_START_X, TUNER_BRW_CH_UPBMP_START_Y, TUNER_BRW_ARROW_END_X , TUNER_BRW_CH_UPBMP_END_Y);
}
else
{
vSetStartEndXY(TUNER_BRW_ARROW_START_X, TUNER_BRW_CH_DOWNBMP_START_Y, TUNER_BRW_ARROW_END_X , TUNER_BRW_CH_DOWNBMP_END_Y);
}
break;
case TUNER_BRW_ITEM_SAVE:
if(fgUp)
{
vSetStartEndXY(TUNER_BRW_ARROW_START_X, TUNER_BRW_SAVECH_UPBMP_START_Y, TUNER_BRW_ARROW_END_X , TUNER_BRW_SAVECH_UPBMP_END_Y);
}
else
{
vSetStartEndXY(TUNER_BRW_ARROW_START_X, TUNER_BRW_SAVECH_DOWNBMP_START_Y, TUNER_BRW_ARROW_END_X , TUNER_BRW_SAVECH_DOWNBMP_END_Y);
}
break;
default:
break;
}
if(fgHili)
{
vChgColRep(WB_TUNER_MENU, TUNER_MENU_WHITE44, TUNER_MENU_RED44);
}
else
{
vChgColRep(WB_TUNER_MENU, TUNER_MENU_RED44, TUNER_MENU_WHITE44);
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
static void vTnrBrwSignalItemHili(void) large
{
vSetStartEndXY(TUNER_BRW_ITEM_RECT_START_X, _wItemStY(TUNER_BRW_ITEM_SIGNAL),
TUNER_BRW_ITEM_RECT_END_X - 1, _wItemStY(TUNER_BRW_ITEM_SIGNAL) + TUNER_BRW_ITEM_HEIGHT - 1);
if(TUNER_BAND_FM == _eTunerBand)
{
vChgColRep(WB_TUNER_MENU, TUNER_MENU_WHITE43, TUNER_MENU_WHITE42);
}
else
{
vChgColRep(WB_TUNER_MENU, TUNER_MENU_WHITE42, TUNER_MENU_WHITE43);
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
static void vTnrBrwAmstepItemHili(void) large
{
vSetStartEndXY(TUNER_BRW_ITEM_RECT_START_X, _wItemStY(TUNER_BRW_ITEM_AMSTEP),
TUNER_BRW_ITEM_RECT_END_X - 1, _wItemStY(TUNER_BRW_ITEM_AMSTEP) + TUNER_BRW_ITEM_HEIGHT - 1);
if(TUNER_BAND_AM == _eTunerBand)
{
vChgColRep(WB_TUNER_MENU, TUNER_MENU_WHITE43, TUNER_MENU_WHITE42);
}
else
{
vChgColRep(WB_TUNER_MENU, TUNER_MENU_WHITE42, TUNER_MENU_WHITE43);
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
static void vTnrBrwDrawDataInput(BYTE bItemVal, BOOL fgHili) large
{
BYTE bBgCol;
BYTE bBodyCol;
BYTE bNumCol;
BYTE bFillCol;
BYTE i;
BYTE bChStr[6];
BYTE bChTmp;
if(_bStationNo > _bFmAmStationMax)
{
_bStationNo = _bFmAmStationMax;
}
bChTmp = _bStationNo;
bChStr[0] = 1;
bChStr[1] = (bChTmp / 10) + '0';
bChStr[2] = 1;
bChStr[3] = (bChTmp % 10) + '0';
vTnrBrwGetDatCol(fgHili, &bBgCol, &bBodyCol, &bNumCol, &bFillCol);
for(i=0; i<CHANNEL_INPUT_NS; i++)
{
if(i == _eChInput)
{
vSetMsgCol4(WB_TUNER_MENU, bNumCol, bNumCol, bNumCol, bBodyCol);
}
else
{
vSetMsgCol4(WB_TUNER_MENU, bBgCol, bBgCol, bBgCol, bBodyCol);
}
switch(bItemVal)
{
case TUNER_BRW_ITEM_CHANNEL:
if(CHANNEL_INPUT_1 == i)
{
vOsdShowStrXY(TUNER_BRW_DIG1_START_X, TUNER_BRW_CH_DIG_START_Y, WB_TUNER_MENU, bChStr + 0);
}
else if(CHANNEL_INPUT_2 == i)
{
vOsdShowStrXY(TUNER_BRW_DIG2_START_X, TUNER_BRW_CH_DIG_START_Y, WB_TUNER_MENU, bChStr + 2);
}
break;
case TUNER_BRW_ITEM_SAVE:
if(CHANNEL_INPUT_1 == i)
{
vOsdShowStrXY(TUNER_BRW_DIG1_START_X, TUNER_BRW_SAVECH_DIG_START_Y, WB_TUNER_MENU, bChStr + 0);
}
else if(CHANNEL_INPUT_2 == i)
{
vOsdShowStrXY(TUNER_BRW_DIG2_START_X, TUNER_BRW_SAVECH_DIG_START_Y, WB_TUNER_MENU, bChStr + 2);
}
break;
default:
break;
}
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
static void vTnrBrwDrawDataFreq(WORD wFreqTmp, BOOL fgHili) large
{
BYTE bBgCol;
BYTE bBodyCol;
BYTE bNumCol;
BYTE bFillCol;
BYTE bChStr[6];
vTnrBrwGetDatCol(fgHili, &bBgCol, &bBodyCol, &bNumCol, &bFillCol);
if(TUNER_BRW_ITEM_SAVE != _eTunerBrwItem)
{
return;
}
vSetMsgCol4(WB_TUNER_MENU, bFillCol, bFillCol, bFillCol, bBodyCol);
vTnrGetFreqStr(wFreqTmp, bChStr);
/*Clear first!*/
vSetStartEndXY(TUNER_BRW_SAVECH_MSG_START_X, TUNER_BRW_SAVECH_MSG_START_Y,
TUNER_BRW_DATA_SAVECH_END_X , TUNER_BRW_SAVECH_MSG_END_Y);
vRectangle(WB_TUNER_MENU, 0, 0, TRUE, bFillCol);
if(TUNER_BAND_FM == _eTunerBand)
{
if(5 == bChStr[0])
{
vOsdShowArg(WB_TUNER_MENU, OSD_MSG_TUNER_SAVEFM5, OSD_NO_DISAPPEAR, bChStr);
}
else
{
vOsdShowArg(WB_TUNER_MENU, OSD_MSG_TUNER_SAVEFM4, OSD_NO_DISAPPEAR, bChStr);
}
}
else if(TUNER_BAND_AM == _eTunerBand)
{
if(4 == bChStr[0])
{
vOsdShowArg(WB_TUNER_MENU, OSD_MSG_TUNER_SAVEAM4, OSD_NO_DISAPPEAR, bChStr);
}
else
{
vOsdShowArg(WB_TUNER_MENU, OSD_MSG_TUNER_SAVEAM3, OSD_NO_DISAPPEAR, bChStr);
}
}
/*when switch AM to FM, the above show hase some bugs, use this to repair.*/
vSetStartEndXY(TUNER_BRW_SAVECH_MSG_START_X, TUNER_BRW_SAVECH_MSG_START_Y,
TUNER_BRW_DATA_SAVECH_END_X , TUNER_BRW_SAVECH_MSG_END_Y + 2);
vChgColRep(WB_TUNER_MENU, TUNER_MENU_BG, bFillCol);
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
static void vTnrBrwDrawDataSelect(BYTE bItemVal, BOOL fgHili) large
{
BYTE bBgCol;
BYTE bBodyCol;
BYTE bNumCol;
BYTE bFillCol;
WORD wStartY;
BYTE i;
vTnrBrwGetDatCol(fgHili, &bBgCol, &bBodyCol, &bNumCol, &bFillCol);
vSetMsgCol4(WB_TUNER_MENU, bFillCol, bFillCol, bFillCol, bBodyCol);
switch(bItemVal)
{
case TUNER_BRW_ITEM_BAND:
for(i=0; i<TUNER_BAND_NS; i++)
{
wStartY = TUNER_BRW_DATA_BAND_START_Y + TUNER_BRW_DATA_SELECT_HEIGHT * i;
vOsdPasteMsgXY(TUNER_BRW_DATA_MSG_START_X, wStartY + TUNER_BRW_DATA_MSG_OFFSET_Y,
WB_TUNER_MENU, _sTunerBrwDataBand[i].wDataMsg);
}
break;
case TUNER_BRW_ITEM_SIGNAL:
for(i=0; i<TUNER_SIGNAL_NS; i++)
{
wStartY = TUNER_BRW_DATA_SIGNAL_START_Y + TUNER_BRW_DATA_SELECT_HEIGHT * i;
vOsdPasteMsgXY(TUNER_BRW_DATA_MSG_START_X, wStartY + TUNER_BRW_DATA_MSG_OFFSET_Y,
WB_TUNER_MENU, _sTunerBrwDataSignal[i].wDataMsg);
}
break;
case TUNER_BRW_ITEM_AMSTEP:
for(i=0; i<AM_STEP_NS; i++)
{
wStartY = TUNER_BRW_DATA_STEP_START_Y + TUNER_BRW_DATA_SELECT_HEIGHT * i;
vOsdPasteMsgXY(TUNER_BRW_DATA_MSG_START_X, wStartY + TUNER_BRW_DATA_MSG_OFFSET_Y,
WB_TUNER_MENU, _sTunerBrwDataAmstep[i].wDataMsg);
}
break;
/*
case TUNER_BRW_ITEM_AUTO:
wStartY = TUNER_BRW_DATA_AUTO_START_Y;
vOsdPasteMsgXY(TUNER_BRW_DATA_MSG_START_X, wStartY + TUNER_BRW_DATA_MSG_OFFSET_Y,
WB_TUNER_MENU, OSD_MSG_TUNER_SEARCHNOW);
break;
*/
default:
break;
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
static void vTnrDrawBrwData(BYTE bItemVal, BOOL fgHili) large
{
BYTE bBgCol;
BYTE bBodyCol;
BYTE bNumCol;
BYTE bFillCol;
vTnrBrwGetDatCol(fgHili, &bBgCol, &bBodyCol, &bNumCol, &bFillCol);
vSetMsgCol4(WB_TUNER_MENU, bFillCol, bFillCol, bFillCol, bBodyCol);
switch(bItemVal)
{
case TUNER_BRW_ITEM_CHANNEL:
vSetStartEndXY(TUNER_BRW_DATA_AREA_START_X, TUNER_BRW_DATA_CH_START_Y, TUNER_BRW_DATA_CH_END_X - 1, TUNER_BRW_DATA_CH_END_Y - 1);
vRectangle(WB_TUNER_MENU, 0, 0, TRUE, bFillCol);
vSetStartEndXY(TUNER_BRW_DATA_AREA_START_X, TUNER_BRW_DATA_CH_START_Y, TUNER_BRW_DATA_CH_END_X, TUNER_BRW_DATA_CH_END_Y);
vTnrBrwItemDataCorner(fgHili);
vTnrBrwDrawDataInput(bItemVal, fgHili);
vTnrBrwShowArrow(bItemVal, fgHili);
break;
case TUNER_BRW_ITEM_BAND:
vSetStartEndXY(TUNER_BRW_DATA_AREA_START_X, TUNER_BRW_DATA_BAND_START_Y, TUNER_BRW_DATA_AREA_END_X - 1, TUNER_BRW_DATA_BAND_END_Y - 1);
vRectangle(WB_TUNER_MENU, 0, 0, TRUE, bFillCol);
vSetStartEndXY(TUNER_BRW_DATA_AREA_START_X, TUNER_BRW_DATA_BAND_START_Y, TUNER_BRW_DATA_AREA_END_X, TUNER_BRW_DATA_BAND_END_Y);
vTnrBrwItemDataCorner(fgHili);
vTnrBrwDrawDataSelect(bItemVal, fgHili);
vTnrBrwDrawDataDot(bItemVal, _eTunerBand, TRUE, FALSE, fgHili);
break;
case TUNER_BRW_ITEM_SIGNAL:
vSetStartEndXY(TUNER_BRW_DATA_AREA_START_X, TUNER_BRW_DATA_SIGNAL_START_Y, TUNER_BRW_DATA_AREA_END_X - 1, TUNER_BRW_DATA_SIGNAL_END_Y - 1);
vRectangle(WB_TUNER_MENU, 0, 0, TRUE, bFillCol);
vSetStartEndXY(TUNER_BRW_DATA_AREA_START_X, TUNER_BRW_DATA_SIGNAL_START_Y, TUNER_BRW_DATA_AREA_END_X, TUNER_BRW_DATA_SIGNAL_END_Y);
vTnrBrwItemDataCorner(fgHili);
vTnrBrwDrawDataSelect(bItemVal, fgHili);
vTnrBrwDrawDataDot(bItemVal, _eSignalType, TRUE, FALSE, fgHili);
break;
case TUNER_BRW_ITEM_AMSTEP:
vSetStartEndXY(TUNER_BRW_DATA_AREA_START_X, TUNER_BRW_DATA_STEP_START_Y, TUNER_BRW_DATA_AREA_END_X - 1, TUNER_BRW_DATA_STEP_END_Y - 1);
vRectangle(WB_TUNER_MENU, 0, 0, TRUE, bFillCol);
vSetStartEndXY(TUNER_BRW_DATA_AREA_START_X, TUNER_BRW_DATA_STEP_START_Y, TUNER_BRW_DATA_AREA_END_X, TUNER_BRW_DATA_STEP_END_Y);
vTnrBrwItemDataCorner(fgHili);
vTnrBrwDrawDataSelect(bItemVal, fgHili);
vTnrBrwDrawDataDot(bItemVal, _eAmStep, TRUE, FALSE, fgHili);
break;
/*
case TUNER_BRW_ITEM_AUTO:
vSetStartEndXY(TUNER_BRW_DATA_AREA_START_X, TUNER_BRW_DATA_AUTO_START_Y, TUNER_BRW_DATA_AREA_END_X - 1, TUNER_BRW_DATA_AUTO_END_Y - 1);
vRectangle(WB_TUNER_MENU, 0, 0, TRUE, bFillCol);
vSetStartEndXY(TUNER_BRW_DATA_AREA_START_X, TUNER_BRW_DATA_AUTO_START_Y, TUNER_BRW_DATA_AREA_END_X, TUNER_BRW_DATA_AUTO_END_Y);
vTnrBrwItemDataCorner(fgHili);
vTnrBrwDrawDataSelect(bItemVal, fgHili);
break;
*/
case TUNER_BRW_ITEM_SAVE:
vSetStartEndXY(TUNER_BRW_DATA_AREA_START_X, TUNER_BRW_DATA_SAVECH_START_Y, TUNER_BRW_DATA_AREA_END_X - 1, TUNER_BRW_DATA_SAVECH_END_Y - 1);
vRectangle(WB_TUNER_MENU, 0, 0, TRUE, bFillCol);
vSetStartEndXY(TUNER_BRW_DATA_AREA_START_X, TUNER_BRW_DATA_SAVECH_START_Y, TUNER_BRW_DATA_AREA_END_X, TUNER_BRW_DATA_SAVECH_END_Y);
vTnrBrwItemDataCorner(fgHili);
vTnrBrwDrawDataInput(bItemVal, fgHili);
vTnrBrwShowArrow(bItemVal, fgHili);
vTnrBrwDrawDataFreq(_wStationFreq[_bStationNo - 1], fgHili);
break;
case TUNER_BRW_ITEM_AUTO:
case TUNER_BRW_ITEM_LINE:
default:
break;
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
static void vTnrBrwHead2Item(void) large
{
#if 0
_bTnrEnterKeyTimer = 0;
#endif
_eTunerBrwState = TUNER_BRW_STATE_ITEM;
_eTunerBrwItem = TUNER_BRW_ITEM_CHANNEL;
vTnrBrwHeadAreaHili(FALSE);
vTnrBrwItemAreaHili(TRUE);
vTnrBrwItemItemHili(_eTunerBrwItem, TRUE);
vTnrDrawBrwData(_eTunerBrwItem, FALSE);
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
static void vTnrBrwItem2Head(void) large
{
vTnrBrwClearData();
vTnrBrwItemItemHili(_eTunerBrwItem, FALSE);
_eTunerBrwState = TUNER_BRW_STATE_HEAD;
_eTunerBrwItem = TUNER_BRW_ITEM_NONE;
vTnrBrwHeadAreaHili(TRUE);
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
static void vTnrBrwItem2Data(void) large
{
_eTunerBrwState = TUNER_BRW_STATE_DATA;
vTnrBrwItemAreaHili(FALSE);
vTnrBrwDataAreaHili(TRUE);
switch(_eTunerBrwItem)
{
case TUNER_BRW_ITEM_CHANNEL:
case TUNER_BRW_ITEM_SAVE:
_eChInput = CHANNEL_INPUT_1;
_bStationPrev = _bStationNo;
vTnrBrwShowArrow(_eTunerBrwItem, TRUE);
break;
case TUNER_BRW_ITEM_BAND:
case TUNER_BRW_ITEM_SIGNAL:
case TUNER_BRW_ITEM_A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -