📄 nvgadefs.h
字号:
/***********************************************************************/
/* File: */
/* ===== */
/* Descripton: */
/* =========== */
/* */
/* Log: */
/* ===== */
/*
$Name: $
$Header: /I76/I76_Common/I76_Reference/Playcore/Nav_DVD/Header/NVGADEFS.H 10 04-03-31 20:26 Angieh $
$Log: /I76/I76_Common/I76_Reference/Playcore/Nav_DVD/Header/NVGADEFS.H $
*
* 10 04-03-31 20:26 Angieh
* Add support for index and page search.
*
* 9 2/20/04 6:17p Glenl
* Merged S1 code
*
* 8 12/30/03 11:28a Leonh
* Angieh:Change for DVD AUDIO navigator header.
*
* 16 11/06/03 8:34a Leslie
* clean up the code
*
* 15 10/20/03 11:46a Leslie
* check the variable type and change the dvda rtpb schedule way as the
* same with DVD Video
*
* 14 8/20/03 2:56p Leonh
* Merge dvd audio code with the latest nav_dvd code with reference
*
* 9 03-05-13 16:46 Leonh
* merge pgc_construct()
*
* 8 03-05-08 18:18 Leonh
*
* 7 03-05-08 13:46 Leonh
*
* 6 03-04-30 15:35 Fwang
* audio pgc define
*
* 5 03-04-30 10:41 Fwang
* compilation error
*
* 4 03-04-28 17:52 Fwang
* nav command define for DVDA
*
* 3 03-04-28 17:47 Fwang
* pgc type define
*
* 2 03-04-28 17:40 Fwang
* Add DVDA definition.
*
* 1 03-04-28 11:15 Fwang
* Initial for DVDA
*
* 7 03-07-30 18:09 Leonh
* differentiate the cell presentation access restriction and parent level
* wrong
*
* 9 27/05/02 18:13 Nirm
* - Fixed typo in pre-compilation definition.
*
* 8 5/21/02 12:38p Leslie
* Support 5 DVD Bookmarks
*
* 7 9/05/02 21:47 Nirm
* - Added pre-caching of CGMS information, in order to minimize
* File-System accesses when possible.
*
* 6 9/05/02 16:14 Nirm
* - Alternative implementation to CGMS support.
*
* 5 5/01/02 14:35 Rinata
* get category code and copy bit
*
* 4 4/30/02 17:11 Rinata
* CGMS/WSS support
*
* 3 4/26/02 12:46p Leslie
* Comment out useless Macros.
* Replace npi_flags with npi_resume_lbn in
* S_NAV_PK_INFO_FIFO
*
* 2 23/04/02 9:34 Nirm
* - Added dependency in "Config.h".
*
* 1 2/17/02 12:12 Rinata
*
* 1 2/17/02 11:38 Rinata
*
* 2 8/01/02 16:24 Nirm
* Corrected Include-Paths.
Revision 1.22 2001/09/28 23:11:02Z stephaneh
Merged changes from ZCH for DVD navigator
Revision 1.21 2001/05/17 17:50:34Z bhupeshv
Added Tias' SRAM DATA savings.
Revision 1.21 2001/05/15 10:55:23 tia
Remove sprm.initial. Saves 48 bytes from SRAM.
Revision 1.20 2001/03/29 04:48:15 tia
Add DVD Chapter remain time information.
Revision 1.19 2001/01/20 05:15:52 tia
Fix for Bonus Disc Toy Story.
Revision 1.18 2000/11/09 18:24:07 tia
Revision 1.17 2000/07/27 22:11:30 tia
Revision 1.16 2000/07/14 05:55:55 tia
Revision 1.15 2000/07/13 00:01:38 tia
Revision 1.14 2000/06/14 02:46:25 tia
Revision 1.13 2000/06/06 20:59:46 tia
Revision 1.12 2000/06/02 02:45:33 tia
Revision 1.11 2000/05/24 23:32:22 tia
Revision 1.10 2000/05/19 03:48:26 tia
Revision 1.9 2000/05/17 02:41:38 tia
Revision 1.8 2000/05/16 03:12:20 tia
Revision 1.7 2000/05/13 02:20:58 tia
Revision 1.6 2000/05/11 22:36:04 tia
Revision 1.5 2000/05/02 23:31:30 tia
Revision 1.4 2000/05/02 02:57:50 tia
Revision 1.3 2000/04/27 02:47:18 tia
Revision 1.2 2000/04/20 20:17:52 tia
Revision 1.1 2000/04/18 18:51:12 tia
Initial revision
Revision 1.1 2000/04/14 02:02:12 tia
Initial revision
*/
/***********************************************************************/
#include "Config.h" // Global Configuration - do not remove!
#ifndef _NVGADEFS_H
#define _NVGADEFS_H
#include "Playcore\Nav_DVD\Header\hli_defs.h"
#include "Playcore\Nav_DVD\Header\ccmpeg.h"
#include "Playcore\Nav_DVD\Header\stream.h"
#include "Playcore\Nav_DVD\Header\dvddef.h"
/* CRealTimePlayback and PCI opBuffer sizes, influence STATIC variable size requirements */
enum {
MAX_NP_INFO = 8, /* NAV PACK INFO FIFO depth, lag between DSI processing and PCI processing */
MAX_SCHEDULED_OPS = 5,
MAX_PCI_BUFFER = 3 /* 2 for ping-pong buffer */
};
//
// Capability defines
//
typedef enum {AUDIO_ALGORITHM,
VIDEO_ALGORITHM,
AUDIO_MODE,
VIDEO_MODE
}PRESENTATION_CAP;
// *************************************
//
// Video algorithm values (can be ORed together in return codes)
//
#define VIDEO_ALGORITHM_MPEG1 0x1
#define VIDEO_ALGORITHM_MPEG2 0x3
// *************************************
//
// Audio algorithm values (can be ORed together in return codes)
//
#define AUDIO_ALGORITHM_MPEG1 0x1
#define AUDIO_ALGORITHM_MPEG2 0x3
#define AUDIO_ALGORITHM_AC3 0x4
#define AUDIO_ALGORITHM_PCM 0x8
#define AUDIO_ALGORITHM_AC_3 0x4000
#define AUDIO_ALGORITHM_MPEG 0x1000
#define AUDIO_ALGORITHM_DTS 0x0800
#define AUDIO_ALGORITHM_SDDS 0x0400
#define AUDIO_ALGORITHM_LPCM_K 0x0080
#define AUDIO_ALGORITHM_AC3_K 0x0040
#define AUDIO_ALGORITHM_MPEG_K 0x0010
#define AUDIO_ALGORITHM_DTS_K 0x0008
#define AUDIO_ALGORITHM_SDDS_K 0x0004
//#endif
// *************************************
//
// Video mode values (can be ORed togethe in return codes)
//
// Video_SetMode syntax: mode details extra return
//--------------------------------------------------------------------
#define VIDEO_MODE_WIDE 0x1 /* - - success */
#define VIDEO_MODE_LETTER_BOX 0x2 /* - - success */
#define VIDEO_MODE_PAN_SCAN 0x4 /* - - success */
// *************************************
//
// Audio mode values (can be ORed togethe in return codes)
//
// Audio_SetMode syntax: mode details extra return
//--------------------------------------------------------------------
#define AUDIO_MODE_VOLUME 0x1
#define SET_ABS 0
#define SET_REL 1
// value new volume (0 - 1000)
#define AUDIO_MODE_BALANCE 0x2
// SET_ABS
// SET_REL
// value new balance (-1000 - 1000)
// NOTE: Volume and Balance units are measured in thousands.
// Relative settings are added to the current values.
// The new absolute values are returned.
// Negative balance represents right to left ratio (right lower than left)
// Positive balance represents left to right ratio (left lower than right)
#define AUDIO_MODE_SURROUND 0x4 /* TBD TBD success */
#define AUDIO_MODE_KARAOKE 0x8 /* SPRM(11) - success */
// *************************************
// *************************************
//
// Presentation events
//
// playback window identity change
#define PRESENTATION_EVENT_WINDOW_ID 1
// ****************************************************************************
// Events
// ****************************************************************************
//
// event value result return comment
//
//
#define DVD_EVENT_ANGLE_CHANGE 256 // - - SUCCESS/FAILURE synchronizes angle change in PGC
#define DVD_EVENT_EMPTY_STREAM_PUMP 257 // - - SUCCESS/FAILURE retrieves the VOBU to play
#define DVD_EVENT_PTM 258 // - - SUCCESS/FAILURE retrieves the VOBU to play
#define DVD_EVENT_TIME 259 // ID - SUCCESS/FAILURE retrieves the VOBU to play
#define DVD_EVENT_CLOCK 260 // ID - SUCCESS/FAILURE retrieves the VOBU to play
#define DVD_EVENT_STOP_STATUS 261 // - - -
#define THREAD_SWITCH_EVENT 1000
// =============================================
// SPRM -- symbolic definitions
enum
{
M_LCD = 0, ASTN, SPSTN, AGLN,
TTN, VTS_TTN, TT_PGCN, PTTN_SEQ,
HL_BTTN, NV_TMR, TT_PGCN_NV_TMR, P_A_MXMD,
CTY_CD_PTL_MA, PTL_LVL, P_CFG_VIDEO, P_CFG_AUDIO,
INI_LCD_AST, INI_LCD_EXT_AST, INI_LCD_SPST, INI_LCD_EXT_SPST,
PLAYER_REG_CODE, RESERVED_1, RESERVED_2, EXTENDED_PLAY,
// Add some additional SPRM's for DVD Audio
PG_NUM = 7,
ATT_GRN = 21,
ATTN = 22, // Att number
TKN = 23,
ASVN = 24
};
#define NO_AUDIO_STREAM 0xF
#define NO_SP_STREAM 0x3E
#define DUMMY_SP_STREAM 0x3F
#define SP_FORCED_CAPTION 0x09 //FW0906 According to DVD Spec. VI3-57
#define CODE_NOT_SPECIFIED (-1)
#define EXT_NOT_SPECIFIED 0
#define PTL_NOT_SPECIFIED 0xF
// Karaoke mode not supported
#define P_CFG_AUDIO_DTS 0x0800
#define P_CFG_AUDIO_AC_3 0x4000
#define P_CFG_AUDIO_MPEG 0x1000
// there's no bit assigned for PCM capability -- see SPRM( 15 ),
// use bit15 as LPCM capability bit
#define P_CFG_AUDIO_LPCM 0x8000
enum {
VOBU_STILL = 1,
CELL_STILL = 2,
PGC_STILL = 3,
SYNC_STILL = 4,
STOP_STILL = 5
};
//
// System Menu IDs
//
enum { MENU__TITLE = 2,
MENU__ROOT = 3,
MENU__SUBPICTURE = 4,
MENU__AUDIO = 5,
MENU__ANGLE = 6,
MENU__PTT = 7
};
// Domain ID -- see JumpSS/CallSS
typedef enum { FP_DOM = 0,
VMGM_DOM = 1,
VTSM_DOM = 2,
VMGM_PGCN = 3,
// Values not needed fpr JumpSS/CallSS
TT_DOM = 4,
STOP = 5,
// Domain IDs for DVD-AUDIO
AMGM_DOM = 1, // same value as VMGM_DOM
AVTT_GR_DOM = 4, // same value as TT_DOM
AOTT_GR_DOM = 6
}DOMAIN_ID;
// CGMS Information collected for each VOB file, from the File-System
#define MAX_VTS_CNT_PER_CACHE 1
#define MAX_FILES_PER_VTS 10 // Up to 9 files, plus one optional (VTS_XX_0.VOB)
#define MAX_CGMS_ENTRIES (1 + (MAX_FILES_PER_VTS * MAX_VTS_CNT_PER_CACHE))
#define CGMS_ENTRIES_ON_FLY (1+3) // For reducing the caching time when chagne the VTS
typedef struct {
DWORD dwVOBStartLBN;
DWORD dwVOBEndLBN;
BYTE ucCGMS;
} S_VOB_CGMS_INFO;
// PCI General Information
typedef struct
{
DWORD NV_PCK_LBN; // logical block number of navigation pack
DWORD VOBU_UOP_CTL; // user operation control of VOBU
DWORD VOBU_S_PTM; // start Presentation TiMe of the video data in VOBU
DWORD VOBU_E_PTM; // end PTM of VOBU
DWORD VOBU_SE_E_PTM; // end PTM of sequence end in VOBU
DWORD C_ELTM; // cell elapse time
WORD VOBU_CAT; // analogue protection sytem (APS)
BYTE TC_FLAG; // tc_flag
} S_PCI_GI;
// structure filled by C_PCI_PKT.Get_HL_GI()
typedef struct
{
long HLI_S_PTM; // start PTM of HLI
long HLI_E_PTM; // end PTM of HLI
long BTN_SL_E_PTM; // end PTM of button select
BYTE HLI_SS; // status of highlight information
BYTE FOSL_BTNN; // forcedly selected button number
BYTE FOAC_BTNN; // forcedly activated button number
BYTE BTN_OFN; //button offset number
BYTE BTN_Ns; //number of buttons
BYTE NSL_BTN_Ns; //number of numerical select buttons
} S_HL_GI;
// Selection/Action mode
enum { SELECT,
ACTIVATE
};
// structure filled by C_PCI_PKT.Get_Button_Links()
typedef struct
{
WORD UP_BTNN; // upper button number
WORD LO_BTNN;
WORD LEFT_BTNN;
WORD RIGHT_BTNN;
} S_AJBTN;
// enumerated data type for display mode
enum { Normal = 0x0000,
Wide = 0x0001,
Letterbox = 0x0002,
Panscan = 0x0004
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -