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

📄 modmgr.h

📁 这是DVD中伺服部分的核心代码
💻 H
字号:
/*****************************************************************************
******************************************************************************
**                                                                          **
**  Copyright (c) 2005-2006 Videon Central, Inc.                            **
**  All rights reserved.                                                    **
**                                                                          **
**  The computer program contained herein contains proprietary information  **
**  which is the property of Videon Central, Inc.  The program may be used  **
**  and/or copied only with the written permission of Videon Central, Inc.  **
**  or in accordance with the terms and conditions stipulated in the        **
**  agreement/contract under which the programs have been supplied.         **
**                                                                          **
******************************************************************************
*****************************************************************************/
/**
 * @file modmgr.h
 *
 * Defines the public API to the BD-ROM Navigator's Module Manager.
 * The Module Manager is responsible for managing Title playback
 * in the BD-ROM Navigator.
 *
 * $Id: modmgr.h,v 1.36 2007/01/26 22:41:08 rbehe Exp $
 */

#ifndef MODMGR_H
#define MODMGR_H

#ifdef __cplusplus
extern "C" {
#endif


#include "vdvd_types.h"
#include "dr_app.h"
#include "pe_app.h"

/* Globals for BD-J module */
#ifdef VDVD_ENABLE_BDJ
#include "BDJModuleAPI.h"
   extern BDJ_Module_Handle        bdj_handle;
   extern int                      disc_unbound_app;
   extern UInt32                   key_interest_table;
   extern bool                     menu_call_mask;
   extern bool                     title_search_mask;
#endif

/**
 * Module Manager Status types
 */
typedef  ERR_CODE MODMGR_STATUS;
#define  MODMGR_SUCCESS           (MODMGR_STATUS)(0)
#define  MODMGR_FAILURE           (MODMGR_STATUS)(-1)
#define  MODMGR_NULL_POINTER      (MODMGR_STATUS)(-2)
#define  MODMGR_NOT_IMPLEMENTED   (MODMGR_STATUS)(-3)
#define  MODMGR_UOP_PROHIBITED    (MODMGR_STATUS)(1)

/**
 * Module Manager State
 */
typedef enum tagMODMGR_STATE
{
    MODMGR_STATE_TERMINATED_FIRSTPLAY = 0,
    MODMGR_STATE_TERMINATED,
    MODMGR_STATE_RUNNING,
    MODMGR_STATE_HOLD
} MODMGR_STATE;

/**
 * Module Manager Commands
 */
typedef enum tagMODMGR_COMMAND
{
    MODMGR_EXIT = 0,
    MODMGR_MENUCALL,
    MODMGR_TITLESEARCH,
    MODMGR_CHAPTERSEARCH,
    MODMGR_TIMESEARCH,
    MODMGR_SKIPTONEXTPOINT,
    MODMGR_SKIPTOPREVPOINT,
    MODMGR_RESTARTPOINT,
    MODMGR_PLAY,
    MODMGR_PLAYLOCATION,
    MODMGR_STOP,
    MODMGR_PAUSEON,
    MODMGR_PAUSEOFF,
    MODMGR_STILLOFF,
    MODMGR_FORWARDPLAY,
    MODMGR_BACKWARDPLAY,
    MODMGR_RESUME,
    MODMGR_MOVEUPSELECTEDBUTTON,
    MODMGR_MOVEDOWNSELECTEDBUTTON,
    MODMGR_MOVELEFTSELECTEDBUTTON,
    MODMGR_MOVERIGHTSELECTEDBUTTON,
    MODMGR_MOVEUPSELECTEDBUTTON_RELEASE,
    MODMGR_MOVEDOWNSELECTEDBUTTON_RELEASE,
    MODMGR_MOVELEFTSELECTEDBUTTON_RELEASE,
    MODMGR_MOVERIGHTSELECTEDBUTTON_RELEASE,
    MODMGR_SELECTBUTTON,
    MODMGR_ACTIVATEBUTTON,
    MODMGR_SELECTANDACTIVATEBUTTON,
    MODMGR_AUDIOCHANGE,
    MODMGR_PGANDSTCHANGE,
    MODMGR_PGANDSTENABLE,
    MODMGR_TEXTSUBTITLESTYLECHANGE,
    MODMGR_ANGLECHANGE,
    MODMGR_POPUPON,
    MODMGR_POPUPOFF,
    MODMGR_REPEAT,
    MODMGR_COLOR_KEY,
    MODMGR_JUMPOBJ,
    MODMGR_CALLOBJ,
    MODMGR_JUMPTITLE,
    MODMGR_CALLTITLE,
    MODMGR_BDJ_TITLECHANGE,
    MODMGR_HDMV_TERMINATED,
    MODMGR_BDJ_TERMINATED,
    MODMGR_TITLE_STARTED,
    MODMGR_INVALID_COMMAND
} MODMGR_COMMAND;

/**
 * Play states of BD-ROM navigator
 */
typedef enum tagMODMGR_PLAYSTATE
{
    MODMGR_PLAYSTATE_STOP = 0,
    MODMGR_PLAYSTATE_FULLSTOP,
    MODMGR_PLAYSTATE_PLAY,
    MODMGR_PLAYSTATE_PAUSE,
    MODMGR_PLAYSTATE_STILL,
    MODMGR_PLAYSTATE_FAST_F,
    MODMGR_PLAYSTATE_FAST_R,
    MODMGR_PLAYSTATE_SLOW_F,
    MODMGR_PLAYSTATE_SLOW_R,
    MODMGR_PLAYSTATE_INVALID
} MODMGR_PLAYSTATE;

/**
 * Module Manager Procedures
 */
MODMGR_STATUS   ModMgrCreate(DR_HANDLE hDR, PE_HANDLE hPE);
MODMGR_STATUS   ModMgrDelete(void);
MODMGR_STATE    ModMgrGetState(void);
MODMGR_STATUS   ModMgrAddUserEvent(MODMGR_COMMAND cmd, int data);
MODMGR_STATUS   ModMgrAddHDMVEvent(MODMGR_COMMAND cmd, int data);
MODMGR_STATUS   ModMgrAddBDJEvent(MODMGR_COMMAND cmd, int data);

/**
 * Procedures for configuring the BD-ROM navigator with player settings.
 */
MODMGR_STATUS   ModMgrConfigParentalLevel(int parental);
MODMGR_STATUS   ModMgrConfigAudioLanguage(int language);
MODMGR_STATUS   ModMgrConfigPGandSTLanguage(int language);
MODMGR_STATUS   ModMgrConfigMenuLanguage(int language);
MODMGR_STATUS   ModMgrConfigCountryCode(int country_code);
MODMGR_STATUS   ModMgrSetAspectRatio(VDVD_ASPECT_RATIO aspect_ratio);
MODMGR_STATUS   ModMgrSetVideoFormat(VDVD_VIDEO_FORMAT video_format);
MODMGR_STATUS   ModMgrConfigAudioCapability(int capability);
MODMGR_STATUS   ModMgrConfigTextSTCapability(int capability);
MODMGR_STATUS   ModMgrConfigPlayerVersion(int player_version);
MODMGR_STATUS   ModMgrConfigPSRValue(int reg_number, int value);

/**
 * Procedures for getting BD-ROM navigator state information.
 */
ULONG               ModMgrGetLocationHandleSize(void);
MODMGR_STATUS       ModMgrGetLocation(PVOID pvLocation, uint32 uiSize);
int32               MogMgrGetPlayRate(void);
MODMGR_PLAYSTATE    MogMgrGetPlayState(void);
ULONG               ModMgrGetTitle(void);
ULONG               ModMgrGetTitleInfo(void);
ULONG               ModMgrGetChapter(void);
USHORT              ModMgrGetNumberOfChapters(void);
ULONG               ModMgrGetTitleDuration(void);
ULONG               ModMgrGetPlayTime(void);
ULONG               ModMgrGetRawPTS(void);
ULONG               ModMgrGetPlayItem(void);
UBYTE               ModMgrGetNumberOfAudio(void);
UBYTE               ModMgrGetCurrentAudio(void);
ULONG               ModMgrGetPrimaryAudioLanguageCode(USHORT usStreamNum);
ULONG               ModMgrGetSecondaryAudioLanguageCode(USHORT usStreamNum);
UBYTE               ModMgrGetNumberOfAngles(void);
UBYTE               ModMgrGetCurrentAngle(void);
USHORT              ModMgrGetNumberOfPGTextST(void);
USHORT              ModMgrGetCurrentPGTextST(void);
USHORT              ModMgrGetNumberOfTextSubtitleStyles(void);
USHORT              ModMgrGetCurrentTextSTUserStyle(void);
ULONG               ModMgrGetPGTextSTLanguageCode(USHORT usStreamNum);
BOOLEAN             ModMgrGetPGTextSTDisplayState(void);
BOOLEAN             ModMgrIsPGTextSTDisplayProhibited(void);
BOOLEAN             ModMgrIsTimeDisplayProhibited(void);
BOOLEAN             ModMgrIsPopupOn(void);
BOOLEAN             ModMgrIsButtonSelected(void);
UBYTE               ModMgrGetRepeatMode(void);
MODMGR_STATUS       ModMgrDiscEject(BOOLEAN *pfIsDiscUnbound);
MODMGR_STATUS       ModMgrDiscInsert(void);

#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

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