mediaplayerfunc.c

来自「M3355的源代码」· C语言 代码 · 共 2,203 行 · 第 1/5 页

C
2,203
字号
        { 
		if(tMPFCurPosition.iPlayerFocused==MPLR_CD || tMPFCurPosition.iPlayerFocused==MPLR_MUSIC)
		{
			if(LeftMicStatus == C_LEFT_MIC_ON || RightMicStatus == C_RIGHT_MIC_ON)	//gushun for karaoke volume
			{
					if(!bOutOfMPO)
					{
						MPO_RefreshOutlook(RT_HIGHLIGHT_INOUT, &iRefreshParam);
               				 gui_hdc=gMPOdc;
					}
					UiSubFuncVolumInit();
	//				g_UiCrntSubFunc == UI_SUBFUNC_BASAL;
			}
		}
		}
#endif
    	break;

    case V_KEY_UP:
        MPF_UpDown(Direction_UP);
        break;
    case V_KEY_DOWN:
        MPF_UpDown(Direction_DOWN);
        break;
    case V_KEY_ENTER:
        bPauseToPlay = FALSE;
        MPF_Enter();
        break;
    case V_KEY_PLAY:
#ifdef _TIANKE_PROG		
       if(findProgItem(tMPFCurPosition.wListHighlightIndex)!=PROG_ITEM_NULL)
         {
		g_UiPlaybackList=UI_PLAYBACKLIST_PROGRAM;
		g_VCDProCurNum=GetProgCurIndex(tMPFCurPosition.wListHighlightIndex);
		MPO_RefreshOutlook(RT_PROGPLAY_ONOFF, &iRefreshParam);		
		CheckPlayback(V_KEY_PLAY, tMPFCurPosition.wListHighlightIndex-(MPF_Attr.wItemCount-MPF_Attr.wFileCount) );		
		MPF_Play(C_USEROP);
         }		
         else
#endif	
    	if(bPauseToPlay)
    		MPF_Enter();
    	//cdda last play
    	else if(bCddaLastPlay)
    	{
			if(bsetuplastplay)//benjamin add
				break;
			
			g_UiPlaybackList=UI_PLAYBACKLIST_NORMAL;
			MPO_RefreshOutlook(RT_PROGPLAY_ONOFF, &iRefreshParam);
			
			MPF_Play(C_USEROP);
    	}
#if(_CUSTOM==CUSTOM_LG)			
		else if(g_UiCoreState==UI_CORE_PAUSE||g_UiCoreState==UI_CORE_STEP \
		||g_UiCoreState==UI_CORE_FAST||g_UiCoreState==UI_CORE_REVERSE|| \
		(g_UiCoreState==UI_CORE_STOP&&(!bIsSecondStop)) \
		&&((tMPFCurPosition.iPlayerFocused==MPLR_CD) || tMPFCurPosition.iPlayerFocused==MPLR_MUSIC))
		{
			if(VirDiscType==C_VCD10)
			{
				if(tMPFCurPosition.iFocusObj==OBJ_LIST||tMPFCurPosition.iFocusObj==OBJ_PROG)
					MPF_Enter();
				else
				{
					SpecialQuest(V_KEY_PLAY, C_USEROP);
				}
				break;
			}
			wNowDirStartNum=FileOpenGetDirStartNum();
			if((g_bCurSessionNum!=g_bPrevSessionNum)||(wNowDirStartNum!=wPrevDirStartNum))
			{
				if(tMPFCurPosition.iFocusObj==OBJ_LIST||tMPFCurPosition.iPlayerFocused==MPLR_PHOTO)
				{
					if(g_UiCoreState==UI_CORE_PAUSE)
						bPauseToPlay=TRUE;				
					MPF_Enter();
				}
			}
			else
			{
				SpecialQuest(V_KEY_PLAY, C_USEROP);
			}
		}
#endif		
    	else
    	{
	        if(tMPFCurPosition.iFocusObj==OBJ_LIST||tMPFCurPosition.iPlayerFocused==MPLR_PHOTO)
            	MPF_Enter();
            else
            {
				if(VirDiscType==C_VCD10&&g_UiCoreState==UI_CORE_STOP&&bIsSecondStop)
					MPF_NumPlay(1, C_USEROP, PLAY_NEXT, C_JUMP, C_FOLLOW);
            }
        }
        break;
    case V_KEY_RETURN:
    	MPF_Return();
    	break;        
    case V_KEY_STOP:
        MPF_PreStop();
        break;
    case V_KEY_DINTIAN_STOP:
        MPF_Stop(C_USEROP);
		
        break;
    case V_KEY_NEXT:
    	if(tMPFCurPosition.iFocusObj==OBJ_LIST||tMPFCurPosition.iFocusObj==OBJ_PROG)
    	{
			if(g_UiCoreState==UI_CORE_STOP&&bIsSecondStop)
				MPF_UpDown(Direction_DOWN);
			else
			{
				MPF_Next(C_USEROP);
			}
    	}	    
    	else
    	{
			if(g_UiCoreState==UI_CORE_STOP&&bIsSecondStop)
			{
				;
			}
			else
			{
				MPF_Next(C_USEROP);
			}
    	}
        break;
    case V_KEY_PREV:
    	if(tMPFCurPosition.iFocusObj==OBJ_LIST||tMPFCurPosition.iFocusObj==OBJ_PROG)
    	{
			if(g_UiCoreState==UI_CORE_STOP&&bIsSecondStop)
				MPF_UpDown(Direction_UP);
			else
			{
				MPF_Prev(C_JUMP);
			}
    	}	 
    	else
    	{
			if(g_UiCoreState==UI_CORE_STOP&&bIsSecondStop)
			{
				;
			}
			else
			{
				MPF_Prev(C_NOJUMP);
			}
    	}
        break;
    case V_KEY_REPEAT:
        MPF_Repeat();
        break;
    case V_KEY_REPEAT_AB:
		if(g_UiPlaybackList==UI_PLAYBACKLIST_PROGRAM)
			break;
		MPF_RepeatAB();
		break;
    case V_KEY_0:
    case V_KEY_1:
    case V_KEY_2:
    case V_KEY_3:
    case V_KEY_4:
    case V_KEY_5:
    case V_KEY_6:
    case V_KEY_7:
    case V_KEY_8:
    case V_KEY_9:
		
		if(g_UiPlaybackList!=UI_PLAYBACKLIST_NORMAL)
		{
            g_UiPlaybackRepeatRange= UI_PLAYBACKRANGE_REPEATNONE;
            NVSetEndMode( C_NORMAL_END );
			MPO_RefreshOutlook(RT_PLAYBACK_CHG, &iRefreshParam);
		}
		g_UiPlaybackList=UI_PLAYBACKLIST_NORMAL;
		MPO_RefreshOutlook(RT_PROGPLAY_ONOFF, &iRefreshParam);
		
        MPF_Num(UserKey);
        break;
    case V_KEY_TITLE:
        MPF_Title();
        break;
	case V_KEY_PROGRAM:
		if(	
			(tMPFCurPosition.iPlayerFocused==MPLR_CD || tMPFCurPosition.iPlayerFocused==MPLR_MUSIC)
			&&
			(g_pListTab[tMPFCurPosition.iListHighlightIndex].bType!=C_DIR)
		  )
			MPF_Program();
		break;		
    case V_KEY_CLEAR:
		if(g_UiPlaybackList!=UI_PLAYBACKLIST_PROGRAM){//normal play or repeat play
			if(RepeatAB_Counter == REPEAT_AB_A || RepeatAB_Counter == REPEAT_AB_B)//repeat ab
				MPF_ClearA();
			else{//normal
				if(
					(tMPFCurPosition.iPlayerFocused==MPLR_CD || tMPFCurPosition.iPlayerFocused==MPLR_MUSIC)
					&&
					(g_pListTab[tMPFCurPosition.iListHighlightIndex].bType!=C_DIR)
				  )
				 	MPF_Clear();		
			}
		}
		else{//prgram play
			if(
				(tMPFCurPosition.iPlayerFocused==MPLR_CD || tMPFCurPosition.iPlayerFocused==MPLR_MUSIC)
				&&
				(g_pListTab[tMPFCurPosition.iListHighlightIndex].bType!=C_DIR)
			  )
			 	MPF_Clear();
		}
		break;    
    case V_KEY_FF:
        MPF_FastForword();
        break;
    case V_KEY_REV:
        MPF_Reverse();
        break;
    case V_KEY_PAGEUP:
    	MPF_PageUpDown(Direction_UP);
    	break;
	case V_KEY_PAGEDOWN:
		MPF_PageUpDown(Direction_DOWN);
		break;
    case V_KEY_PAUSE:
        MPF_Pause();
        break;
    case V_KEY_OPEN:
        MPF_Open();
        break;
    case V_KEY_LASTPLAY:
		bsetuplastplay = 0;//benjamin add
        MPF_LastPlay();
        break;
    case V_KEY_SETUP:
		if(bsetuplastplay)//benjamin add
			break;
        MPF_Setup();
        break;        
    case V_KEY_POWER:
        MPF_Standby();
        break;
// David: 512K project disable 3D 		
/*#ifdef  _IR_3DSUR_KEY_Disable_		
    case V_KEY_VOICE:
#endif		
        break;*/
    case V_KEY_SurroundOnOff:
				if(g_UiCoreState!=UI_CORE_FAST&&g_UiCoreState!=UI_CORE_REVERSE)
		            MPF_SurroundOnOff();
    case V_KEY_BOOKMARK:
        break;
    case V_KEY_PROC_OFF:
        MPF_Progress();
        break;
    //for mp3 autoplay.C_KEY_A means C_KEY_AUTOPLAY
    case C_KEY_A:
    	if(tMPFCurPosition.iPlayerFocused==MPLR_MUSIC)
			MPF_Play(C_USEROP);   
		break;
#ifdef _MUTE_ENABLE_
	case V_KEY_VOLUP:
		if(tMPFCurPosition.iPlayerFocused==MPLR_CD || tMPFCurPosition.iPlayerFocused==MPLR_MUSIC)
		{
			if(!bOutOfMPO)
			{
				MPO_RefreshOutlook(RT_HIGHLIGHT_INOUT, &iRefreshParam);
	           	gui_hdc=gMPOdc;
			}
			ptr_SetMuteVolumeStatus = SetMuteVolumeStatus;
			(*ptr_SetMuteVolumeStatus)(MUTEVOLUME_STATUS_VOLUME);

			ptr_UiSubFuncMuteVolumeInit = UiSubFuncMuteVolumeInit;
			(*ptr_UiSubFuncMuteVolumeInit)();
		}
		break;
		
	case V_KEY_MUTE:
		if(iTotal)
		{
			SetTimer( OSD2_TM_ID, MPF_Timer, INFINITETIME);
			MPF_NumEnter();
		}
		if(tMPFCurPosition.iPlayerFocused==MPLR_CD || tMPFCurPosition.iPlayerFocused==MPLR_MUSIC)
		{
			if(!bOutOfMPO)
			{
				MPO_RefreshOutlook(RT_HIGHLIGHT_INOUT, &iRefreshParam);
	           	gui_hdc=gMPOdc;
			}
			ptr_SetMuteVolumeStatus = SetMuteVolumeStatus;
			(*ptr_SetMuteVolumeStatus)(MUTEVOLUME_STATUS_MUTE);
			ptr_UiSubFuncMuteVolumeInit = UiSubFuncMuteVolumeInit;
			(*ptr_UiSubFuncMuteVolumeInit)();
		}
		break;
#endif


#ifdef _BRIGHT_ENABLE_
	case V_KEY_VOLDOWN:
		if(!bOutOfMPO)
		{
			MPO_RefreshOutlook(RT_HIGHLIGHT_INOUT, &iRefreshParam);
   	    	gui_hdc=gMPOdc;
		}
		ptr_UiSubFuncBrightContrastSharpInit = UiSubFuncBrightContrastSharpInit;
		(*ptr_UiSubFuncBrightContrastSharpInit)();
		break;
#endif
    }
	if(g_UiCoreState == UI_CORE_STOP && bIsSecondStop == TRUE)
		ScrSaver(SCRSAVER_ACTIVE);
}

void MPF_Return(void)
{
   if(VirDiscType==C_VCD10)
   {
   		VfdCloseLongKey(2);
        MPO_RefreshOutlook(RT_CLOSE, &iRefreshParam);
	    ChangeLogoData(1);
		if(OSD_Setup_Parameter.bTVOutPut==C_AUTO)
		{
			bShowLOGOAsSysOption=TRUE;
		}
	    ShowLogo(C_LOGO_FRAME);
	    g_UiCrntFunc = UI_FUNC_NORMAL;
	    (UiInitFunc[UI_FUNC_NORMAL])();
   }
}

#ifdef  _KARAOKE_ENABLE_
void Kara_RespondFPKey( DWORD UserKey )
{
	tPositionInfo tMPFCurPosition;

	ScrSaver(SCRSAVER_CANCEL);

	MPO_GetPositionInfo(&tMPFCurPosition);
    
	ENTER_FUNCTION;
    
#if(_VCD_PROGRAM_MODE==_VCD_PROGRAM_ENABLE_)
	if(!CheckVCDKey(UserKey))
		return;
#endif

	switch ( UserKey )
	{
	//Exit Kara
	case V_KEY_VOLUM:
		VolumRespondTimer(C_KARAOKE_TIMER);//17 to C_KARAOKE_TIMER by chena
		MPO_RefreshOutlook(RT_HIGHLIGHT_INOUT, &iRefreshParam);
    		break;
	//Exit Kara and media player respond it
#ifdef _MUTE_ENABLE_
	case V_KEY_VOLUP:
	case V_KEY_MUTE:
		VolumRespondTimer(17);
		MPF_RespondFPKey(UserKey);    		
		break;
#endif
#ifdef _BRIGHT_ENABLE_
	case V_KEY_VOLDOWN:
		VolumRespondTimer(17);
		MPF_RespondFPKey(UserKey);    		
		break;
#endif
	case V_KEY_STOP:
	case V_KEY_DINTIAN_STOP:
	case V_KEY_SETUP:
	case V_KEY_OPEN:
	case V_KEY_POWER:	
//	case V_KEY_RETURN:
		VolumRespondTimer(17);
		MPO_RefreshOutlook(RT_HIGHLIGHT_INOUT, &iRefreshParam);
		MPF_RespondFPKey(UserKey);    		
    		break;	
	// Kara respond it
	case V_KEY_ENTER://add by chena to close OSD of KARAOKE
		VolumRespondTimer(17);
		MPO_RefreshOutlook(RT_HIGHLIGHT_INOUT, &iRefreshParam);
		break;
	case V_KEY_UP:
	case V_KEY_DOWN:
	case V_KEY_RIGHT:
	case V_KEY_LEFT:
		VolumRespondFPKey(UserKey);
    	 	break;
   	//don't support in both case.
	default:
        	break;
	}
	if(g_UiCoreState == UI_CORE_STOP && bIsSecondStop == TRUE)
		ScrSaver(SCRSAVER_ACTIVE);
	LEAVE_FUNCTION;
}	
#endif  //karaoke

int MPF_Progress()
{

    if( OSD_Setup_Parameter.bScanMode==SETUPFUNC_SCANMD_INT)
	return;
    MPO_RefreshOutlook(RT_CLOSE, &iRefreshParam);

    OSD_Setup_Parameter.bScanMode=SETUPFUNC_SCANMD_INT;
    SetScanMode(&(OSD_Setup_Parameter.bScanMode));
   ExtEscape(gui_hdc, SET_PRIMARY_SURFACE_SCANMODE, sizeof(SCAN_MODE), (LPCSTR)(&(OSD_Setup_Parameter.bScanMode)),0,NULL);
     Write_UserPara();
   MPO_RefreshOutlook(RT_ACTIVE, &iRefreshParam);
    
}

void MPF_UpDown(int Direction)
{
    tPositionInfo tMPFCurPosition;
    WORD wNum,i;

    MPO_GetPositionInfo(&tMPFCurPosition);
		if(Direction==Direction_UP)
		{
        	if( tMPFCurPosition.iPlayerFocused==MPLR_PHOTO)
				NVPlayModeChg(C_NV_Stop,C_STOP_SHOWLOGO);//in jpg ,it is call vobu to peabort
        	if( tMPFCurPosition.wListHighlightIndex == 0 )
        	{
            	FileOpenGetItemInfo(g_pListTab, MPF_Attr.wItemCount-C_ITEMPERCOL>0?MPF_Attr.wItemCount-C_ITEMPERCOL:0, C_ITEMPERCOL, MPF_Attr.wFilter,MPF_Attr.wItemCount-MPF_Attr.wFileCount);
            	MPO_RefreshOutlook(RT_TO_LASTITEM, &iRefreshParam);
            	MPF_Attr.wListBeginIndex=MPF_Attr.wItemCount<C_ITEMPERCOL?0:MPF_Attr.wItemCount-C_ITEMPERCOL;
        	}
        	else if ( tMPFCurPosition.iListHighlightIndex == 0 )
        	{
            	FileOpenGetItemInfo(g_pListTab, (tMPFCurPosition.wListHighlightIndex-tMPFCurPosition.iListHighlightIndex)-1, C_ITEMPERCOL, MPF_Attr.wFilter,MPF_Attr.wItemCount-MPF_Attr.wFileCount);
            	MPO_RefreshOutlook(RT_REFRESH_PAGEUP, &iRefreshParam);
            	MPF_Attr.wListBeginIndex -= 1;
        	}
     

⌨️ 快捷键说明

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