📄 stposdfn.c
字号:
/**********************************************************************/
/*************** MTK CONFIDENTIAL & COPYRIGHTED ****************/
/*************** ****************/
/*************** $Modtime:: 07/04/09 11:49a $ ****************/
/*************** $Revision:: 2 $ ****************/
/*************** ****************/
/*************** Description : Setup OSD ****************/
/*************** relative routine ****************/
/*************** ****************/
/*************** Company : MediaTek Inc. ****************/
/*************** Programmer : Peter Huang ****************/
/**********************************************************************/
#include "general.h"
#ifdef SIMPLE_MENU
#include "stpmenu1.h"
#else
#include "stpmenu.h"
#endif
/*
#ifdef SIMPLE_MENU
#include "menu1.h"
#else
#include "menu.h"
#endif
*/
#include "stposdfn.h"
#pragma NOAREGS
//#define USE_COMMON_CTRL
extern xdata BYTE _bMinShowData;
#if 0
#ifndef SIMPLE_MENU
// *********************************************************************
// Function : void vShowSlide(BYTE bWBIdx) large
// Description :
// Parameter :
// Return : None
// *********************************************************************
#ifdef USE_COMMON_CTRL
void vShowSlide(BYTE bWBIdx) large
{
}
#else
void vShowSlide(BYTE bWBIdx) large
{
#if 0
_wEndX = _wStartX + 32;
_wStartY -= 10;
_wEndY += 10;
vRectangle(bWBIdx, 0, 0, 1, ENTRY_COL_BTN_BG);
#endif
}
#endif
// *********************************************************************
// Function : void vShowSlideSel(BYTE bWBIdx) large
// Description :
// Parameter :
// Return : None
// *********************************************************************
#ifdef USE_COMMON_CTRL
void vShowSlideSel(BYTE bWBIdx) large
{
WORD wValue;
BYTE bPrevValue, bCurValue;
if (_rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wType == ENTRY_TYPE_V_SLIDER)
{
wValue = (WORD)(bOptMaxEntryNum(_rMenu, _bMenu, _bEntry) - _bDataPrev)*100/(WORD)bOptMaxEntryNum(_rMenu, _bMenu, _bEntry);
}
else //if (_rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wType == ENTRY_TYPE_V_SLIDER_SIGNED)
{
wValue = (WORD)((char)bOptMaxEntryNum(_rMenu, _bMenu, _bEntry) - (char)_bDataPrev)*100/((WORD)bOptMaxEntryNum(_rMenu, _bMenu, _bEntry) * 2);
}
if (_bDataPrev == 0xff)
bPrevValue = 0xff;
else
bPrevValue = (BYTE)wValue;
if (//(_rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wType == TYPE_SCR) ||
(_rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wType == ENTRY_TYPE_V_SLIDER))
// (_rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wType == TYPE_VOL))
{
wValue = (WORD)(bOptMaxEntryNum(_rMenu, _bMenu, _bEntry) - _bDataCur)*100/(WORD)bOptMaxEntryNum(_rMenu, _bMenu, _bEntry);
}
else //if (_rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wType == ENTRY_TYPE_V_SLIDER_SIGNED)
{
wValue = (WORD)(bOptMaxEntryNum(_rMenu, _bMenu, _bEntry) - (char)_bDataCur)*100/((WORD)bOptMaxEntryNum(_rMenu, _bMenu, _bEntry) * 2);
}
bCurValue = (BYTE)wValue;
vWaitBusy();
vBeginWriteSharedGrp(SI_OSD_CMD_PRM_GRP, OSD_CMD_SLIDER_SHOW);
vWriteNextSharedItem(bWBIdx);
vWriteNextSharedItem(bPrevValue);
vWriteNextSharedItem(bCurValue);
/*
if (_rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wType == TYPE_VOL)
{
vWriteNextSharedItem(11);
}
else
*/
{
vWriteNextSharedItem(2);
}
vWriteNextSharedItem(bLoByte(_wStartX));
vWriteNextSharedItem(bHiByte(_wStartX));
vWriteNextSharedItem(bLoByte(_wStartY));
vWriteNextSharedItem(bHiByte(_wStartY));
vWriteNextSharedItem(bLoByte(_wEndX));
vWriteNextSharedItem(bHiByte(_wEndX));
vWriteNextSharedItem(bLoByte(_wEndY));
vWriteNextSharedItem(bHiByte(_wEndY));
vSendOsdCmd();
}
#else
void vShowSlideSel(BYTE bWBIdx) large
{
#if 0
WORD wH;
WORD wStartX, wStartY, wEndX, wEndY;
wStartX = _wStartX;
wStartY = _wStartY;
wEndX = _wEndX;
wEndY = _wEndY;
//if (_rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wType == TYPE_SCR)
if (_rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wType == ENTRY_TYPE_V_SLIDER)
{
if (_bDataPrev != 0xFF)
{
wH = ((bOptMaxEntryNum(_rMenu, _bMenu, _bEntry) - _bDataPrev) << 3) - 4;
}
}
else
{
wH = ((bOptMaxEntryNum(_rMenu, _bMenu, _bEntry) - (char)_bDataPrev) << 2) - 4;
}
_wStartX = wStartX + 4;
_wStartY = wStartY + wH;
_wEndX = wStartX + 28;
_wEndY = _wStartY;
vOsdShowLine(bWBIdx, ENTRY_COL_BTN_BG, 9);
//_wStartX = wStartX + 16;
_wStartX = wStartX + 15;
_wEndX = _wStartX;
_wStartY = wStartY;
_wEndY = wEndY;
vOsdShowLine(bWBIdx, ENTRY_COL_WHITE, 1);
//_wStartX = wStartX + 17;
_wStartX = wStartX + 16;
_wEndX = _wStartX;
_wStartY = wStartY;
_wEndY = wEndY;
vOsdShowLine(bWBIdx, ENTRY_COL_BLACK, 1);
//if (_rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wType == TYPE_SCR)
if (_rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wType == ENTRY_TYPE_V_SLIDER)
{
wH = ((bOptMaxEntryNum(_rMenu, _bMenu, _bEntry) - _bDataCur) << 3) - 4;
}
else
{
wH = ((bOptMaxEntryNum(_rMenu, _bMenu, _bEntry) - (char)_bDataCur) << 2) - 4;
}
//_wStartX = wStartX + 4;
//_wEndX = wStartX + 28;
_wStartX = wStartX + 3;
_wEndX = wStartX + 27;
_wStartY = wStartY + wH;
_wEndY = _wStartY;
vOsdShowLine(bWBIdx, ENTRY_COL_BTN_BG, 9);
_wStartX += 1;
_wEndX -= 1;
_wStartY += 1;
_wEndY = _wStartY+6;
vSetBtnCol(WB_SETUP_ITEM, 0, 0, ENTRY_COL_BLACK, ENTRY_COL_WHITE);
vCreateButton(bWBIdx, 9, 2);
vUnselButton(bWBIdx, 9);
#endif
}
#endif // #ifdef USE_COMMON_CTRL
#endif // #ifndef SIMPLE_MENU
#endif
#if 0
// *********************************************************************
// Function : static void vSetupEntryHide(BYTE bMsgIndex, BYTE bWBIdx) large
// Description :
// Parameter :
// Return : None
// *********************************************************************
void vSetupEntryHide(WORD wMsgIndex, BYTE bWBIdx) large
{
vWaitBusy();
vBeginWriteSharedGrp(SI_OSD_CMD_PRM_GRP, OSD_CMD_CLEAR_MSG);
vWriteNextSharedItem(bWBIdx);
vWriteNextSharedItem(bLoByte(_wStartX));
vWriteNextSharedItem(bHiByte(_wStartX));
vWriteNextSharedItem(bLoByte(_wStartY));
vWriteNextSharedItem(bHiByte(_wStartY));
vWriteNextSharedItem(bLoByte(wMsgIndex));
vWriteNextSharedItem(bHiByte(wMsgIndex));
vWriteNextSharedItem(OSD_NO_DISAPPEAR);
vSendOsdCmd();
}
#endif
// *********************************************************************
// Function : static void vSetupEntryShow(BYTE bMsgIndex, BYTE bWBIdx) large
// Description :
// Parameter :
// Return : None
// *********************************************************************
void vSetupEntryShow(WORD wMsgIndex, BYTE bWBIdx) large
{
vWaitBusy();
vBeginWriteSharedGrp(SI_OSD_CMD_PRM_GRP, OSD_CMD_PASTE_MSG_R);
// vWriteNextSharedItem(CODE_PAGE_ASC2);
vWriteNextSharedItem(CODE_PAGE_ASC);
vWriteNextSharedItem(bWBIdx);
vWriteNextSharedItem(bLoByte(_wStartX));
vWriteNextSharedItem(bHiByte(_wStartX));
vWriteNextSharedItem(bLoByte(_wStartY));
vWriteNextSharedItem(bHiByte(_wStartY));
vWriteNextSharedItem(bLoByte(wMsgIndex));
vWriteNextSharedItem(bHiByte(wMsgIndex));
vSendOsdCmd();
}
#if (!defined(PLAYER_FLMENU) && defined(SUPPORT_DATA_DISC))
#ifdef DDISC_FTYPE_JPEG_SUPPORT
extern void vFsMenuChangeLang(BYTE bLangIdx) large;
#endif
#endif
// *********************************************************************
// Function : void vChangeLang(void) large
// Description :
// Parameter :
// Return : None
// *********************************************************************
BYTE bChangeLang(WORD wEEPos, BYTE bValue) large
{
if (_fgNotify)
{
_bPrevMenu = 0xFF;
_bPrevItem = 0xFF;
vOsdSetLang(bEepromReadByte(OSD_LANG_POSITION));
#if (!defined(PLAYER_FLMENU) && defined(SUPPORT_DATA_DISC))
#ifdef DDISC_FTYPE_JPEG_SUPPORT
vFsMenuChangeLang(bEepromReadByte(OSD_LANG_POSITION));
#endif
#endif
#ifdef PLAYER_FLMENU
if (fgIsIsoPlay())
{
vFlChgLang(bEepromReadByte(OSD_LANG_POSITION));
}
#endif
return (ENTRY_FUN_REDRAW);
}
return (ENTRY_FUN_OK);
}
// *********************************************************************
// Function : void vShowMark(void) large
// Description :
// Parameter :
// Return : None
// *********************************************************************
#if 0 //def SHOW_MARK
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -