📄 vremote.c
字号:
enum {
VRMT_POS_0,
VRMT_POS_1,
VRMT_POS_2,
VRMT_POS_3
};
enum {
VRMT_MENU_TYPE_DVD,
VRMT_MENU_TYPE_NONE
};
enum {
#if 0
VRMT_STATE_PLAY_KEYS,
VRMT_STATE_MENU_ITEM,
VRMT_STATE_MENU_OPTION
#endif
VRMT_STATE_INIT,
VRMT_STATE_WAIT_TIMEOUT,
VRMT_STATE_NORMAL
};
/*********************************************************************
Function : void vVRMTRedrawAll()
Description : completely redraw whole V-Remote. WB_VRMT_ITEM
Parameter : none
Return : none
**********************************************************************/
void vVRMTRedrawAll() large
{
BYTE bTmp;
//Clean WB , Draw Background
#ifdef VRMT_SMALL_DISH
_wStartX=0+10;
_wStartY=0+48;
_wEndX=160;
_wEndY=250-100;
#else
_wStartX=0+10;
_wStartY=0+48;
_wEndX=200-10;
_wEndY=250-100;
#endif
// vRectangle(WB_VRMT_ITEM, 0, 0, 1, 1); //it should be 0, 0, TRUE, VRMT_COLOR_BACKGROUND
#if 0
//Draw Menu item and highlight if necessary.
if((_rVremote.bMenuType == VRMT_MENU_TYPE_NONE))
{
vSetMsgCol4(WB_VRMT_ITEM, 0, 9, 1, 9);
}
else
{
vSetMsgCol4(WB_VRMT_ITEM, 0, 9, 8, 3);
}
for(bTmp=9;bTmp<12;bTmp++)
{
_wStartX=_rFocusItem[bTmp].wStartX;
_wStartY=_rFocusItem[bTmp].wStartY;
if(_rVremote.bPosition == bTmp) // highligt
{
#ifdef VRMT_NOMENU_ITEM
vPasteBmp(WB_VRMT_ITEM,_bVrmtMenuItemBmpId[bTmp-9]);
// change color for it...
// to be done honnow...
_wStartX = _rFocusItem[_rVremote.bPosition].wStartX;
_wStartY = _rFocusItem[_rVremote.bPosition].wStartY;
_wEndX = _rFocusItem[_rVremote.bPosition].wStartX+42; //EndX-8;
_wEndY = _rFocusItem[_rVremote.bPosition].wStartY+42; //EndY-8;
vChgColRep(WB_VRMT_ITEM, 2, 3);
#else
vPasteBmp(WB_VRMT_ITEM,BMP_VRMT_BARSEL);
vSetMsgCol4(WB_VRMT_ITEM, 0, 11, 8, 3);
vOsdPasteMsgXY(_wStartX+20,VRMT_MENU_ITEM1_STARTY+(bTmp-9)*(LINE_HEIGHT+2),WB_VRMT_ITEM,_wVrmtMenuItemMsgId[bTmp-9]);//OSD_NO_DISAPPEAR);
vSetMsgCol4(WB_VRMT_ITEM, 0, 9, 8, 3);
#endif
}
else // draw
{
#ifdef VRMT_NOMENU_ITEM
vPasteBmp(WB_VRMT_ITEM,_bVrmtMenuItemBmpId[bTmp-9]);
#else
vPasteBmp(WB_VRMT_ITEM,BMP_VRMT_BAR);
vOsdPasteMsgXY(_wStartX+20,VRMT_MENU_ITEM1_STARTY+(bTmp-9)*(LINE_HEIGHT+2),WB_VRMT_ITEM,_wVrmtMenuItemMsgId[bTmp-9]);//,OSD_NO_DISAPPEAR);
#endif
}
}
#endif
//Draw play key
_wStartX=VRMT_DISH_STARTX+4; //10;
_wStartY=VRMT_DISH_STARTY; //100
vPasteBmp(WB_VRMT_ITEM, BMP_VRMT);
// if bPosition is < 9
if(_rVremote.bPosition < 9) //in key dish
{
// highlight (change color)
#ifdef VRMT_WB_USE_TRUECOLOR
_wStartX = _rFocusItem[_rVremote.bPosition].wStartX+8;
_wStartY = _rFocusItem[_rVremote.bPosition].wStartY+8;
_wEndX = _rFocusItem[_rVremote.bPosition].wEndX-8;
_wEndY = _rFocusItem[_rVremote.bPosition].wEndY-8;
// vRectangle(WB_VRMT_ITEM,2,15,FALSE,0); //test
vChgColRep(WB_VRMT_ITEM, 15, 3); // hi light a button
#else
vVRMTSelectFocus(_rVremote.bPosition);
#endif
}
//Draw Menu item and highlight if necessary.
if((_rVremote.bMenuType == VRMT_MENU_TYPE_NONE))
{
vSetMsgCol4(WB_VRMT_ITEM, 0, 9, 1, 9);
}
else
{
vSetMsgCol4(WB_VRMT_ITEM, 0, 9, 8, 3);
}
for(bTmp=9;bTmp<12;bTmp++)
{
_wStartX=_rFocusItem[bTmp].wStartX;
_wStartY=_rFocusItem[bTmp].wStartY;
if(_rVremote.bPosition == bTmp) // highligt
{
#ifdef VRMT_NOMENU_ITEM
//vPasteBmp(WB_VRMT_ITEM,_bVrmtMenuItemBmpId[bTmp-9]); //[runma] mark off for mickey
// change color for it...
// to be done honnow...
_wStartX = _rFocusItem[_rVremote.bPosition].wStartX;
_wStartY = _rFocusItem[_rVremote.bPosition].wStartY;
_wEndX = _rFocusItem[_rVremote.bPosition].wStartX+42; //EndX-8;
_wEndY = _rFocusItem[_rVremote.bPosition].wStartY+42; //EndY-8;
vChgColRep(WB_VRMT_ITEM, 4, 3); //[runma] mickey, 2->4
#else
vPasteBmp(WB_VRMT_ITEM,BMP_VRMT_BARSEL);
vSetMsgCol4(WB_VRMT_ITEM, 0, 11, 8, 3);
vOsdPasteMsgXY(_wStartX+20,VRMT_MENU_ITEM1_STARTY+(bTmp-9)*(LINE_HEIGHT+2),WB_VRMT_ITEM,_wVrmtMenuItemMsgId[bTmp-9]);//OSD_NO_DISAPPEAR);
vSetMsgCol4(WB_VRMT_ITEM, 0, 9, 8, 3);
#endif
}
else // draw
{
#ifdef VRMT_NOMENU_ITEM
//vPasteBmp(WB_VRMT_ITEM,_bVrmtMenuItemBmpId[bTmp-9]); //[runma] mark off for mickey.
#else
vPasteBmp(WB_VRMT_ITEM,BMP_VRMT_BAR);
vOsdPasteMsgXY(_wStartX+20,VRMT_MENU_ITEM1_STARTY+(bTmp-9)*(LINE_HEIGHT+2),WB_VRMT_ITEM,_wVrmtMenuItemMsgId[bTmp-9]);//,OSD_NO_DISAPPEAR);
#endif
}
}
}
/*********************************************************************
Function : void vVremoteInit(BYTE fgInit) large
Description : Initial function when go into v-remote state.
Parameter :
Return :
**********************************************************************/
void vVremoteInit(BYTE fgInit) large
{
//Popup the vremote whiteboard
/* chnage OSD mode to user mode */
vOsdShowWb(OSD_WB_USER);
/* set menu type */
if (fgIsDvdPlay())
{
_rVremote.bMenuType = VRMT_MENU_TYPE_DVD;
}
else if (fgIsIsoPlay())
{
vSetExitInputState();
return;
}
else
{
_rVremote.bMenuType = VRMT_MENU_TYPE_NONE;
}
//create vremote whiteboard
#ifdef VRMT_WB_USE_TRUECOLOR
vCreateWB(WB_VRMT_ITEM, TRUE);
vSetWBTcColor(WB_VRMT_ITEM);
//set blend level for background color.
vSetTcPal(WB_VRMT_ITEM,1,BLEND_2,TRUECOLOR_DARKGRAY);
// vSetTcPal(WB_VRMT_ITEM,9,BLEND_1,TRUECOLOR_GRAY);
#else
vCreateWB(WB_VRMT_ITEM, FALSE);
//set blend level for background color.
vSetPal(WB_VRMT_ITEM,1,BLEND_1,COLOR_DARK_GRAY);
vSetPal(WB_VRMT_ITEM,9,BLEND_1,COLOR_GRAY);
#endif
// set idx 0 as transparent color.
vSetTransEn(WB_VRMT_ITEM,0);
//set message color of v-remote
vSetMsgCol4(WB_VRMT_ITEM, 0, 9, 8, 3);
//draw whole background ??
//vDrawBorderWB(WB_VRMT_ITEM, 0);
_rVremote.bState = VRMT_STATE_INIT;
_rVremote.bPosition = VRMT_INIT_POSI;
vVRMTRedrawAll();
//enable vremote whiteboard
vEnableWB(WB_VRMT_ITEM);
return;
}
/*********************************************************************
Function : void vVRMTSelectFocus(BYTE bPosition)
Description : In Vremote, highlight one item.
Parameter : bPosition is the position id within virtual remote controller.
Return :
**********************************************************************/
void vVRMTSelectFocus(BYTE bPosition) large
{
WORD wMsgIdx;
BYTE bTmp;
switch(bPosition)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
_wStartX = _rFocusItem[bPosition].wStartX+8;
_wStartY = _rFocusItem[bPosition].wStartY+8;
_wEndX = _rFocusItem[bPosition].wEndX-8;
_wEndY = _rFocusItem[bPosition].wEndY-8;
#ifdef VRMT_WB_USE_TRUECOLOR
//vRectangle(WB_VRMT_ITEM,2,11,FALSE,0); //for test
vChgColRep(WB_VRMT_ITEM, 15, 3);
#else
_wStartX += VREMOTE_START_X;
_wEndX += VREMOTE_START_X;
_wStartY += VREMOTE_START_Y;
_wEndY += VREMOTE_START_Y;
vChgColSetCol(WB_VRMT_ITEM, 3 , BLEND_3, COLOR_ORANGE);
vChgColRng(WB_VRMT_ITEM);
vChgColEn();
#endif
break;
case 9:
case 10:
case 11:
_wStartX = _rFocusItem[bPosition].wStartX;
_wStartY = _rFocusItem[bPosition].wStartY;
#ifdef VRMT_NOMENU_ITEM
//vPasteBmp(WB_VRMT_ITEM,_bVrmtMenuItemBmpId[bPosition-9]); //should be removed
// should hili bPosition TBD ... runma
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -