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

📄 normal.c

📁 M3355的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
        switch (g_UiPlaybackRepeatRange)
        {
        case UI_PLAYBACKRANGE_REPEATNONE:
            if((DiscType == C_VCD20||DiscType == C_SVCD)&& (wTotalTitle == 1) && g_UiPBCState == C_OFF)
        	return NXPRE_NONExist;

            if (g_UiPlaybackMethod == UI_PLAYBACKMETHOD_NORMAL)
                return NXPRE_NORMAL;
#if 0
	if (g_UiPlaybackMethod == UI_PLAYBACKMETHOD_SHUFFLE)
            {
            	if(UIKey_Times<0)
                	UIKey_Times=-UIKey_Times;
                if ((wPlayNow + UIKey_Times) <= NVGetTTNsOrTrks())
                    wPlayNow += UIKey_Times;
                else
                    BEndFlag = TRUE;
                if (BEndFlag)
                    return NXPRE_NONExist;
                else
                {
                    Shuffle(wPlayNow); // prepare PlayPointList[wPlayNow]
                    pPlayInfo->wTTN = PlayPointList[wPlayNow];
                    pPlayInfo->dwLBAAddr = 0;
                    return NXPRE_OK;
                }
            }
            break;
#endif
        case UI_PLAYBACKRANGE_REPEATALL:
            if (g_UiPlaybackMethod == UI_PLAYBACKMETHOD_NORMAL)
            {
                if (DiscType == C_DVD) //030528-01ba//dvd audio sh
                {
                    NVGetCurInfo(&CurPlayPoint);
                    wTempPTTNs = NVGetTTPTTNs(CurPlayPoint.wTTN);
                    if (UIKey_Times > 0) // UI_KEY_NEXT
                    {
                        if ( (CurPlayPoint.wPTTN + UIKey_Times) <= wTempPTTNs)
                            return NXPRE_NORMAL;
                        else
                        {
                            pPlayInfo->wTTN = CurPlayPoint.wTTN;
                            pPlayInfo->wPTTN = PBInfo[REPEATALL_FIRST].wPTTN;
                            pPlayInfo->dwLBAAddr = PBInfo[REPEATALL_FIRST].dwLBAAddr;
                            pPlayInfo->bDomain = CurPlayPoint.bDomain;
                            return NXPRE_OK;
                        }
                    }
                    else // UI_KEY_PREV
                    {
                        if ( (CurPlayPoint.wPTTN + UIKey_Times) >= 1)
                            return NXPRE_NORMAL;
                        else
                        {
                            //pPlayInfo = Start chapter;
                            pPlayInfo->wTTN = CurPlayPoint.wTTN;
                            pPlayInfo->wPTTN = PBInfo[REPEATALL_LAST].wPTTN;
                            pPlayInfo->dwLBAAddr = PBInfo[REPEATALL_LAST].dwLBAAddr;
                            pPlayInfo->bDomain = CurPlayPoint.bDomain;
                            return NXPRE_OK;
                        }
                    }
                }
                else // C_VCD
                {
                    NVGetCurInfo(&CurPlayPoint);
                    if (UIKey_Times > 0) // UI_KEY_NEXT
                    {
                        if ( (CurPlayPoint.wTTN + UIKey_Times) <= PBInfo[REPEATALL_LAST].wTTN)
                            return NXPRE_NORMAL;
                        else
                        {
                            pPlayInfo->wTTN = PBInfo[REPEATALL_FIRST].wTTN;
                            pPlayInfo->dwLBAAddr = PBInfo[REPEATALL_FIRST].dwLBAAddr;
                            return NXPRE_OK;
                        }
                    }
                    else // UI_KEY_PREV
                    {
                        if ( (CurPlayPoint.wTTN + UIKey_Times+1) >= PBInfo[REPEATALL_FIRST].wTTN)
                            return NXPRE_NORMAL;
                        else
                        {
                            pPlayInfo->wTTN = PBInfo[REPEATALL_LAST].wTTN;
                            pPlayInfo->dwLBAAddr = PBInfo[REPEATALL_LAST].dwLBAAddr;
                            return NXPRE_OK;
                        }
                    }
                }
            }
#if 0
            if (g_UiPlaybackMethod == UI_PLAYBACKMETHOD_SHUFFLE)
            {
            	   	if(UIKey_Times<0)
                     	UIKey_Times=-UIKey_Times;
                     {
                         if ((wPlayNow + UIKey_Times) <= NVGetTTNsOrTrks())
                             wPlayNow += UIKey_Times;
                         else
                             BEndFlag = TRUE;
                     }
                     
	                if (BEndFlag)
	                {
	                    wPlayNow = 0;  //030609-04lily:add shuffle list initial
	                    Shuffle(0);
	                    CmdUIMsg(C_UI_NOTICE, C_CONSOLEUPDATE);
	                    CmdUIMsg(C_PLAYBACK_MANAGE, C_NV_SEG_END);
	                    return NXPRE_NONE;
	                }
	                else
	                {
	                    Shuffle(wPlayNow); // prepare PlayPointList[wPlayNow]
	                    pPlayInfo->wTTN = PlayPointList[wPlayNow];
	                    pPlayInfo->dwLBAAddr = 0;
	                    return NXPRE_OK;
                }
            }            
            break;
#endif
        case UI_PLAYBACKRANGE_REPEATONE:
            if (g_UiPlaybackMethod == UI_PLAYBACKMETHOD_NORMAL)
            {
                if(DiscType==C_DVD)
                {
                    if(PlaybackModeChangeSuccess(g_UiPlaybackList, UI_PLAYBACKRANGE_REPEATNONE,g_UiPlaybackMethod))
                    {
                        bLastPressStatus=UI_PLAYBACKRANGE_REPEATNONE;
                        return NXPRE_NORMAL;
                    }
                }
                else
                {
                    NVGetCurInfo(pPlayInfo);
                    pPlayInfo->wTTN = PBInfo[REPEAT1].wTTN;
                    if (DiscType == C_DVD) //030528-01ba//dvd audio sh
                        pPlayInfo->wPTTN = PBInfo[REPEAT1].wPTTN;
                    pPlayInfo->dwLBAAddr = PBInfo[REPEAT1].dwLBAAddr;
                    return NXPRE_OK;
                }
            }
            break;

        case UI_PLAYBACKRANGE_REPEATAB:
            if (g_UiPlaybackMethod == UI_PLAYBACKMETHOD_NORMAL)
                return NXPRE_NORMAL;
            break;
       case UI_PLAYBACKRANGE_REPEATA:
       		if (g_UiPlaybackMethod == UI_PLAYBACKMETHOD_NORMAL)
       		 	return NXPRE_NORMAL;
           	break;
        }
		}
}

void NumberPlayProc(void)
{
    int iVal;
    BOOL flag;
    PLAYPOINT playpoint;

    ExtInputProc(EXT_INPUT_GET, &iVal);
    if((DiscType==C_VCD20||DiscType==C_SVCD)&&g_UiPBCState == C_ON)
    {
        NVGetCurInfo(&playpoint);
        if(NVChkIfNeedWait((WORD)iVal)&&bVCD20JumpFlag==FALSE)
        {
            bVCD20JumpFlag=TRUE;
            return;
        }
        else
            bVCD20JumpFlag=FALSE;
    }

   if (VirDiscType==C_VCD10)		//modified by jane for bug 3103
   {
	   	if (NVChkNumPlay((WORD)iVal))
	   	{	if (g_UiCoreState != UI_CORE_PLAY)
	        {
	          	 	NVPlayModeChg(C_NV_Play, 0);
	           	 	g_UiCoreState = UI_CORE_PLAY;
	            		bActionCtl = 0;
	           		 ClearRectArea(gui_hdc,GUITYPE_PLAYMODEGUI);
	       	 }
	   	 	flag = NVNumPlay((WORD)iVal);
	   	}
	   	else
	   		flag = FALSE;
   }	
   else
   		flag = NVNumPlay((WORD)iVal);
   
    if (flag)
    {
        if ((g_UiCoreState != UI_CORE_PLAY)&&(VirDiscType!=C_VCD10))
        {
            NVPlayModeChg(C_NV_Play, 0);
            g_UiCoreState = UI_CORE_PLAY;
            bActionCtl = 0;
            ClearRectArea(gui_hdc,GUITYPE_PLAYMODEGUI);
			
        }
       
    	 if(g_UiPlaybackMethod!=UI_PLAYBACKMETHOD_NORMAL
    	    ||(g_UiPlaybackRepeatRange!=UI_PLAYBACKRANGE_REPEATNONE&&g_UiPlaybackRepeatRange!=UI_PLAYBACKRANGE_REPEATALL&&g_UiPlaybackRepeatRange!=UI_PLAYBACKRANGE_REPEATA))
    	 {
    	    if((g_UiPlaybackRepeatRange==UI_PLAYBACKRANGE_REPEATAB||g_UiPlaybackRepeatRange==UI_PLAYBACKRANGE_REPEATONE)&&DiscType==C_DVD)//bond add 031026 for la bug 2222
    	    ;
    	    else
    	    {
	            bLastRandomStatus = UI_PLAYBACKMETHOD_NORMAL;
	            bLastPressStatus = UI_PLAYBACKRANGE_REPEATNONE;
		     	RepeatAB_Counter = REPEAT_AB_OFF;
		     	if (PlaybackModeChangeSuccess(g_UiPlaybackList, UI_PLAYBACKRANGE_REPEATNONE, UI_PLAYBACKMETHOD_NORMAL))
	            {
	                wPlayNow = 0;  //030609-04lily
	                Shuffle(0);
	                SendVFDPart1Show();
	                CmdUIMsg(C_UI_NOTICE, C_CONSOLEUPDATE);
	            }
		     	ClearRectArea(gui_hdc,GUITYPE_MODEGUI);
		     	ShowPlayModeGui(RS_FUN_OSD_NORMAL, MSG_NULL);
           }
        }
       
       if(NextPrevStatus==0)//temp for flag to determine if need show
       {
			if ((((DiscType == C_VCD20) || (DiscType == C_SVCD))
			      	&&(OSD_Setup_Parameter.bPBC==C_OFF))||(DiscType == C_VCD10))
			{
				ShowNumPlay(1,iVal);
			}
			else
			      if (iVal>0)
			             ShowDiscInfo(MSG_NUM,iVal);
       }
       else
	       NextPrevStatus=0;
	   

    }
    else
    {
        if (bIsDVDRegionErr == TRUE)
        {
            ATAPIStopDisc();
            ShowRegionError();
        }
        else
            ShowDiscInfo(MSG_INVALID, MSG_NULL);
    }
}

/********************************************
 part 0 : keys changing marchine-state
********************************************/
/*----------------------------------------------------------------------------
 * Function_Name : CaseV_KEY_POWER
 * Arguments    : None
 * Return value : None
 * Remark  : Proccess user press "POWER" key.
 *----------------------------------------------------------------------------*/
void CaseV_KEY_POWER(void)
{
    ANGLEINFO AngleInfo;
    if (1)//MachineState == C_MACHINE_ST_READY)
    {
    	halMuteOnOff(TRUE, 80, 125);
    	bPowerOff = TRUE;
        g_VFD_ShowInfo.FPState=C_FP_POWEROFF;
        CmdFPMsg(VFD_REFRESH_PART1_SHOW);
		
#if 1

        if (BEject)
        {
            CloseTray(1);/*close tray immediately*/
            while(g_vATADoorStatus() && (g_iServoCloseTrayTime<8))
                delay(450);
            if (g_iServoCloseTrayTime==8)
            {
                delay(500);
            }

        }
        else
        {
		if(MachineState == C_MACHINE_ST_READY)        
        {
            //030807-01lily:lastplay
#if (MP3WMA_LASTPLAY_FUNC==MP3WMA_LASTPLAY_ENABLE)
    if (DiscType !=C_NO_DISC&&DiscType!=C_FILEOPENDISC)
#else
            if (DiscType !=C_NO_DISC)
#endif
                NVGetDiscISRC(DISCLASTPLAYINFO.u.dwDiscISRC);
#if (MP3WMA_LASTPLAY_FUNC==MP3WMA_LASTPLAY_ENABLE)
			if((DiscType!=C_PICTURE_CD)
			    &&(DiscType!=C_CDDA&&DiscType!=C_HDCDDA&&DiscType!=C_DTSCD))
#else
            if((DiscType!=C_PICTURE_CD) && (DiscType!=C_FILEOPENDISC)&&(DiscType!=C_CDDA&&DiscType!=C_HDCDDA&&DiscType!=C_DTSCD))
#endif
            {
              	if(bIsDVDRegionErr == TRUE)
              		DISCLASTPLAYINFO.LASTPLAYPOINT.bPlayEnable = FALSE;
              	else if(g_UiCoreState != UI_CORE_STOP)
              	{
                	if ( !NVGetCurInfo(&DISCLASTPLAYINFO.LASTPLAYPOINT.PlayInfo) )
                    	DISCLASTPLAYINFO.LASTPLAYPOINT.PlayInfo.dwLBAAddr = 0;
#if MP3WMA_LASTPLAY_FUNC==MP3WMA_LASTPLAY_ENABLE
				  	if(DiscType==C_FILEOPENDISC)
				  	{
				  		if(MPF_GetCurFileIndex(&DISCLASTPLAYINFO.LASTPLAYPOINT.PlayInfo))
				  	   		FileOpenGetExtInfo((lpFODiscInfo)DISCLASTPLAYINFO.u.dwDiscISRC);
						else
							DISCLASTPLAYINFO.LASTPLAYPOINT.bPlayEnable = FALSE;
				  	}
#endif	
                
                	if ( (DiscType == C_VCD10) || (DiscType == C_VCD20) || (DiscType == C_SVCD))
                    	NVModify_PlayPoint_Addr(&DISCLASTPLAYINFO.LASTPLAYPOINT.PlayInfo);
                	NVSaveGprm((LPBYTE)(DISCLASTPLAYINFO.GPRM));
				
					//maggie add for last vfd show time
					DISCLASTPLAYINFO.LASTPLAYPOINT.dwVideoPlayTime = NVGetVideoTime(bVFDShowTimeMode);
					DISCLASTPLAYINFO.LASTPLAYPOINT.bVocalCnt = bVocalPressCnt;
                	DISCLASTPLAYINFO.LASTPLAYPOINT.bPlayEnable = TRUE;
                	if(DiscType == C_DVD)
                	{
	            	//record current disc to be a region code disc.
                    	DISCLASTPLAYINFO.LASTPLAYPOINT.PlayInfo.wVcd20Item = wIsRegionChkDisc;
	             		if(bIsDVDRegionErr == TRUE ||bNeedPLChk==TRUE)
	             		{
	                 		DISCLASTPLAYINFO.bAngle = 0xff;
	             		}
	             		else
	             		{
                 			NVGetAGLInfo(&AngleInfo);
                 			if(AngleInfo.AngleTotalNo>1)
                 				DISCLASTPLAYINFO.bAngle = AngleInfo.AngleNo;
                 			else
                 				DISCLASTPLAYINFO.bAngle = 0xff;
	             		}
                	}
                	//add for lg bug2752
	        		if(DiscType==C_VCD20||DiscType==C_SVCD)
	        		{
	        			DISCLASTPLAYINFO.bPbc=g_UiPBCState;
	        		}
              	}
	       		else if( DiscType != C_NO_DISC && (g_UiCoreState==UI_CORE_STOP&&bIsSecondStop==TRUE) )
	        		DISCLASTPLAYINFO.LASTPLAYPOINT.bPlayEnable = FALSE;
              
                DISCLASTPLAYINFO.bDialogueStrNo=bDialogueStrNo;
                if(bNVSpSwOnOff)
                	DISCLASTPLAYINFO.bSubpicStrNo=bSubpicStrNo;
    

⌨️ 快捷键说明

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