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

📄 flhelp.c

📁 MTK 1389E SOURCE CODE
💻 C
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 05/10/03 8:35p    $       ****************/
/***************  $Revision:: 2                $       ****************/
/***************                                       ****************/
/***************   Description : File List             ****************/
/***************                 JPEG Help Module      ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer : Jacob Lin             ****************/
/**********************************************************************/

#define __FLHELP_C_

#include "../general.h"
#include "../../procdef.h"
#include "flcomm.h"

#pragma NOAREGS

#if (defined(DDISC_FTYPE_JPEG_SUPPORT) && defined(SUPPORT_DATA_DISC) && defined(JPEG_DDISC_DIGEST_ENABLE) )

/*
extern void vJpegHelpMenuShow(BOOL fgRedraw) large;
void vJpegHelpMenuClose(void) large;
extern void vDrawSetupBorder(void) large;
extern void vFsMenuHpMenuInit(void);
extern void vSetSetWbCol(BYTE bType);
*/

//extern void vSetWbCol(void);

static void vFlHpShowBorder(void) large;
static void vFlHpShowPage(BOOL fgRedraw) large;

static xdata BYTE _bFlHpMode;

#define FLHP_INIT      0
#define FLHP_PAGE_1    1
#define FLHP_PAGE_2    2
#define FLHP_PAGE_END  FLHP_PAGE_2

#define FLHP_BTN_X      365
#define FLHP_BTN_Y       0
#define FLHP_TITLE_X    90
#define FLHP_TITLE_Y    20 // 40
#define FLHP_STARTX          20
#define FLHP_STARTY         70 // 100
#define FLHP_MSG_H           30
#define FLHP_INTRO_STARTX   FLHP_STARTX +160
#define FLHP_INTRO_STARTY   FLHP_STARTY

#define FLHP_COLOR_BLACK  2
#define FLHP_COLOR_WHITE  3

#define FLHP_CTITLE_X    190

typedef struct {
  WORD wKeyMsg;
  WORD wFuncMsg;
} structFlHpMsg;

static code structFlHpMsg _rFlHpPage1Msg[] = {
#ifdef FSMENU_STYLE_1
  { OSD_MSG_JPG_RESUME,  OSD_MSG_JPG_PROGRAM_FUNC },
#else
  { OSD_MSG_JPG_PROGRAM, OSD_MSG_JPG_PROGRAM_FUNC },
#endif
  { OSD_MSG_JPG_STOP,    OSD_MSG_JPG_MENU_FUNC },
  { OSD_MSG_JPG_NEXT,    OSD_MSG_JPG_NEXT_FUNC },
  { OSD_MSG_JPG_PREV,    OSD_MSG_JPG_PREV_FUNC },
  { OSD_MSG_JPG_PLAY,    OSD_MSG_JPG_PLAY_FUNC },
  { OSD_MSG_JPG_INVERT,  OSD_MSG_JPG_INVERT_FUNC },
  { OSD_MSG_JPG_MIRROR,  OSD_MSG_JPG_MIRROR_FUNC}
};

static code structFlHpMsg _rFlHpPage2Msg[] = {
  { OSD_MSG_JPG_ROTATE_CCLKW, OSD_MSG_JPG_ROTATE_CCLKW_FUNC },
  { OSD_MSG_JPG_ROTATE_CLKW,  OSD_MSG_JPG_ROTATE_CLKW_FUNC },
  { OSD_MSG_JPG_ZOOM,         OSD_MSG_JPG_ZOOM_FUNC },
  { OSD_MSG_JPG_ZOOMIN,       OSD_MSG_JPG_ZOOMIN_FUNC },
  { OSD_MSG_JPG_ZOOMOUT,      OSD_MSG_JPG_ZOOMOUT_FUNC },
  { OSD_MSG_JPG_PAN,          OSD_MSG_JPG_PAN_FUNC }
};

#define FLHP_PAGE1_N     TBL_SIZE(_rFlHpPage1Msg)
#define FLHP_PAGE2_N     TBL_SIZE(_rFlHpPage2Msg)



static void vFlHpShowBorder(void) large
{
  // Horizontal Line
  vOsdShowLineXY(WB_SETUP_HEAD, FLHP_COLOR_BLACK, 2, 0, (SETUP_HEAD_H - 2), SETUP_HEAD_W, (SETUP_HEAD_H - 2));
  vOsdShowLineXY(WB_SETUP_ITEM, FLHP_COLOR_WHITE, 2, 0, 0, SETUP_ITEM_W, 0);
  vOsdShowLineXY(WB_SETUP_MSG,  FLHP_COLOR_WHITE, 2, 0, (SETUP_MSG_H - 2), SETUP_MSG_W, (SETUP_MSG_H - 2));
  vOsdShowLineXY(WB_SETUP_MSG, FLHP_COLOR_BLACK, 2, 0, (SETUP_MSG_H - 4), SETUP_MSG_W, (SETUP_MSG_H - 4));

  // Vertical Line
  vOsdShowLineXY(WB_SETUP_ITEM, FLHP_COLOR_BLACK, 3, 0, 0, 0, SETUP_ITEM_H - 1);
  vOsdShowLineXY(WB_SETUP_ITEM, FLHP_COLOR_WHITE, 3, 2, 0, 2, SETUP_ITEM_H - 1);
  vOsdShowLineXY(WB_SETUP_MSG, FLHP_COLOR_BLACK, 3, 0, 0, 0, SETUP_MSG_H - 1);
  vOsdShowLineXY(WB_SETUP_MSG, FLHP_COLOR_WHITE, 3, 2, 0, 2, SETUP_MSG_H - 1);
  vOsdShowLineXY(WB_SETUP_ITEM, FLHP_COLOR_WHITE, 3, (SETUP_ITEM_W - 3), 0, (SETUP_ITEM_W - 3), SETUP_ITEM_H - 1);
  vOsdShowLineXY(WB_SETUP_ITEM, FLHP_COLOR_BLACK, 3, (SETUP_ITEM_W - 6), 0, (SETUP_ITEM_W - 6), SETUP_ITEM_H - 1);
  vOsdShowLineXY(WB_SETUP_MSG, FLHP_COLOR_WHITE, 3, (SETUP_MSG_W - 3), 0, (SETUP_MSG_W - 3), SETUP_MSG_H - 1);
  vOsdShowLineXY(WB_SETUP_MSG, FLHP_COLOR_BLACK, 3, (SETUP_MSG_W - 6), 0, (SETUP_MSG_W - 6), SETUP_MSG_H - 4);
}


static void vFlHpShowPage(BOOL fgRedraw) large
{
  BYTE bTemp;

  if(!fgRedraw)
  {
    if(_bFlHpMode >= FLHP_PAGE_END)
    {
      _bFlHpMode = FLHP_INIT;
      //vJpegHelpMenuClose();
      // - resume jpg decoding
      vSendUopCmd(UOP_PAUSE, 0x01, 0x02, 0x00); 
      return;
    }
    else
    {
      if(_bFlHpMode == FLHP_INIT)
      {
        // - pause jpg decoding
        vSendUopCmd(UOP_PAUSE, 0x01, 0x01, 0x00);
      }
      _bFlHpMode ++;
    }
  }

#if !defined(USE_SMALL_SPTM) && defined (SPTM_SUPPORT)
  if (fgIsEqShow())
  {
    vDisableWB(WB_NORMAL_SPTM);
  }
#endif

  vChgColDis();
#ifndef HILI_USE_OSD
  vHideHL(HL_1);
  vHideHL(HL_2);
#endif

#ifndef FONT_2_PIXEL
  // hardware outline
  vSetOL(WB_SETUP_HEAD, OL_A_1_PIX, 0, 0);
  vSetOL(WB_SETUP_MSG, OL_A_1_PIX, 0, 0);
#endif

  vFlHpShowBorder();

  vOsdClearPosXY(8, 2, FL_HELP_WB, (SETUP_ITEM_W - 16), (SETUP_ITEM_H - 3));
  
  switch (_bFlHpMode)
  {
    case FLHP_PAGE_1:
      vSetMsgCol4(FL_HELP_WB, 0, 0, 2, 3);
      _wStartX = (bEepromReadByte(OSD_LANG_POSITION) == EV_OSD_CHINESE) ? FLHP_CTITLE_X : FLHP_TITLE_X;
      _wStartY = FLHP_TITLE_Y;
      vOsdMsgPaste(FL_HELP_WB, OSD_MSG_JPG_HELP_TITLE);

      vSetMsgCol4(FL_HELP_WB, 0, 0, 2, 3);
      _wStartX = FLHP_STARTX;
      _wStartY = FLHP_STARTY;
      for (bTemp=0; bTemp < FLHP_PAGE1_N; bTemp++)
      {
        vOsdMsgPaste(FL_HELP_WB, _rFlHpPage1Msg[bTemp].wKeyMsg);
        _wStartY += FLHP_MSG_H;
      }

      vSetMsgCol4(WB_SETUP_ITEM, 0, 0, 0, 2);
      _wStartX = FLHP_INTRO_STARTX;
      _wStartY = FLHP_INTRO_STARTY;
      for (bTemp=0; bTemp < FLHP_PAGE1_N; bTemp++)
      {
        vOsdMsgPaste(FL_HELP_WB, _rFlHpPage1Msg[bTemp].wFuncMsg);
        _wStartY += FLHP_MSG_H;
      }

      vSetMsgCol4(WB_SETUP_MSG , 0, 1, 1, 3);
      _wStartX = FLHP_BTN_X;
      _wStartY = FLHP_BTN_Y;
      vOsdClearPos(WB_SETUP_MSG, 120, 30);
      vOsdMsgPaste(WB_SETUP_MSG, OSD_MSG_JPG_CONTINUE);
      break;

    case FLHP_PAGE_2:
      vSetMsgCol4(FL_HELP_WB, 0, 0, 2, 3);
      _wStartX = (bEepromReadByte(OSD_LANG_POSITION) == EV_OSD_CHINESE) ? FLHP_CTITLE_X : FLHP_TITLE_X;
      _wStartY = FLHP_TITLE_Y;
      vOsdMsgPaste(FL_HELP_WB, OSD_MSG_JPG_HELP_TITLE);

      vSetMsgCol4(FL_HELP_WB, 0, 0, 2, 3);
      _wStartX = FLHP_STARTX;
      _wStartY = FLHP_STARTY;
      for (bTemp=0; bTemp < FLHP_PAGE2_N; bTemp++)
      {
        if (bTemp == 3)
          _wStartX = FLHP_STARTX + 20;
        vOsdMsgPaste(FL_HELP_WB, _rFlHpPage2Msg[bTemp].wKeyMsg);
        _wStartY += FLHP_MSG_H;
      }

      vSetMsgCol4(WB_SETUP_ITEM, 0, 0, 0, 2);
      _wStartX = FLHP_INTRO_STARTX;
      _wStartY = FLHP_INTRO_STARTY;
      for (bTemp=0; bTemp < FLHP_PAGE2_N; bTemp++)
      {
        vOsdMsgPaste(FL_HELP_WB, _rFlHpPage2Msg[bTemp].wFuncMsg);
        _wStartY += FLHP_MSG_H;
      }

      vSetMsgCol4(WB_SETUP_MSG , 0, 1, 1, 3);
      _wStartX = FLHP_BTN_X;
      _wStartY = FLHP_BTN_Y;
      vOsdClearPos(WB_SETUP_MSG, 140, 30);
      vOsdMsgPaste(WB_SETUP_MSG, OSD_MSG_JPG_EXIT_MENU);
      break;
  }
}

void vFlHpEnter(WORD wItem) large
{
  BYTE  i;

  _bFlHpMode = FLHP_INIT;

  for(i=0; i < WB_INDEX_MAX; i++)
  {
    vDisableWB(i);
  }

#ifdef SETUP_MENU_TRUECOLOR
  vCreateWB(WB_SETUP_ITEM, TRUE);
  vCreateWB(WB_SETUP_MSG, TRUE);
  vSetTcPal(WB_SETUP_ITEM, 0, BLEND_2, TRUECOLOR_GREENBLUE); 
  vSetTcPal(WB_SETUP_ITEM, 1, BLEND_2, TRUECOLOR_GREENBLUE);
  vSetTcPal(WB_SETUP_ITEM, 2, BLEND_2, TRUECOLOR_BLACK);
  vSetTcPal(WB_SETUP_ITEM, 3, BLEND_2, TRUECOLOR_WHITE);
  vSetTcPal(WB_SETUP_MSG,  0, BLEND_2, TRUECOLOR_GREENBLUE);
  vSetTcPal(WB_SETUP_MSG,  1, BLEND_2, TRUECOLOR_ORANGE); 
  vSetTcPal(WB_SETUP_MSG,  2, BLEND_2, TRUECOLOR_BLACK);
  vSetTcPal(WB_SETUP_MSG,  3, BLEND_2, TRUECOLOR_WHITE);
#else
  vCreateWB(WB_SETUP_ITEM, FALSE);
  vCreateWB(WB_SETUP_MSG, FALSE);
  vSetPal(WB_SETUP_ITEM, 0, BLEND_2, COLOR_GREENBLUE);
  vSetPal(WB_SETUP_ITEM, 1, BLEND_2, COLOR_GREENBLUE);
  vSetPal(WB_SETUP_ITEM, 2, BLEND_2, COLOR_BLACK);
  vSetPal(WB_SETUP_ITEM, 3, BLEND_2, COLOR_WHITE);
  vSetPal(WB_SETUP_MSG,  0, BLEND_2, COLOR_GREENBLUE);
  vSetPal(WB_SETUP_MSG,  1, BLEND_2, COLOR_ORANGE); 
  vSetPal(WB_SETUP_MSG,  2, BLEND_2, COLOR_BLACK);
  vSetPal(WB_SETUP_MSG,  3, BLEND_2, COLOR_WHITE);
#endif

  vEnableWB(WB_SETUP_MSG);
  vEnableWB(WB_SETUP_ITEM);
  vClearWB(WB_SETUP_MSG);
  vClearWB(WB_SETUP_ITEM);
/*  
#ifdef SETUP_MENU_TRUECOLOR
  vSetWBTcMode(WB_SETUP_ITEM);
  vSetWBTcMode(WB_SETUP_MSG);
#endif
*/
  vFlHpShowPage(FALSE);
}

WORD wFlHpLeave(BOOL bSuicide) large
{
  vDeleteWB(WB_SETUP_ITEM);
  vDeleteWB(WB_SETUP_MSG);
  
  vSendUopCmd(UOP_PAUSE, 0x01, 0x02, 0x00);

  vChgColDis();
  vHideHL(HL_1);
  vHideHL(HL_2);

#if !defined(USE_SMALL_SPTM) && defined (SPTM_SUPPORT)
  if (fgIsEqShow())
  {
    vEnableWB(WB_NORMAL_SPTM);
  }
#endif

  return ((WORD)bSharedInfo(SI_JPG_ITEM_IDX_HI)*256 + bSharedInfo(SI_JPG_ITEM_IDX_LO));
}

void vFlHpRecover(BOOL bDrawAll) large
{
  BYTE  i;

  if (bDrawAll)
  {
    for(i=0; i < WB_INDEX_MAX; i++)
    {
      vDisableWB(i);
    }

    vEnableWB(WB_SETUP_MSG);
    vEnableWB(WB_SETUP_ITEM);
    vClearWB(WB_SETUP_MSG);
    vClearWB(WB_SETUP_ITEM);
  
  #ifdef SETUP_MENU_TRUECOLOR
    vSetWBTcMode(WB_SETUP_ITEM);  
    vSetWBTcMode(WB_SETUP_MSG);
  #endif
  }

  vFlHpShowPage(TRUE);
}

BOOL fgFlOnHp(void) large
{
  BOOL fgIsGrabbed = FALSE;

  switch (_bIRKey)
  {
    case IR_ENTER:
    case IR_PLAY:
    case IR_PLAY_ENTER:
    case IR_PLAY_PAUSE:
      if(_bFlHpMode == FLHP_PAGE_END)
      {
        //vFlHpShowPage(FALSE);
        //vOsdShowWb(OSD_WB_RESTORE);
        vFlSetCmdTarget(FL_CMD_TARGET_JPEG);
      }
      else
      {
        vFlHpShowPage(FALSE);
      }
      fgIsGrabbed = TRUE;
      break;
    default:
      fgIsGrabbed = TRUE;
      break;
  }

  return fgIsGrabbed;
}

#endif  // #if (defined(DDISC_FTYPE_JPEG_SUPPORT) && defined(SUPPORT_DATA_DISC))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -