📄 combine.c
字号:
/**********************************************************************/
/*************** MTK CONFIDENTIAL & COPYRIGHTED ****************/
/*************** ****************/
/*************** $Modtime:: 05/06/28 10:24p $ ****************/
/*************** $Revision: 2.0 $ ****************/
/*************** ****************/
/*************** Description : Key-Combine State ****************/
/*************** Machine ****************/
/*************** ****************/
/*************** Company : MediaTek Inc. ****************/
/*************** Programmer : Sung-Ching Lin ****************/
/**********************************************************************/
#define _COMBINE_C_
#pragma NOAREGS
#include "general.h"
#include "posi.h"
#include "../../procdef.h"
#ifdef SRVFORCESTOP
extern BOOL _bForceStop;
#endif
#ifdef RISC_SP60
extern BYTE bSetReverbMd(WORD wEEPos, BYTE bValue) large;
extern BYTE bSetEqPreset(WORD wEEPos, BYTE bValue) large;
#endif
#ifdef VIDEOIN_DETECT
extern BYTE xdata BBK_VIDEOIN_FLAG;
extern void BBKTFTSetNTSCPAL(void) large;
#endif
#if defined(YJT_CTL)&&defined(HAVE_TRUE_REGION)//billy[070104]
extern BYTE xdata _fgQPlay;
#endif
// *********************************************************************
// Static Function Prototype
// *********************************************************************
static void vShowDiscType(BYTE bDiscType) large;
/************************************************************************
Function : void vSetPlayType(BYTE bType)
Description : 8032 play type define, set play type dependant setting
Parameter : None
Return : None
************************************************************************/
void vSetPlayType(BYTE bType) large
{
switch (bType)
{
case SV_DVD_VIDEO:
case SV_DVD_AUDIO:
case SV_DVD_VR:
case SV_MINI_DVD:
{
#ifdef DVD_DISC_ID_CHK
if (!fgIsDiscInitChecked())
{
return;
}
else
#endif
{
_bPlayType = PLAY_TYPE_DVD;
vSetKeyState(KEY_NONISO);
if ( fgIsInSetupMenu() )
{
vSetKeyState(KEY_SETUP);
}
vDVDInit(bType);
}
break;
}
case SV_SVCD:
case SV_CVD:
case SV_VCD3_0:
case SV_VCD2_0:
case SV_VCD1_1:
case SV_VCD6_0:
case SV_VCD6_1:
{
#ifdef VCD_DISC_ID_CHK
if (!fgIsDiscInitChecked())
{
return;
}
else
#endif
{
_bPlayType = PLAY_TYPE_VCD;
vSetKeyState(KEY_NONISO);
if ( fgIsInSetupMenu() )
{
vSetKeyState(KEY_SETUP);
}
vVCDInit(bType);
}
break;
}
#ifdef SUPPORT_DATA_DISC
case SV_DATA:
{
#ifdef ISO_DISC_ID_CHK
if (!fgIsDiscInitChecked())
{
return;
}
else
#endif
{
_bPlayType = PLAY_TYPE_ISO;
vSetKeyState(KEY_ISO);
if ( fgIsInSetupMenu() )
{
vSetKeyState(KEY_SETUP);
}
vISOInit(bType);
}
break;
}
case SV_PCD:
{
#ifdef PCD_DISC_ID_CHK
if (!fgIsDiscInitChecked())
{
return;
}
else
#endif
{
_bPlayType = PLAY_TYPE_PCD;
vSetKeyState(KEY_ISO);
if ( fgIsInSetupMenu() )
{
vSetKeyState(KEY_SETUP);
}
vPCDInit(bType);
}
break;
}
#endif /* SUPPORT_DATA_DISC */
case SV_DTS_CS:
case SV_CDDA:
case SV_SACD:
case SV_CDG:
case SV_HDCD:
{
#ifdef CDDA_DISC_ID_CHK
if (!fgIsDiscInitChecked())
{
return;
}
else
#endif
{
_bPlayType = PLAY_TYPE_CDDA;
vSetKeyState(KEY_NONISO);
if ( fgIsInSetupMenu() )
{
vSetKeyState(KEY_SETUP);
}
vCDDAInit(bType);
}
break;
}
case SV_AUDIO_IN:
{
_bPlayType = PLAY_TYPE_AIN;
vSetKeyState(KEY_NONISO);
if ( fgIsInSetupMenu() )
{
vSetKeyState(KEY_SETUP);
}
vAINInit(bType);
break;
}
default:
{
vSetKeyState(KEY_INIT);
if ( fgIsInSetupMenu() )
{
vSetKeyState(KEY_SETUP);
}
_bPlayType = PLAY_TYPE_NONE;
break;
}
} /* switch (bType) */
#ifdef PORTABLEDVD //bywhy 2003/08/05
vAdspVolume( _rAudioCtrl.sVol.bCurVol);
#endif
if(bType == SV_DTS_CS //TONE
#ifdef SUPPORT_DVD_AUDIO
|| bType == SV_DVD_AUDIO
#endif
)
{
fgEepromWriteByte(TONE_POS, ZERO_KEY_LEVEL);
#ifdef TONE_IN_SETUP
bToneChange(ZERO_KEY_LEVEL);
#endif
}
if(bType == SV_DTS_CS //EQ SURROUND
#ifdef SUPPORT_DVD_AUDIO
|| bType == SV_DVD_AUDIO
#endif
)
{
if(bEepromReadByte(EQ_PRESET_POS) != EV_NONE)
{
fgEepromWriteByte(EQ_PRESET_POS, 0);
bSetEqPreset(0,0);
}
if(bEepromReadByte(REVERB_MD_POS) != EV_NONE)
{
fgEepromWriteByte(REVERB_MD_POS, 0);
bSetReverbMd(0,0);
}
}
vOsdDisplayChange(DISP_INIT, 0);
#ifdef DISC_IDENT_AUTO_MUTE_OFF
if (_bPlayType != PLAY_TYPE_NONE)
{
if (fgIsMute()) // if mute on
{
vAdspMute(ADSP_OFF, 0);
vOsdShowMute(OSD_MUTE_CLEAR);
}
}
#endif
vShowDiscType(bType);
}
/************************************************************************
Function : void vClearPlayType(void)
Description : Clear play type related setting
Parameter : None
Return : None
************************************************************************/
void vClearPlayType(void) large
{
if (fgIsDvdPlay())
{
vDVDExit();
}
else if (fgIsVcdPlay())
{
vVCDExit();
}
#ifdef SUPPORT_DATA_DISC
else if (fgIsIsoPlay())
{
vISOExit();
}
else if (fgIsPcdPlay())
{
vPCDExit();
}
#endif /* SUPPORT_DATA_DISC */
else if (fgIsCddaPlay())
{
vCDDAExit();
}
else if (fgIsAinPlay())
{
vAINExit();
}
_bPlayType = PLAY_TYPE_NONE;
vSetKeyState(KEY_INIT);
if ( fgIsInSetupMenu() )
{
vSetKeyState(KEY_SETUP);
}
}
#ifdef AUDIO_IN_EN
// *********************************************************************
// Function : void vPlayerFuncSwitch(BYTE bMode) large
// Description :
// Parameter : None
// Return : None
// *********************************************************************
void vPlayerFuncSwitch(BYTE bMode) large
{
if (_fgNotify == FALSE) // system init stage
{
if (bMode == PLAYER_FUNC_AIN)
{
_bPlayerFuncMode = PLAYER_FUNC_AIN;
}
else /* if (bMode == PLAYER_FUNC_DVD) */
{
_bPlayerFuncMode = PLAYER_FUNC_DVD;
}
}
else // system run stage
{
if (bMode == PLAYER_FUNC_AIN)
{
if (fgIsFuncAin() == FALSE)
{
vPlayerReset();
_bPlayerFuncMode = PLAYER_FUNC_AIN;
vSendUopCmd(UOP_OPEN_CLOSE, SV_PSEUDO_OPEN, 0, 0);
_bUISrvStatus = PLAYER_SRV_STOP;
if (_bDiscLoadSt >= DISC_LOAD_STARTUP)
{
_fgSkipSrvStart = TRUE;
}
}
}
else /* if (bMode == PLAYER_FUNC_DVD) */
{
if (fgIsFuncDvd() == FALSE)
{
vPlayerReset();
_bPlayerFuncMode = PLAYER_FUNC_DVD;
vSendUopCmd(UOP_OPEN_CLOSE, SV_PSEUDO_CLOSE, 0, 0);
}
}
}
}
#endif /* AUDIO_IN_EN */
// *********************************************************************
// Function : void vPlayerReset(void) large
// Description : called from playback
// Parameter : None
// Return : None
// *********************************************************************
void vPlayerReset(void) large
{
BYTE i;
vSetSharedInfo(SI_JOLIET_LEVEL , 0); //tanglushan
vSetSharedInfo(SI_DDISC_DEF_PMODE, SV_REPEAT_NONE);//tanglusan 1014
#ifdef BBK_LAST_MEMORY
_fgPlayFromMemory = FALSE;
#endif
/* check setup menu exist moved to WB reset */
// clear play type, call every play module exit function
vClearPlayType();
//songchen 060410 for some variable initialization.
vSetSharedInfo(SI_JPG_STT, JPEGSTT_DEC_FSH);
vSetSharedInfo(SI_JPG_SLIDE_SHOW_DONE, JPEG_SLIDESHOW_FSH);
// reset player timer beep count
#if (defined(DVD_MENU_UPDATE_VFD_CIRCLE) || defined(JPEG_DECODING_UPDATE_VFD_CIRCLE))
_bPlayerTimerBeepCnt = PLAYER_TIMER_BEEP_PERIOD*2;
#else
_bPlayerTimerBeepCnt = PLAYER_TIMER_BEEP_PERIOD;
#endif
// reset display mode
vOsdShowWb(OSD_WB_RESET);
// reset zoom indicator flag
_rOsdStateCtx.fgZoomBrShow = FALSE;
// reset EQ state
_rEqState.bDispType = OSD_EQ_TYPE_DISABLE;
// reset input state
vResetInputState();
// for RISC communication states
_bLastSyncUop = UOP_NONE;
_bLastPbcState = SV_PBC_INIT;
// reset osd state
vOsdDisplayChange(DISP_INIT, 0);
// reset search state
_rSearchStateCtx.bType = SEARCH_NONE;
// Seiya: Added on 2004/07/27 for dual mono switch.
// reset program state
vSelMenuReset();
// this is play type dependant
#ifdef PLAYER_KARAOKE
if (bAdspCurrVocal() != VOCAL_NO_ASSIST)
{
vAdspVocalAssist(VOCAL_NO_ASSIST);
#ifdef BBK_NEW_GUI
fgEepromWriteByte(KAR_HELP_POS, VOCAL_NO_ASSIST); //add by linshangbo 06.02.07
#endif
}
#ifdef KARAOKE_MIC_REC
vMicRecCtrl(MIC_REC_CTRL_RESET);
#endif
#else /* not define PLAYER_KARAOKE */
if (bAdspCurrVocal() != AUDIO_STEREO)
{
vAdspLR(AUDIO_STEREO);
}
#endif /* PLAYER_KARAOKE */
vAdspReset();
#if !defined(NO_SM_NOTIFY)
SmInit();
#endif
// for vocal assist
#ifdef PLAYER_KARAOKE
_fgVocalOn = FALSE;
#endif
#ifdef AUDIO_STREAM_CHANGE_MUTE
_fgAstChg = FALSE;
#endif
}
/************************************************************************
Function :
Description : This function must be moved to screen saver moudle
Parameter :
Return : = 0 -> screen saver not allowed
> 0 -> screen saver allowed
************************************************************************/
BOOL fgScrSaverCheck(void) large
{
BYTE bInitState = bSharedInfo(SI_INIT_STATE);
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
#ifdef VIDEOIN_DETECT
if(BBK_VIDEOIN_FLAG == 1)
return(FALSE);
#endif
#ifdef GUI_DC_SELECT //billy[061005] prevent the savescreen on
if((_bDevType == DEVICE_USB||_bDevType == DEVICE_CARD)
/*&&bPbcState==SV_PAUSE*/
&&bSharedInfo(SI_MP3_BITRATE_LO)!=0xff)
{
return(FALSE);
}
#endif
if (bEepromReadByte(SCR_SAVER_POSITION) == EV_OFF)
{
return FALSE;
}
if(fgFlCheckStatus(FL_STATUS_IN_HELP) || fgFlCheckStatus(FL_STATUS_IN_JPGDGST)) //add by linshangbo 06.02.20
{
return(FALSE);
}
switch (bInitState)
{
case SV_LOADING_DISC:
case SV_TRAY_CLOSING:
case SV_TRAY_ERROR:
#ifdef PORTABLEDVD
case SV_TRAY_OPENING:
#endif
return (FALSE); /* not allowed */
#ifndef PORTABLEDVD
case SV_TRAY_OPENING:
#endif
case SV_NO_DISC:
case SV_UNKNOWN_DISC:
return (TRUE); /* allowed */
case SV_DISC_IDENTIFIED:
default:
break; /* not determined */
}
switch (bPbcState)
{
case SV_PAUSE:
case SV_STEP:
case SV_STEP_BACK:
case SV_STOP:
case SV_STOP_RESUME:
case SV_SETUP_PAUSE:
case SV_PTL_ERR:
case SV_REGION_ERR:
case SV_DISC_ERR:
case SV_SET_TMP_PTL:
return (TRUE); /* allowed */
case SV_PLAY:
case SV_FF:
case SV_SF:
case SV_FR:
case SV_SR:
case SV_FREEZE:
case SV_DIGEST9:
case SV_DIGEST4:
case SV_PBC_INIT:
return (FALSE); /* not allowed */
case SV_DIGEST:
case SV_STILL:
#ifdef SUPPORT_DATA_DISC
if (fgIsIsoPlay() || fgIsPcdPlay())
{
//if (fgFsMenuIsDecoding() == FALSE)
if (fgFlCheckStatus(FL_STATUS_BUSY) == FALSE)
{
/* if not decoding, allowed */
return (TRUE);
}
else
{
/* if is decoding, not allowed */
return (FALSE);
}
}
else
{
/* DVD/VCD is not allowed in still mode */
return (FALSE);
}
break;
#endif /* SUPPORT_DATA_DISC */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -