www.pudn.com > 8032.RAR > flctrl.c


/**********************************************************************/ 
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/ 
/***************                                       ****************/ 
/***************  $Modtime:: 04/05/14 3:37p    $       ****************/ 
/***************  $Revision:: 4                $       ****************/ 
/***************                                       ****************/ 
/***************   Description : File Menu             ****************/ 
/***************                 Info Panel Component  ****************/ 
/***************                                       ****************/ 
/***************       Company : MediaTek Inc.         ****************/ 
/***************    Programmer : Jacob Lin             ****************/ 
/**********************************************************************/ 
 
#define __FSLIST_CTRL_C_ 
 
#include "flspec.h" 
#include "flcomm.h" 
#include "flctrl.h" 
 
#pragma NOAREGS 
 
#ifdef PLAYER_FLMENU 
 
#ifdef SHOW_FS_SLIDER 
void vDrawSlider(WORD wCurrNo, WORD wTotalNs) large 
{ 
  WORD wOffset; 
  WORD wBtnLen; 
 
#ifndef FL_USE_LOGO 
  _wStartX = FS_SLIDER_X; 
  _wEndX = FS_SLIDER_X + FS_SLIDER_W; 
  _wStartY = FS_SLIDER_Y; 
  _wEndY = FS_SLIDER_Y + (WORD) FS_SLIDER_H; 
  vSetBtnCol(FL_MENU_WB, FLCOLOR_GREENBLUE, FLCOLOR_BLACK, FLCOLOR_WHITE, FLCOLOR_BLACK); 
  vCreateButton(FL_MENU_WB, FS_SLIDER_BTN, 2); 
  vUnselButton(FL_MENU_WB, FS_SLIDER_BTN); 
#endif 
  vMoveSlider(wCurrNo, wTotalNs, TRUE); 
} 
#endif 
 
#ifdef SHOW_FS_SLIDER 
void vMoveSlider(WORD wCurr, WORD wTotal, BOOL fgShow) large 
{ 
  WORD  wOffset, wBtnLen; 
  DWRD  dwTmp; 
 
  if (wTotal == 1) 
  { 
    wBtnLen =  FS_SLIDER_H; 
    wOffset = 0; 
  } 
  else 
  { 
    wBtnLen =  FS_SLIDER_H / (wTotal - 1); 
    if (wBtnLen < 6) 
      wBtnLen = 6; 
    dwTmp = ((DWRD) wCurr) * (FS_SLIDER_H - wBtnLen - 2) / (wTotal - 1); 
    wOffset = wLoWord(dwTmp); 
  } 
 
  if (wCurr != 0) 
  { 
    if (wCurr == wTotal - 1) 
      wOffset = FS_SLIDER_H - wBtnLen - 2; 
    else if (wBtnLen > 6) // if (wTotal < FS_SLIDER_H - wBtnLen) 
    { 
      wOffset += ((FS_SLIDER_H - wBtnLen) - (FS_SLIDER_H - wBtnLen) / (wTotal) * (wTotal)) * wCurr / (wTotal); 
    } 
  } 
 
  _wStartX = FS_SLIDER_X; 
  _wEndX = FS_SLIDER_X + FS_SLIDER_W; 
  _wStartY = (WORD) FS_SLIDER_Y + wOffset; 
  _wEndY = (WORD) FS_SLIDER_Y + wOffset + wBtnLen; 
   
 
  if (fgShow) 
  { 
    vSetBtnCol(FL_MENU_WB, FLCOLOR_YELLOW, FLCOLOR_BLACK, FLCOLOR_YELLOW, FLCOLOR_BLACK); 
    vCreateButton(FL_MENU_WB, FS_SLIDER_BTN+1, 2); 
    vSelButton(FL_MENU_WB, FS_SLIDER_BTN+1); 
  } 
  else 
  { 
#ifdef FL_USE_LOGO 
    //vRectangle(FL_MENU_WB, 0, 0, 1, FLCOLOR_WHITE); 
    _wEndX += 4; 
    vRectangle(FL_MENU_WB, 0, 0, 1, 0); 
#else 
    vRectangle(FL_MENU_WB, 0, 0, 1, FLCOLOR_BLACK); 
#endif 
 
    //_wEndX = _wStartX = FS_SLIDER_X + FS_SLIDER_W - 1; 
//    if (_wStartY > 2) 
//      _wStartY -= 2; 
     
    //vOsdShowLine(FL_MENU_WB, FLCOLOR_WHITE, 2); 
  } 
} 
#endif /* #ifdef SHOW_FS_SLIDER */ 
 
#ifndef FL_USE_LOGO 
void vDrawSpin(void) large 
{ 
  _wStartX = FS_SLIDER_X; 
  _wStartY = FS_SLIDER_Y + FS_SLIDER_H; 
  vSetMsgCol4(FL_MENU_WB, FLCOLOR_BLACK, FLCOLOR_BLACK, FLCOLOR_GRAY, FLCOLOR_GRAY); 
  vOsdMsgPaste(FL_MENU_WB, OSD_MSG_FSUPDOWN1); 
} 
 
void vMoveSpin(BOOL fgUp) large 
{ 
  _wStartX = FS_SLIDER_X; 
  _wEndX = FS_SLIDER_X + FS_SLIDER_W; 
  _wStartY = FS_SLIDER_Y + (WORD) FS_SLIDER_H; 
  _wEndY = _wStartY + FS_SPIN_H; 
   
  if (fgUp) 
  { 
    vSetMsgCol4(FL_MENU_WB, FLCOLOR_BLACK, FLCOLOR_BLACK, FLCOLOR_GRAY, FLCOLOR_YELLOW);     
  } 
  else 
  { 
    vSetMsgCol4(FL_MENU_WB, FLCOLOR_BLACK, FLCOLOR_BLACK, FLCOLOR_YELLOW, FLCOLOR_GRAY); 
  } 
  vOsdMsgPaste(FL_MENU_WB, OSD_MSG_FSUPDOWN1); 
} 
#else 
void vMoveSpin(BOOL fgUp) large 
{ 
  return; 
} 
#endif 
 
#define PROGRESS_BAR   20 
void vDrawProgress(BYTE bCurr, BYTE bTotal) large 
{ 
  BYTE  bPos, i; 
  WORD  wGap, wStartX, wStartY; 
   
  //vRectangle(FSMENU_INFO, 0, 0, 1, FLCOLOR_GRAY); 
  wGap = (_wEndX - _wStartX) / (PROGRESS_BAR); 
 
//  _wStartY += 4; 
//  _wEndY -= 4; 
  //_wStartY += 2; 
  wStartY = _wStartY + 2; 
  _wEndY -= 2; 
  wStartX = _wStartX; 
 
  for (i=1; i<=PROGRESS_BAR; i++) 
  { 
    _wEndX = _wStartX = wStartX + wGap * (i-1) + 3; 
    _wStartY = wStartY + (20 - i - 1); 
    if (i <= bCurr) 
      vOsdShowLine(FSMENU_INFO, FLCOLOR_YELLOW, 2); 
     
/* 
    if (i < bCurr) 
      vOsdShowLine(FSMENU_INFO, FLCOLOR_BLACK, 2); 
    else 
      vOsdShowLine(FSMENU_INFO, FLCOLOR_YELLOW, 2); 
*/ 
  } 
} 
 
void vMoveProgress(BYTE bCurr, BYTE bTotal, BOOL fgShow) large 
{ 
  WORD  wGap, wStartX; 
 
  if ((bCurr > bTotal) || (bCurr == 0)) 
    return; 
 
  wGap = (_wEndX - _wStartX) / (PROGRESS_BAR); 
   
  _wStartY += (2 + 20 - bCurr - 1); 
  _wEndY -= 2; 
  _wEndX = _wStartX = _wStartX + wGap * (bCurr-1) + 3; 
 
  if (fgShow == TRUE) 
  { 
    vOsdShowLine(FSMENU_INFO, FLCOLOR_YELLOW, 2); 
  } 
  else 
  { 
    //vOsdShowLine(FSMENU_INFO, FLCOLOR_BLACK, 2); 
    vOsdShowLine(FSMENU_INFO, FLCOLOR_GREENBLUE, 2); 
  } 
} 
 
#if 0 
void vDrawScrollingScriptMsg(WORD wMsg, WORD wShift) large 
{ 
   
} 
#endif 
 
#if 0 // - JACOB: unused now 
void vDrawScrollingStr(BYTE *pbStr, WORD wShift) large 
{ 
  BYTE bIdx, i; 
  BYTE pbStr2[10]; 
  WORD wStartX, wStartY; 
 
  bIdx = (BYTE) (wShift / 20); 
 
  if (bIdx > pbStr[0]) 
    return; 
 
  vRectangle(FL_MENU_WB, 0, 0, 1, 0); 
 
  wStartX = _wStartX; 
  wStartY = _wStartY; 
  vSetMsgCol4(FL_MENU_WB, 0, 0, 0, 2); 
 
  // 1st 
  pbStr2[0] = 1; 
  pbStr2[1] = pbStr[bIdx+1]; 
  _wStartX = wStartX + 20 - (wShift % 20); 
  _wStartY = wStartY; 
  vOsdShowStr(FL_MENU_WB, pbStr2); 
 
  // mask 
  _wStartX = wStartX; 
  _wStartY = wStartY; 
  _wEndX   = _wStartX + 20; 
  _wEndY   = _wStartY + 32; 
  vRectangle(FL_MENU_WB, 0, 0, 1, 0); 
   
  // other 
  pbStr2[0] = pbStr[0] - bIdx - 1; 
  for (i=1; i <= pbStr2[0]; i++) 
  { 
    pbStr2[i] = pbStr[bIdx+i+1]; 
  } 
   
  _wStartX = wStartX + 40 - (wShift % 20); 
  _wStartY = wStartY; 
  vOsdShowStr(FL_MENU_WB, pbStr2); 
} 
#endif //0 
 
 
#if 0  
 
static code WORD pwComboBoxMsg[] = 
{ 
  OSD_MSG_OPEN, 
  OSD_MSG_CLOSE, 
  OSD_MSG_PLAY 
}; 
 
void vDrawComboBox(BYTE bWB) large 
{ 
  WORD  wStartX, wEndX, wStartY, wEndY; 
   
  if ((_wEndX - _wStartX) < 32 * 3) 
    return; 
   
  if ((_wEndY - _wStartY) < (2+2+32+2+2)) 
    return; 
 
  wStartX = _wStartX; 
  wEndX   = _wEndX; 
  wStartY = _wStartY; 
  wEndY   = _wEndY; 
 
  vRectangle(bWB, 0, 0, 1, 0); 
   
} 
 
void vMoveComboBox() large 
{ 
} 
 
#endif 
 
#if 0 
void vDrawDigitalClock(BYTE bMin, BYTE bSec) large 
{ 
   
} 
#endif 
 
#endif  // #ifdef PLAYER_FLMENU