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

📄 playctrl.h

📁 这是DVD中伺服部分的核心代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/*****************************************************************************
******************************************************************************
**                                                                          **
**  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 playctrl.h
 *
 * Defines the Public API to the Playback Control Engine.
 * The Playback Control Engine provides playlist playback capability,
 * AV presentation control, Interactive Graphics control, and Player
 * Register access.
 *
 * $Id: playctrl.h,v 1.61 2007/01/26 22:23:34 rbehe Exp $
 */

#ifndef PLAYCTRL_H
#define PLAYCTRL_H

#ifdef __cplusplus
extern "C" {
#endif

#include "vdvd_types.h"
#include "dr_app.h"
#include "pe_app.h"
#include "../mvplaylistdb.h"
#include "clpinfodb.h"

/**
 * Playback Control Engine Status types
 */
typedef  ERR_CODE PLAYCTRL_STATUS;
#define  PLAYCTRL_SUCCESS           (ERR_CODE)(0)
#define  PLAYCTRL_FAILURE           (ERR_CODE)(-1)
#define  PLAYCTRL_NULL_POINTER      (ERR_CODE)(-2)
#define  PLAYCTRL_NOT_IMPLEMENTED   (ERR_CODE)(-3)
#define  PLAYCTRL_RETRY             (ERR_CODE)(-4)

/* Number of registers */
#define PSR_TOTAL_NUMBER                128
#define GPR_TOTAL_NUMBER                4096

/**
 * Player Status Register Numbers
 */
#define PLAYCTRL_PSR_IG_STN             (0)
#define PLAYCTRL_PSR_AUDIO_STN          (1)
#define PLAYCTRL_PSR_PG_AND_ST_STN      (2)
#define PLAYCTRL_PSR_ANGLE              (3)
#define PLAYCTRL_PSR_TITLE              (4)
#define PLAYCTRL_PSR_CHAPTER            (5)
#define PLAYCTRL_PSR_PLAYLIST           (6)
#define PLAYCTRL_PSR_PLAYITEM           (7)
#define PLAYCTRL_PSR_PRES_TIME          (8)
#define PLAYCTRL_PSR_NVTIMER            (9)
#define PLAYCTRL_PSR_SEL_BUTTON         (10)
#define PLAYCTRL_PSR_MENU_PAGE          (11)
#define PLAYCTRL_PSR_SEL_STYLE          (12)
#define PLAYCTRL_PSR_PARENTAL           (13)
#define PLAYCTRL_PSR_SEC_AUD_VID_STN    (14)
#define PLAYCTRL_PSR_AUDIO_CAPABILITY   (15)
#define PLAYCTRL_PSR_AUDIO_LANG         (16)
#define PLAYCTRL_PSR_PG_AND_ST_LANG     (17)
#define PLAYCTRL_PSR_MENU_LANG          (18)
#define PLAYCTRL_PSR_COUNTRY            (19)
#define PLAYCTRL_PSR_REGION             (20)
#define PLAYCTRL_PSR_VIDEO_CAPABILITY   (29)
#define PLAYCTRL_PSR_TEXT_CAPABILITY    (30)
#define PLAYCTRL_PSR_PROFILE_VERSION    (31)

#define PLAYCTRL_PSR_APP_LAYER_0        (102)
#define PLAYCTRL_PSR_APP_LAYER_1        (103)
#define PLAYCTRL_PSR_APP_LAYER_2        (104)

/**
 * Player Status Register Default Vales
 */
#define PSR_IG_STN_DEFAULT              0x00000001
#define PSR_AUDIO_STN_DEFAULT           0x000000FF
#define PSR_PG_AND_ST_STN_DEFAULT       0x0FFF0FFF
#define PSR_ANGLE_DEFAULT               0x00000001
#define PSR_TITLE_DEFAULT               0x0000FFFF
#define PSR_CHAPTER_DEFAULT             0x0000FFFF
#define PSR_PLAYLIST_DEFAULT            0x00000000
#define PSR_PLAYITEM_DEFAULT            0x00000000
#define PSR_PRES_TIME_DEFAULT           0x00000000
#define PSR_NVTIMER_DEFAULT             0x00000000
#define PSR_SEL_BUTTON_DEFAULT          0x0000FFFF
#define PSR_MENU_PAGE_DEFAULT           0x00000000
#define PSR_SEL_STYLE_DEFAULT           0x000000FF
#define PSR_SEC_AUD_VID_STN_DEFAULT     0x0000FFFF

#define PSR_APP_LAYER_0_DEFAULT         0x00000000
#define PSR_APP_LAYER_1_DEFAULT         0x00000000
#define PSR_APP_LAYER_2_DEFAULT         0x00000000

/**
 * Playback Control Engine State
 */
typedef enum tagPLAYCTRL_STATE
{
    PLAYCTRL_STATE_STOP = 0,
    PLAYCTRL_STATE_PAUSE,
    PLAYCTRL_STATE_PLAY
} PLAYCTRL_STATE;

/**
 * Playback Control Engine Event Code
 */
typedef enum tagPLAYCTRL_EVENT_CODE
{
    PLAYCTRL_EVENT_PLAYLIST_COMPLETE = 0,
    PLAYCTRL_EVENT_PROCESS_BOBJ,
    PLAYCTRL_EVENT_NVTIMER_EXPIRE,
    PLAYCTRL_EVENT_ERROR_PLAYLIST_TERMINATED,
    PLAYCTRL_EVENT_MEDIA_TIME_UPDATE,
    PLAYCTRL_EVENT_ANGLECHANGE,
    PLAYCTRL_EVENT_PLAYMARKCHANGE,
    PLAYCTRL_EVENT_PLAYITEMCHANGE,
    PLAYCTRL_EVENT_UOPMASKCHANGE,
    PLAYCTRL_EVENT_SUBTITLECHANGE,
    PLAYCTRL_EVENT_AUDIOCHANGE,
    PLAYCTRL_EVENT_APPLICATION_TYPE,
    PLAYCTRL_EVENT_BDPLUS_PSR102_UPDATE,
    PLAYCTRL_EVENT_AM_LEVEL_CHANGE,
    PLAYCTRL_EVENT_AM_PANNING_CHANGE,
    PLAYCTRL_EVENT_AM_STOP_SOUND,
    PLAYCTRL_EVENT_AM_CLOSE_SOUND,
    PLAYCTRL_EVENT_INVALID
} PLAYCTRL_EVENT_CODE;


/**
 * Audio Control Point (used for audio mixing)
 */
typedef enum tagPLAYCTRL_AUDIO_STREAM
{
    PLAYCTRL_AUDIO_STREAM_INTERACTIVE    = 0x01,
    PLAYCTRL_AUDIO_STREAM_OVERALL        = 0x02,
    PLAYCTRL_AUDIO_STREAM_PRIMARY        = 0x03,
    PLAYCTRL_AUDIO_STREAM_SECONDARY      = 0x04
} PLAYCTRL_AUDIO_STREAM;

typedef uint32 PLAYCTRL_AUDIO_INTERACTIVE_ID;

/**
 * Playback Control Engine Callback
 */
typedef void (*PLAYCTRL_CALLBACK)(PVOID pvContext, PLAYCTRL_EVENT_CODE event, PVOID pvParam);

/**
 * Playback Control Engine Configuration and Status Procedures
 */
PLAYCTRL_STATUS PlayCtrlCreate(DR_HANDLE hDR, PE_HANDLE hPE, PLAYCTRL_CALLBACK pCallback, PVOID pvContext);
PLAYCTRL_STATUS PlayCtrlDelete(void);
PLAYCTRL_STATE  PlayCtrlGetState(void);
BOOLEAN         PlayCtrlIsStillOn(void);
BOOLEAN         PlayCtrlIsPopupOn(void);
BOOLEAN         PlayCtrlIsButtonSelected(void);
uint8           PlayCtrlGetRepeatMode(void);
int32           PlayCtrlGetPlayRate(void);
uint32          PlayCtrlGetRawPTS(void);
uint32          PlayCtrlGetPlayListDuration(void);
uint32          PlayCtrlGetPlayItemDuration(uint16 uiPlayitem);
uint32          PlayCtrlGetCurrentPlayListTime(void);

⌨️ 快捷键说明

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