📄 playctrl.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 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 + -