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

📄 normal.c

📁 M3355的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
/*****************************************************************************
*  Copyright (C) 2001 Acer Labs, Inc.  All Rights Reserved.
*  File:  ui_normal.c
*  Contents:  normal process
*  History:
*     Date   By      Reason        Ver.
*   ============ =========    ==========     ======
*   2000.4.3  Tom Gao    Create it       0.9
*   2000.4.11  Tom Gao    modify it       0.91
*   2000.5.9  Tom Gao    modify it       0.92(new structure)
*   2003.4.8  Benjamin    add dview  0.93
*   2003.4.10        Cliff Wang   modify it
*   2003.4.10        Maggie Liu   modify it
*   2003.4.17         Bond Ye,Haiyuan & Lily Ma    delete PEDoRectify and add comment of Basal module
*   2003.5.6  Lily Ma       reclassify the message type;split playback manager
*            module;define 3 level playback mode parameters for 
*   2003.5.14  Benjamin    modify it add repeat random shuffle for picture cd
* 2003.5.29  Benjamin  modify for picture cd repeat bug
*   2003.7.5  Lily Ma    modify it       use new GUI lib
*****************************************************************************/

#include <comsub.h>
#include <pe.h>
#include <panel.h>
#include <osd.h>
#include <nv.h>
#include <ui.h>
#include <ui_sub.h>
#include <panel.h>
#include "../../cstm/fend/frntp.h"
#include "nmnvlib.h"
#include "normal.h"
#include "nm_func.h"
#include <stdio.h>
#include <stdlib.h>
#include <audio.h>
#include <fileopen.h>
#include <rscstruc.h>
#include <resource.h>
#include <platform.h>
#include <filesys.h>
#include <setupfunc.h>
//20021115 Tom Yang for perhibit KEY_SETUP start
#include <atapi.h>
#include <vobu.h>

#include "uiosd.h"
#include "NMOSD.h"

#include "BookMark.c"
#include "Zoom.c"
#include "ParentLevel.c"
#include "TitleSearch.c"
#include <setupdefine.h>

#include "../FileopenMenu/MediaPlayerOutlook.h"

extern SETUP_CFG Setup_Config;
extern BOOL bVCD20JumpFlag;
extern WORD MaxKaraTTN;

extern BOOL bIsKaraDVD;

#if 0 //maggie
extern BOOL bNeedPLChk;//030814-01lily:for lastplay pl check
#endif
extern BOOL bIsFromStop;

extern int g_iServoCloseTrayTime;
#define VOBU_STL_OK_EVENT           0x00010000
#define VOBU_STL_SKIP_EVENT        0x00020000
#define MIC_3DSUR_MUTEX				1     //MIC and 3D surround can't exist the same time
extern BOOL flag_UserSetKey_standby;  //30216-01jf
extern BOOL bPowerOff;			//Added by brook,set this variable to TRUE when enter power off
extern void AutoOpenTray();
extern WORD g_VCDProCurNum;


#if 0//maggie
//below used in zoom's screen fit.
//0 mean normal 1 to 9 mean large -1 to -9 mean small.
int bZoomVRatio;
int bZoomHRatio;
//------------------
#endif

BYTE JpgNextState = 0;
BYTE JpgResumeState = 0;

WORD modeGuiType;

#if 0//maggie
BOOL isKaraoke,haveMelody;
BYTE isMultiVoise;
#endif
BOOL IsWaitPrev=TRUE;
BOOL bFPLastplay=FALSE;
//extern BOOL bLogoState;//301010-01mi
BYTE bShowNPswitch = 0;

//--> Gordon. used to Draw Slide Show OSD, which is used among Normal.c, MediaPlayFunc.c
BOOL bDrawSlideShowHelp=TRUE;

#if ( _UI_NORMAL_MODE==UI_Noraml_Enable )
static const WORD FastRatio[5] =
    {
        MSG_FAST, MSG_FAST + 1, MSG_FAST + 2, MSG_FAST + 3, MSG_FAST + 4
    };

static const WORD SlowRatio[] =
    {
        MSG_SLOW, MSG_SLOW + 1, MSG_SLOW + 2, MSG_SLOW + 3, MSG_SLOW + 4,
        MSG_REV_SLOW, MSG_REV_SLOW + 1, MSG_REV_SLOW + 2, MSG_REV_SLOW + 3, MSG_REV_SLOW + 4
    };

static const WORD RevRatio[5] =
    {
        MSG_REV, MSG_REV + 1, MSG_REV + 2, MSG_REV + 3, MSG_REV + 4
    };

/*=============     define VFD key mapping function  ============*/
/*=============     key value is define in ui.h      ============*/
#if(_SDRAM_MODE==_SDRAM_4M16x1_MODE_)
static const T_VOID_FUNC_PTR VKeyProc[] =
    {
        /*0*/ CaseV_KEY_POWER ,  CaseV_KEY_OPEN  ,  CaseV_KEY_PLAY  ,  CaseV_KEY_STOP  ,  CaseV_KEY_STEP,
        /*5*/ CaseV_KEY_LAST_PLAY ,  CaseV_KEY_PREVIOUS ,  CaseV_KEY_NEXT  ,  CaseV_KEY_FAST  ,  CaseV_KEY_REV,
        /*10*/ CaseV_KEY_UP  ,  CaseV_KEY_DOWN  ,  CaseV_KEY_LEFT  ,  CaseV_KEY_RIGHT ,  CaseV_KEY_MENU,
        /*15*/ CaseV_KEY_TITLE  ,  CaseV_KEY_ANGLE ,  ERRUIMsg   ,  ERRUIMsg   ,  /*CaseV_KEY_FILEOPEN*/ERRUIMsg,
        /*20*/ /*CaseV_KEY_CONSOLE*/ERRUIMsg ,  CaseV_KEY_ENTER ,  ERRUIMsg ,  CaseV_KEY_SETUP ,  CaseV_KEY_RESUME,
        /*25*/ CaseV_KEY_RANDOM ,  CaseV_KEY_ZOOM  ,  /*CaseV_KEY_SEARCH*/ERRUIMsg ,  CaseV_KEY_SLOW  ,  CaseV_KEY_SUBTITLE,
        /*30*/ CaseV_KEY_SUBP_ON_OFF,  CaseV_KEY_VOICE ,  CaseV_KEY_REPEAT ,  CaseV_KEY_AB_REPEAT,  CaseV_KEY_KARAOKE_ONOFF,
        /*35*/ ERRUIMsg,              ERRUIMsg           ,  ERRUIMsg      ,  CaseV_KEY_AUDIO ,  ERRUIMsg/*CaseV_KEY_VOCAL*/,
        /*40*/ CaseV_KEY_CLEAR  ,  CaseV_KEY_NUM  ,  CaseV_KEY_NUM  ,  CaseV_KEY_NUM  ,  CaseV_KEY_NUM,
        /*45*/ CaseV_KEY_NUM  ,  CaseV_KEY_NUM  ,  CaseV_KEY_NUM  ,  CaseV_KEY_NUM  ,  CaseV_KEY_NUM,
        /*50*/  CaseV_KEY_NUM       ,  CaseV_KEY_10_PLUS  ,  CaseV_KEY_PROGRAM ,  CaseV_KEY_EQ       ,  ERRUIMsg/*CaseV_KEY_MICVAL*/,
        /*55*/  ERRUIMsg/*CaseV_KEY_MICVAL*/    ,  CaseV_KEY_MUTE/*ERRUIMsg*/     ,  CaseV_KEY_VOICE    ,  CaseV_KEY_KARAOKE_ONOFF,   ERRUIMsg/*CaseV_KEY_ECHO*/,
        /*60*/  ERRUIMsg/*CaseV_KEY_ECHO*/      ,  /*CaseV_KEY_ASSIST*/ERRUIMsg   ,  CaseV_KEY_VOCAL   ,  CaseV_KEY_BCS   ,  /*CaseV_KEY_PBC_ON */ERRUIMsg,
        /*65*/  /*CaseV_KEY_PBC_OFF*/ERRUIMsg   ,  ERRUIMsg/*CaseV_KEY_PBC_ONOFF*/,  ERRUIMsg           , /* CaseV_KEY_GAME */ERRUIMsg    ,  CaseV_KEY_VENDER_SETUP/*ERRUIMsg*/,
        /*70*/ /*CaseV_KEY_SHOWTIME*/ERRUIMsg  ,  CaseV_KEY_VOLUM    ,  /*CaseV_KEY_CONFIRM*/ERRUIMsg  ,  CaseV_KEY_PAUSE    ,  CaseV_KEY_BOOKMARK,
        /*75*/  CaseV_KEY_CLOSE  ,  CaseV_KEY_DEBUG_M3323REG,   /*CaseV_KEY_PREV_PICTURE*/ERRUIMsg,  /* CaseV_KEY_NEXT_PICTURE*/ERRUIMsg ,  CaseV_KEY_RETURN,
        /*80*/ CaseV_KEY_TV_SYS ,  ERRUIMsg/*CaseV_KEY_SETUPDEFAULT*/,  /*CaseV_KEY_DOLBY_SETUP*/ERRUIMsg,  /*CaseV_KEY_MACROVISION*/ERRUIMsg ,  ERRUIMsg/*CaseV_KEY_AUDIOEFFECT*/,
        /*85*/  CaseV_KEY_DINTIAN_STOP,  CaseV_KEY_SCANMODE,  CaseV_KEY_VIDEO ,  /*CaseV_KEY_TTSEARCH*/ERRUIMsg,  CaseV_KEY_TMSEARCH,
        /*90*/  /*CaseV_KEY_DISPLAY*/ERRUIMsg,   /*CaseV_KEY_FILEFILTER*/ERRUIMsg, /*CaseV_KEY_PIPN*/ERRUIMsg,  /*CaseV_KEY_ADJUSTVFD*/ERRUIMsg, ERRUIMsg,  /* for vfdbright */
        //<<30226Wo for RevSlow&RevStep
        /*95*/ CaseV_KEY_SLOWBACK,  ERRUIMsg,/*CaseV_KEY_LGMP1*/ERRUIMsg,/*CaseV_KEY_LGMP2*/ERRUIMsg,CaseV_KEY_SURROUND_ON_OFF/*ERRUIMsg*/,
        /*100*/NoDispUIMsg,/*CaseV_KEY_EEPOPTION*/ERRUIMsg,CaseV_KEY_SHOWREGION0,CaseV_KEY_SHOWREGION,ERRUIMsg,
        /*105*/ERRUIMsg,ERRUIMsg,CaseV_KEY_PROGRESSIVEOFF,CaseV_KEY_NPswitch,ERRUIMsg,
        //>>
        //cliff 30906-02cf for repeat subtitle 
        /*110*/ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,
        /*115*/ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,
        /*120*//*CaseV_KEY_PAGEUP*/ERRUIMsg,/*CaseV_KEY_PAGEDOWN*/ERRUIMsg,CaseV_Key_RPTSUBTITLE,CaseV_KEY_FIRST_LASTPLAY,ERRUIMsg,
        /*125*/ERRUIMsg,ERRUIMsg,/*CaseV_KEY_WHEEL*/ERRUIMsg,ERRUIMsg,ERRUIMsg,
        /*130*/ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,
        /*135*/ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,
        /*140*/ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg
    }
    ;
#else
static const T_VOID_FUNC_PTR VKeyProc[] =
    {
        /*0*/ CaseV_KEY_POWER ,  CaseV_KEY_OPEN  ,  CaseV_KEY_PLAY  ,  CaseV_KEY_STOP  ,  CaseV_KEY_STEP,
        /*5*/ CaseV_KEY_LAST_PLAY ,  CaseV_KEY_PREVIOUS ,  CaseV_KEY_NEXT  ,  CaseV_KEY_FAST  ,  CaseV_KEY_REV,
        /*10*/ CaseV_KEY_UP  ,  CaseV_KEY_DOWN,  CaseV_KEY_LEFT,  CaseV_KEY_RIGHT ,  CaseV_KEY_MENU,
        /*15*/ CaseV_KEY_TITLE  ,  CaseV_KEY_ANGLE ,  ERRUIMsg   ,  ERRUIMsg   ,  CaseV_KEY_FILEOPEN,
        /*20*/ CaseV_KEY_CONSOLE ,  CaseV_KEY_ENTER ,  ERRUIMsg ,  CaseV_KEY_SETUP,  ERRUIMsg/*CaseV_KEY_RESUME*/,
        /*25*/ ERRUIMsg/*CaseV_KEY_RANDOM*/ ,  CaseV_KEY_ZOOM  , ERRUIMsg/*CaseV_KEY_SEARCH*/ ,  CaseV_KEY_SLOW  ,  CaseV_KEY_SUBTITLE,
        /*30*/ERRUIMsg/*CaseV_KEY_SUBP_ON_OFF*/,  CaseV_KEY_VOICE ,  CaseV_KEY_REPEAT ,  CaseV_KEY_AB_REPEAT, ERRUIMsg/*CaseV_KEY_KARAOKE_ONOFF*/,
        /*35*/ ERRUIMsg,              ERRUIMsg           ,  ERRUIMsg      , ERRUIMsg/*CaseV_KEY_AUDIO*/ ,  ERRUIMsg/*CaseV_KEY_VOCAL*/,
        /*40*/ CaseV_KEY_CLEAR  ,  CaseV_KEY_NUM  ,  CaseV_KEY_NUM  ,  CaseV_KEY_NUM  ,  CaseV_KEY_NUM,
        /*45*/ CaseV_KEY_NUM  ,  CaseV_KEY_NUM  ,  CaseV_KEY_NUM  ,  CaseV_KEY_NUM  ,  CaseV_KEY_NUM,
        /*50*/  CaseV_KEY_NUM       , ERRUIMsg/*CaseV_KEY_10_PLUS*/  ,  CaseV_KEY_PROGRAM  ,  ERRUIMsg/*CaseV_KEY_EQ*/       ,  ERRUIMsg/*CaseV_KEY_MICVAL*/,
        /*55*/  ERRUIMsg/*CaseV_KEY_MICVAL*/    , CaseV_KEY_MUTE     ,  CaseV_KEY_VOICE    , ERRUIMsg/*CaseV_KEY_KARAOKE_ONOFF*/,   ERRUIMsg/*CaseV_KEY_ECHO*/,
        /*60*/  ERRUIMsg/*CaseV_KEY_ECHO*/      ,  ERRUIMsg/*CaseV_KEY_ASSIST*/   ,  CaseV_KEY_VOCAL   ,  CaseV_KEY_BCS   , ERRUIMsg/*CaseV_KEY_PBC_ON */,
        /*65*/  ERRUIMsg/*CaseV_KEY_PBC_OFF*/   ,  CaseV_KEY_PBC_ONOFF,  ERRUIMsg           , ERRUIMsg/*CaseV_KEY_GAME*/     ,  CaseV_KEY_VENDER_SETUP/*ERRUIMsg*/,
        /*70*/ ERRUIMsg/*CaseV_KEY_SHOWTIME*/  ,  CaseV_KEY_VOCAL/*HQK 6 7*/    , ERRUIMsg/*CaseV_KEY_CONFIRM*/  ,  CaseV_KEY_PAUSE    ,  CaseV_KEY_BOOKMARK,
        /*75*/  CaseV_KEY_CLOSE  ,  ERRUIMsg/*CaseV_KEY_DEBUG_M3323REG*/,   /*CaseV_KEY_PREV_PICTURE*/ERRUIMsg,  /* CaseV_KEY_NEXT_PICTURE*/ERRUIMsg ,  CaseV_KEY_RETURN,
        /*80*/ ERRUIMsg/*CaseV_KEY_TV_SYS*/ , ERRUIMsg/* CaseV_KEY_SETUPDEFAULT*/,  /*CaseV_KEY_DOLBY_SETUP*/ERRUIMsg,  /*CaseV_KEY_MACROVISION*/ERRUIMsg ,  ERRUIMsg/*CaseV_KEY_AUDIOEFFECT*/,
        /*85*/  CaseV_KEY_DINTIAN_STOP,  ERRUIMsg/*CaseV_KEY_SCANMODE*/,  ERRUIMsg/*CaseV_KEY_VIDEO*/ , ERRUIMsg/*CaseV_KEY_TTSEARCH*/,  CaseV_KEY_TMSEARCH,
        /*90*/ ERRUIMsg/*CaseV_KEY_DISPLAY*/,  ERRUIMsg/*CaseV_KEY_FILEFILTER*/, /* CaseV_KEY_PIPN*/ERRUIMsg, ERRUIMsg/*CaseV_KEY_ADJUSTVFD*/, ERRUIMsg,  /* for vfdbright */
        //<<30226Wo for RevSlow&RevStep
        /*95*/ CaseV_KEY_SLOWBACK,  ERRUIMsg,/*CaseV_KEY_LGMP1*/ERRUIMsg,/*CaseV_KEY_LGMP2*/ERRUIMsg,CaseV_KEY_SURROUND_ON_OFF/*ERRUIMsg*/,
        /*100*/NoDispUIMsg,/*CaseV_KEY_EEPOPTION*/ERRUIMsg,ERRUIMsg/*CaseV_KEY_SHOWREGION0*/,CaseV_KEY_SHOWREGION,ERRUIMsg,
        /*105*/ERRUIMsg,ERRUIMsg,ERRUIMsg/*CaseV_KEY_PROGRESSIVEOFF*/,CaseV_KEY_NPswitch,ERRUIMsg,
        //>>
        //cliff 30906-02cf for repeat subtitle 
        /*110*/ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,
        /*115*/ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,
        /*120*//*CaseV_KEY_PAGEUP*/ERRUIMsg,/*CaseV_KEY_PAGEUP*/ERRUIMsg/*CaseV_KEY_PAGEDOWN*/,ERRUIMsg/*CaseV_Key_RPTSUBTITLE*/,CaseV_KEY_FIRST_LASTPLAY,ERRUIMsg/*CaseV_KEY_CCONOFF*/,
        /*125*/ERRUIMsg,ERRUIMsg,ERRUIMsg/*CaseV_KEY_WHEEL*/,ERRUIMsg,ERRUIMsg,
        /*130*/ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,
        /*135*/ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,
        /*140*/ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg,ERRUIMsg
    }
    ;

#endif
extern BYTE HLValidKeyProcessing;
extern WORD wCurrentPlayTrack;

extern BOOL g_fShowFileName; //adamadd 2002/11/12
#if 0//maggie
typedef BYTE t_Domain;
extern t_Domain CurrentDomain;
#endif

/* FOR playback manager fucntions use */
WORD wPlayNow = 0;

//30917 gamble for AC3
BOOL bNeedShowAC3=0;
//30917 gamble for AC3 end

//31212 jane for 3dsurround
 BOOL isShow3DSur=FALSE;
//31212 jane for 3dsurround end

#if 0//maggie
//30919 gamble for parental level
BOOL bPLIsChanged;
//30919 gamble for parental level end

/* FOR record NV cmd Parent level value */
DWORD dwNVCmdPL;
#endif

DWORD bVFDCurrentTime;

BOOL BDiscPhyTypeKnown = FALSE;
#if 0//maggie
int ZoomPreSub = 0;
BYTE ZoomPreOnOff = 0;
#endif

#if 0//maggie
BYTE PLPassWdPos;
BYTE PLPassWdCnt;
BYTE PLPassWord[4];
#endif

//30929 gamble for lg dvd auto play spec
BOOL bIsAutoPlayMode=TRUE;
//30929 gamble for lg dvd auto play spec end

//<<031013 bond add for retoreing  show scan mode osd.
WORD ScanRatio;
//>>
static void NV2UI_Chg2Norm(void);
static void NV2UI_Stop(void);
static void NV2UI_Chg2PBCOff(void);
static void NV2UI_ShowTitleNum(void);
static void NV2UI_ShowChapterNum(void);
static void DVD2UI_ChgDomain(void);
static void NV2UI_AudioTypeCHG(void);
static void DVD2UI_AngleCHK(void);
static void DVD2UI_HLTimer(void);
static void VCD2UI_DISC_ERR(void);
static void VCD2UI_NODATA(void);
static void VCD2UI_TimeOut(void);
static void DVD2UI_SubPicCHK(void);
static void DVD_ShowResume(void);  // Angus add at 02/11/27
static void DVD_ShowBadDisc(void);  // 30117-01An
#if 0//maggie
static void DVD_Clear_ZOOM(void);               //30507-01jeff clear zoom when highlight come up
#endif
static void DVD2UI_MultiAngleChk(void);

static void NV2UI_SegEnd(void);
static void UI_NextPre(void);
void InitKara(BOOL NeedInitEcho);
void NumberPlayProc(void);

BOOL IsInsideAB(LPPLAYPOINT lpplaypoint);

/*========     Define function of NV send message to UI    ============*/
/*============= Msg value is define in ui.h ,ex. C_NV_CMD_NORMAL   ============*/
static const T_VOID_FUNC_PTR NV2UIChkFun[] =
    {
        NV2UI_Chg2Norm , NV2UI_Stop , NV2UI_ShowTitleNum , NV2UI_ShowChapterNum,
        DVD2UI_ChgDomain , NV2UI_AudioTypeCHG , DVD2UI_AngleCHK , VCD2UI_DISC_ERR,
        VCD2UI_NODATA , VCD2UI_TimeOut , NV2UI_Chg2PBCOff , DVD2UI_HLTimer,
        VCD2UI_NODATA/*DVD2UI_SubPicCHK*/, DVD_ShowResume, DVD_ShowBadDisc, DVD_Clear_ZOOM,
        DVD2UI_MultiAngleChk,NumberPlayProc
    }
    ; // Angus add "DVD_ShowResume" at 02/11/27  //30507-01jeff clear zoom when highlight come up
#endif/*#ifdef _UI_NORMAL_E_*/

void VCD2UI_NODATA(void)
{
}

BOOL bDVDSetup_NoShowLogo = FALSE; //sean for M3351 setup show logo.

const UINT GUI_LANGUAGEID[21] =
    {
        RS_GUI_CHINESE,	//0
        RS_GUI_ENGLISH,
        RS_GUI_FRENCH,
        RS_GUI_RUSSIAN,
        RS_GUI_JAPANESE,
        RS_GUI_GERMAN,		//5
        RS_GUI_DANISH,
        RS_GUI_DUTCH,
        RS_GUI_ITALIAN,
        RS_GUI_PORTUGUESE,
        RS_GUI_SPANISH,	//10
        RS_GUI_SWEDISH,
        RS_GUI_HUNGARIAN,
        RS_GUI_KOREAN,
        RS_GUI_OTHERS,
        RS_GUI_POLISH,		//15
        RS_GUI_GREEK,
        RS_GUI_FINNISH,
        RS_GUI_ICELANDIC,
        RS_GUI_NORWEGIAN,
        RS_GUI_OTHERS,		//20

    };

/****************************************************************/
/*   define tables used by playback manage module
/*   030516-01lily: abstract all actions about modify playback mode 
/*       parameters to one function module
/****************************************************************/
#define C_NONE_END 0x12

const BOOL PBModePermit_Normal[3][5] =
    { //    none    one    all      ab   disc   //record current available playback mode combinitions
        /*normal*/  {TRUE, TRUE, TRUE, TRUE, TRUE},
        /*random*/  {FALSE, FALSE, FALSE, FALSE, FALSE},
        /*Shuffle*/  {TRUE, TRUE, TRUE, FALSE, FALSE}
    };
const BOOL PBModePermit_Program[3][5] =
    {
        {TRUE, TRUE,TRUE, FALSE, FALSE},
        {FALSE, FALSE, FALSE, FALSE, FALSE},
        {FALSE, FALSE, FALSE, FALSE, FALSE}
    };

const BYTE SegEndType_DVD_Normal[3][5] =
    {          //record segment end type according to each playback mode combinition
        {C_NORMAL_END, C_CHAPTER_END, C_TITLE_END, C_POINT_END, C_DISC_END  },
        {C_CHAPTER_END, C_NONE_END, C_CHAPTER_END, C_NONE_END, C_CHAPTER_END},
        {C_CHAPTER_END, C_CHAPTER_END, C_CHAPTER_END, C_NONE_END, C_CHAPTER_END}
    };
const BYTE SegEndType_NODVD_Normal[3][5] =
    {
        {C_NORMAL_END, C_TITLE_END, C_DISC_END, C_POINT_END, C_DISC_END},
        {C_TITLE_END, C_NONE_END, C_TITLE_END, C_NONE_END, C_TITLE_END},
        {C_TITLE_END, C_TITLE_END, C_TITLE_END, C_NONE_END, C_TITLE_END}
    };

BOOL PlaybackModeChangeSuccess(BYTE list, BYTE repeatrange, BYTE method);
BOOL ChkPBModePermit(BYTE list, BYTE repeatrange, BYTE method);

/*----------------------------------------------------------------------------
* Function_Name: ChkPBModePermit
* Arguments    :  BYTE list:IN,indicate the playback list now wanna change to;
*        BYTE repeatrange:IN,indicate the playback repeat range now wanna change to;
*        BYTE method:IN,indicate the playback method now wanna change to.                     

⌨️ 快捷键说明

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