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

📄 vremote.c

📁 MTK 1389e版 MINI组合音响代码
💻 C
📖 第 1 页 / 共 3 页
字号:
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 + -