📄 scrsav.c
字号:
case SS_COL_GREEN1:
case SS_COL_GREEN2:
case SS_COL_GREEN3:
case SS_COL_BLACK1:
{
_bSsColIdx = SS_COL_GREEN1;
break;
}
case SS_COL_ORANGE1:
case SS_COL_ORANGE2:
case SS_COL_ORANGE3:
case SS_COL_BLACK2:
{
_bSsColIdx = SS_COL_ORANGE1;
break;
}
case SS_COL_BLUE1:
case SS_COL_BLUE2:
case SS_COL_BLUE3:
case SS_COL_BLACK3:
default:
{
_bSsColIdx = SS_COL_BLUE1;
break;
}
}
}
/*********************************************************************
Function : static void bSsShowFootBear(BYTE bFootCol) large
Description :
Parameter :
Return :
**********************************************************************/
static void bSsShowFootBear(BYTE bFootCol) large
{
_wStartX = _wPosX;
_wStartY = _wPosY;
switch(_wSsBmpIdx)
{
case BMP_SS_BEAR_UP:
{
_wEndX = _wPosX + BMP_UP_BEAR_W;
_wEndY = _wPosY + BMP_UP_BEAR_H;
break;
}
case BMP_SS_BEAR_UPR:
{
_wEndX = _wPosX + BMP_UPR_BEAR_W;
_wEndY = _wPosY + BMP_UPR_BEAR_H;
break;
}
case BMP_SS_BEAR_UPL:
{
_wEndX = _wPosX + BMP_UPL_BEAR_W;
_wEndY = _wPosY + BMP_UPL_BEAR_H;
break;
}
default:
{
return;
}
}
vChgColRep(WB_SS, bFootCol, _bSsColIdx);
}
/*********************************************************************
Function : static void bSsShowFootBird(BYTE bFootCol) large
Description :
Parameter :
Return :
**********************************************************************/
static void bSsShowFootBird(BYTE bFootCol) large
{
_wStartX = _wPosX;
_wStartY = _wPosY;
switch(_wSsBmpIdx)
{
case BMP_SS_BIRD_UP:
{
_wEndX = _wPosX + BMP_UP_BIRD_W;
_wEndY = _wPosY + BMP_UP_BIRD_H;
break;
}
case BMP_SS_BIRD_UPR:
{
_wEndX = _wPosX + BMP_UPR_BIRD_W;
_wEndY = _wPosY + BMP_UPR_BIRD_H;
break;
}
case BMP_SS_BIRD_UPL:
{
_wEndX = _wPosX + BMP_UPL_BIRD_W;
_wEndY = _wPosY + BMP_UPL_BIRD_H;
break;
}
default:
{
break;
}
}
vChgColRep(WB_SS, bFootCol, _bSsColIdx);
}
/*********************************************************************
Function : static void bSsShowFootPig(BYTE bFootCol) large
Description :
Parameter :
Return :
**********************************************************************/
static void bSsShowFootPig(BYTE bFootCol) large
{
_wStartX = _wPosX;
_wStartY = _wPosY;
switch(_wSsBmpIdx)
{
case BMP_SS_PIG_UP:
{
_wEndX = _wPosX + BMP_UP_PIG_W;
_wEndY = _wPosY + BMP_UP_PIG_H;
break;
}
case BMP_SS_PIG_UPR:
{
_wEndX = _wPosX + BMP_UPR_PIG_W;
_wEndY = _wPosY + BMP_UPR_PIG_H;
break;
}
case BMP_SS_PIG_UPL:
{
_wEndX = _wPosX + BMP_UPL_PIG_W;
_wEndY = _wPosY + BMP_UPL_PIG_H;
break;
}
default:
{
break;
}
}
vChgColRep(WB_SS, bFootCol, _bSsColIdx);
}
/*********************************************************************
Function : static void bSsShowFootHuman(BYTE bFootCol) large
Description :
Parameter :
Return :
**********************************************************************/
static void bSsShowFootHuman(BYTE bFootCol) large
{
_wStartX = _wPosX;
_wStartY = _wPosY;
switch(_wSsBmpIdx)
{
case BMP_SS_HUMAN_UP:
{
_wEndX = _wPosX + BMP_UP_HUMAN_W;
_wEndY = _wPosY + BMP_UP_HUMAN_H;
break;
}
case BMP_SS_HUMAN_UPR:
{
_wEndX = _wPosX + BMP_UPR_HUMAN_W;
_wEndY = _wPosY + BMP_UPR_HUMAN_H;
break;
}
case BMP_SS_HUMAN_UPL:
{
_wEndX = _wPosX + BMP_UPL_HUMAN_W;
_wEndY = _wPosY + BMP_UPL_HUMAN_H;
break;
}
default:
{
break;
}
}
vChgColRep(WB_SS, bFootCol, _bSsColIdx);
}
/*********************************************************************
Function : static void bSsShowBBK(BYTE bFootCol) large
Description :
Parameter :
Return :
**********************************************************************/
static void bSsShowBBK(BYTE bFootCol) large
{
_wStartX = _wPosX;
_wStartY = _wPosY;
_wEndX = _wPosX + BMP_UP_BBK_W;
_wEndY = _wPosY + BMP_UP_BBK_H;
vChgColRep(WB_SS, bFootCol, SS_COL_BLUE1);
}
/*********************************************************************
Function : static BYTE bSsBmpFadeOut(void) large
Description :
Parameter :
Return :
**********************************************************************/
static BYTE bSsBmpFadeOut(void) large
{
BYTE bRet = SS_RET_PROCESSING;
_bSsMixRat -= SS_FADE_OUT_SPEED;
if(_bSsMixRat > 0)
{
}
else
{
vClearWB(WB_SS);
_bSsMixRat = SS_MIXRATE_MAX;
_eSsState = SS_STATE_INIT;
bRet = SS_RET_FINISHED;
}
vSetWBMixRatio(WB_SS, _bSsMixRat);
return(bRet);
}
/*********************************************************************
Function : static BYTE bSsGetBmpTarget(void) large
Description :
Parameter :
Return :
**********************************************************************/
static void bSsGetBmpTarget(void) large
{
BYTE bTarget;
if((_bBmpMarker & 0x0F) == 0x0F)
{
_eBmpTarget = SS_BMP_BBK;
_bBmpMarker = 1 << SS_BMP_BBK;
return;
}
do
{
bTarget = rand() % (SS_BMP_NS - 1);
}while((bTarget > (SS_BMP_MAX - 1)) || (_bBmpMarker & (1 << bTarget)));
_bBmpMarker |= 1 << bTarget;
_eBmpTarget = bTarget;
}
void vScrSaveInit(void) large
{
if (fgFlCheckStatus(FL_STATUS_IN_MENU) || fgIsPcdPlay()
#ifdef GUI_DC_SELECT
|| _fgInitMsgKeep
#endif
)
{
vDeleteWB(FSMENU_OSD_WBIDX_BASIC);
vDeleteWB(FSMENU_OSD_WBIDX_SEC);
vDeleteWB(WB_SELMENU);
}
if(fgIsInBrowser())
{
// vDeleteWB(WB_BRW_ITEM);
// vDeleteWB(WB_BRW_HEAD);
vBrowserClose();
}
//vOsdShowWb(OSD_WB_DISABLE);
//vDisableWB(WB_OVERLAY_MSG1);
vDisableWB(WB_NORMAL_INITMSG);
#ifdef SCRSAV_DEBUG
DRS232LogB(bHiByte(wHiWord(_dCreatedWB)), bLoByte(wHiWord(_dCreatedWB)), bHiByte(wLoWord(_dCreatedWB)), bLoByte(wLoWord(_dCreatedWB)));
#endif
vCreateWB(WB_SS, TRUE);
vSetWBTcColor(WB_SS);
_bSSDelay = 0;
_bBmpMarker = 0;
_bSsMixRat = SS_MIXRATE_MAX;
_eDiretion = SS_DIR_NONE;
_eSsState = SS_STATE_INIT;
_wSsBmpIdx = BMP_NULL;
bSsGetBmpTarget();
vSaveOsdState();
vHideHL(HL_1);
vHideHL(HL_2);
vChgColDis();
vSetTransEn(WB_SS, 0);
vSetTcPal(WB_SS, SS_COL_WHITE1, BLEND_2, SS_COLOR_WHITE);
vSetTcPal(WB_SS, SS_COL_GREEN1, BLEND_2, SS_COLOR_GREEN);
vSetTcPal(WB_SS, SS_COL_ORANGE1, BLEND_2, SS_COLOR_ORANGE);
vSetTcPal(WB_SS, SS_COL_BLUE1, BLEND_2, SS_COLOR_BLUE);
vSendUopCmd(UOP_SCR_SAVE, SV_SCR_SAVER_ON, 0, 0);
vEnableWB(WB_SS);
}
/*********************************************************************
Function : static BYTE bSsBmpStateBear(void) large
Description :
Parameter :
Return :
**********************************************************************/
static BYTE bSsBmpStateBear(void) large
{
BYTE bRet = SS_RET_PROCESSING;
switch(_eSsState)
{
case SS_STATE_INIT:
{
bSsGetStartPos(SS_POS_BOTTOM, BMP_BEAR_MAX_W);
vSsGetBmpColor();
if(bSsGetNextPosBear() == SS_RET_SUCCESS)
{
vSsPasteBmp();
bSsShowFootBear(SS_COL_BLACK1);
_eSsState = SS_STATE_WALKING;
}
break;
}
case SS_STATE_WALKING:
{
bSsShowFootBear(SS_COL_BLACK2);
_eSsState = SS_STATE_PASTE;
break;
}
case SS_STATE_PASTE:
{
if(bSsGetNextPosBear() != SS_RET_SUCCESS)
{
_eSsState = SS_STATE_FINISHED;
}
else
{
vSsPasteBmp();
bSsShowFootBear(SS_COL_BLACK1);
_eSsState = SS_STATE_WALKING;
}
break;
}
case SS_STATE_FINISHED:
{
bRet = bSsBmpFadeOut();
break;
}
default:
bRet = SS_RET_FALSE;
break;
}
return(bRet);
}
/*********************************************************************
Function : static BYTE bSsBmpStateBird(void) large
Description :
Parameter :
Return :
**********************************************************************/
static BYTE bSsBmpStateBird(void) large
{
BYTE bRet = SS_RET_PROCESSING;
switch(_eSsState)
{
case SS_STATE_INIT:
{
bSsGetStartPos(SS_POS_BOTTOM, BMP_BIRD_MAX_W);
vSsGetBmpColor();
if(bSsGetNextPosBird() == SS_RET_SUCCESS)
{
vSsPasteBmp();
bSsShowFootBird(SS_COL_BLACK1);
_eSsState = SS_STATE_WALKING;
}
break;
}
case SS_STATE_WALKING:
{
bSsShowFootBird(SS_COL_BLACK2);
_eSsState = SS_STATE_PASTE;
break;
}
case SS_STATE_PASTE:
{
if(bSsGetNextPosBird() != SS_RET_SUCCESS)
{
_eSsState = SS_STATE_FINISHED;
}
else
{
vSsPasteBmp();
bSsShowFootBird(SS_COL_BLACK1);
_eSsState = SS_STATE_WALKING;
}
break;
}
case SS_STATE_FINISHED:
{
bRet = bSsBmpFadeOut();
break;
}
default:
return(SS_RET_FALSE);
}
return(bRet);
}
/*********************************************************************
Function : static BYTE bSsBmpStatePig(void) large
Description :
Parameter :
Return :
**********************************************************************/
static BYTE bSsBmpStatePig(void) large
{
BYTE bRet = SS_RET_PROCESSING;
switch(_eSsState)
{
case SS_STATE_INIT:
{
bSsGetStartPos(SS_POS_BOTTOM, BMP_PIG_MAX_W);
vSsGetBmpColor();
if(bSsGetNextPosPig() == SS_RET_SUCCESS)
{
vSsPasteBmp();
bSsShowFootPig(SS_COL_BLACK1);
_eSsState = SS_STATE_WALKING;
}
break;
}
case SS_STATE_WALKING:
{
bSsShowFootPig(SS_COL_BLACK2);
_eSsState = SS_STATE_PASTE;
break;
}
case SS_STATE_PASTE:
{
if(bSsGetNextPosPig() != SS_RET_SUCCESS)
{
_eSsState = SS_STATE_FINISHED;
}
else
{
vSsPasteBmp();
bSsShowFootPig(SS_COL_BLACK1);
_eSsState = SS_STATE_WALKING;
}
break;
}
case SS_STATE_FINISHED:
{
bRet = bSsBmpFadeOut();
break;
}
default:
return(SS_RET_FALSE);
}
return(bRet);
}
/*********************************************************************
Function : static BYTE bSsBmpStateHuman(void) large
Description :
Parameter :
Return :
**********************************************************************/
static BYTE bSsBmpStateHuman(void) large
{
BYTE bRet = SS_RET_PROCESSING;
switch(_eSsState)
{
case SS_STATE_INIT:
{
bSsGetStartPos(SS_POS_BOTTOM, BMP_HUMAN_MAX_W);
vSsGetBmpColor();
if(bSsGetNextPosHuman() == SS_RET_SUCCESS)
{
vSsPasteBmp();
bSsShowFootHuman(SS_COL_BLACK1);
_eSsState = SS_STATE_WALKING;
}
break;
}
case SS_STATE_WALKING:
{
bSsShowFootHuman(SS_COL_BLACK2);
_eSsState = SS_STATE_PASTE;
break;
}
case SS_STATE_PASTE:
{
if(bSsGetNextPosHuman() != SS_RET_SUCCESS)
{
_eSsState = SS_STATE_FINISHED;
}
else
{
vSsPasteBmp();
bSsShowFootHuman(SS_COL_BLACK1);
_eSsState = SS_STATE_WALKING;
}
break;
}
case SS_STATE_FINISHED:
{
bRet = bSsBmpFadeOut();
break;
}
default:
return(SS_RET_FALSE);
}
return(bRet);
}
/*********************************************************************
Function : static BYTE bSsBmpStateBBK(void) large
Description :
Parameter :
Return :
**********************************************************************/
static BYTE bSsBmpStateBBK(void) large
{
BYTE bRet = SS_RET_PROCESSING;
switch(_eSsState)
{
case SS_STATE_INIT:
{
bSsGetStartPos(SS_POS_BOTTOM, BMP_BBK_MAX_W);
vSsGetBmpColor();
if(bSsGetNextPosBBK() == SS_RET_SUCCESS)
{
vSsPasteBmp();
bSsShowBBK(SS_COL_BLACK1);
_eSsState = SS_STATE_WALKING;
}
break;
}
case SS_STATE_WALKING:
{
_eSsState = SS_STATE_PASTE;
break;
}
case SS_STATE_PASTE:
{
if(bSsGetNextPosBBK() != SS_RET_SUCCESS)
{
_eSsState = SS_STATE_FINISHED;
}
else
{
vSsPasteBmp();
bSsShowBBK(SS_COL_BLACK1);
_eSsState = SS_STATE_WALKING;
}
break;
}
case SS_STATE_FINISHED:
{
bRet = bSsBmpFadeOut();
break;
}
default:
return(SS_RET_FALSE);
}
return(bRet);
}
static code bSsBmpState _funSsBmpState[SS_BMP_NS] =
{
bSsBmpStateBear,
bSsBmpStateBird,
bSsBmpStatePig,
bSsBmpStateHuman,
bSsBmpStateBBK,
};
void vScrSaveState(void) large
{
BYTE bRet;
_bSSDelay ++;
if(_bSSDelay == SS_PROCESS_PERIOD)
{
bRet = _funSsBmpState[_eBmpTarget]();
if(SS_RET_FINISHED == bRet)
{
bSsGetBmpTarget();
}
_bSSDelay = 0;
}
}
void vScrSaveExit(void) large
{
BYTE bTmp1 = bSharedInfo(SI_INIT_STATE);
vOsdCmdFlush();
while (bSharedInfo(SI_OSD_CMD_BUF_FULL) == TRUE)
{
/* wait till flush command finish */
}
vDeleteWB(WB_SS);
vRestoreOsdState();
if (SV_NO_DISC == bTmp1 || SV_TRAY_OPENING == bTmp1 || SV_UNKNOWN_DISC == bTmp1)
{
vEnableWB(WB_NORMAL_INITMSG);
}
#ifdef GUI_DC_SELECT
else if ((DEVICE_DVD != _bDevType) && _fgInitMsgKeep)
{
vEnableWB(WB_NORMAL_INITMSG);
}
#endif
else
{
vDeleteWB(WB_NORMAL_INITMSG);
}
if (fgFlCheckStatus(FL_STATUS_IN_MENU))
{
vPlayerShowLogo(ISO_STOP_LOGO, ISO_LOGO_COLOR);
vEnableWB(FSMENU_OSD_WBIDX_BASIC);
if(fgFlInItemInfo())
{
vFlItemInfoInit();
vUpdMp3Info();
}
else
{
vFlRecover();
}
}
vSendUopCmd(UOP_SCR_SAVE, SV_SCR_SAVER_OFF, 0, 0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -