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

📄 dvdinfo.h

📁 车载电子影音系统dvd播放系统原程序代码
💻 H
📖 第 1 页 / 共 2 页
字号:

/****************************************************************************
    [ mscddef.h, mscd.h, mscd.cpp, mscd1.cpp ]
    Copywrite 1995 by TCH/L300, Cheertek, all right reserved

    Author  :   Chung-Hao   Tseng
    Date    :   1995. 1. 4
    Purpose :
    Notes   :
    Update  :
     Date        Name        Description
    ======    ==========    =================================================

******************************************************************************/

#ifndef     __DVDINFO_H__
#define     __DVDINFO_H__

#ifdef __cplusplus
   extern "C"{
#endif

// DVD_172r2
#define USE_SHARE_SRAM

// Micky modifiation for WinDVD 1.73. begin
#define REDUCE_VMGM_cSECTOR
#define MOVE_TT_SRPT_DRAM
#define MOVE_PTT_SRPT_DRAM
#define MOVE_VTS_PGCIT_DRAM

// Micky1.11, 32M/64M DRAM reserve address are different
// reference __dwReserveStart
/// #define DRAM_TT_SRPT_START  W99AV_DRAM_ADDR_RESERVE_START
#define DRAM_TT_SRPT_START  __dwReserveStart // Brian1.07f    

// max. 99 titles/ per VTS.
#define SIZE_TT_SRPT_FULL   (( 8 + 12*99L ))  // 1196 bytes.
#define DRAM_PTT_SRPT_START ( DRAM_TT_SRPT_START + ((SIZE_TT_SRPT_FULL+3)/4) )
// max. 99 ??
// Micky1.00, fix "The Perfect Storm"(Region 1) can't play over 6/99. 
// in dvdinfo.c VTSI_PTT_SRPs will limit max. 99.
// and the reserved VTSI_PTT_SRPT size(808) are not enough
// the There 2 TTUs within this VTS, max. has 274 PTT_SRPs.
// the reserved 808 will be OK till 6/198.
// must reserve max. PTT_SRPT.
// 8 + 99(TTUs)*4 + 999(PTT_SRPs) *4 = 4400
// HAL_DumpUserData must modify for over 1 sector.
#define SIZE_PTT_SRPT       4400    //808
#define DRAM_VTS_PGCIT_START    ( DRAM_PTT_SRPT_START + ((SIZE_PTT_SRPT+3)/4) )
// Micky0.87a, fix AVIA-> menu-> select 1st item play will play 1/1 or stop.
// The wPGCN=198. but F/W only store 180. It will use unknow DRAM data.
//#define MAX_VTS_PGC_SRP     180   // 1448 bytes
// Micky1.25, run time read VTS_PGCIT
// always keep 1 PGCI sector
/*
#define MAX_VTS_PGC_SRP     440 //2008 bytes
#define SIZE_VTS_PGCIT      (8+ 8* (MAX_VTS_PGC_SRP) )
*/
///*
#define MAX_VTS_PGC_SRP     65535L
#define SIZE_VTS_PGCIT      2048L
//*/

// Micky1.07, reduce SRAM--_bVMG_PTL_LVLI 200 bytes.
#define DRAM_VMG_PTL_LVLI_START (DRAM_VTS_PGCIT_START + ((SIZE_VTS_PGCIT+3)/4) )
#define SIZE_VMG_PTL_LVLI   200

BYTE _DVD_LoadFromDRAM ( WORD nMode, WORD nIndex  );
extern DWORD   _dwDRAMDest;
extern  char    _cCache [];

/////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////
////////    Begin of Testing Region     //////////////////////
//////////////////////////////////////////////////////////
// Below should be disable in normal state except "USE_SHARE_SRAM"
// TEST another(older) PGC_C_PBI ....
//#define     TEST_PGC_C_PBI

// TEST PGCI data that compare w/ < 0.43
//#define     TEST_COMPARE_PGCI

// Test VTSM_PGCI_UT < 0.49 (0.49 will use newer method)
//#define   TEST_COMPARE_VTSM_PGCI_UT

// Test VMG_PGCI_UT. (> 1.01a will use newer method)
//#define   TEST_COMPARE_VMGM_PGCI_UT

// TEST older _cVTS_PTT_SRPT_FULL method
// #define  TEST_COMPARE_VTS_PTT_SRPT

#ifdef    TEST_COMPARE_VTSM_PGCI_UT
#define     TEST_COMPARE_MODE
#endif  // TEST_COMPARE_VTSM_PGCI_UT

#ifdef    TEST_COMPARE_VMGM_PGCI_UT
#define     TEST_COMPARE_MODE
#endif  // TEST_COMPARE_VMGM_PGCI_UT

//////////////////////////////////////////////////////
////////    End of Testing Region     //////////////////////
//////////////////////////////////////////////////////////

// ** TCH1.71-1; Define it mean use new method to process
#define     ENHANCE_PGCI_MEM

//////////////////////////////////////////////////////////////
// *** Compatible with SYSTEM

// ** TCH0.29; begin...
extern  WORD                __wSPRMs [24];      // System Parameters
extern  WORD                __wGPRMs [16];      // General Parameters
// ** TCH0.29; end...


extern  BYTE                _bTotalPGN;                 // Record the totle Program # in PGC
extern  BYTE                _bTotalCell;                // Record the totle Cell # in PGC
extern  BYTE                _bVTSN;                // current VTSN

// DVD_172r2
#ifdef  USE_SHARE_SRAM
extern  WORD                *__wCELL_PBTM;      // ** TCH0.49; Don't declare the size, the size will depends on "MAX_CELLS_WITHIN_PGC".
#else
extern  WORD                __wCELL_PBTM [];      // ** TCH0.49; Don't declare the size, the size will depends on "MAX_CELLS_WITHIN_PGC".
#endif

extern  DWORD               _dwFirst_VOBS;        // Record the LBN of first VOBS (VMGM, VTSM, VTT ) // ** TCH0.39;

extern  DWORD               __dwPGC_UOP_CTL;    // ** TCH0.37; record UOP for PGC

// ** TCH1.01b; extern  char                _cVTS_PGCIT [2048];    // ** TCH0.39;
extern  char                _cVTS_PGCIT [];

// ** TCH0.42; begin...
extern  DWORD               __dwDVD_ATRT1;      // current ATRT1 (0-3 bytes)
extern  DWORD               __dwDVD_ATRT2;      // current ATRT2 (4-7 bytes)
// ** TCH0.42; end...

extern  BYTE                __bStatus_PTL;      // ** TCH0.431; record "is the final of PTL acceptable?"


#if  OS == OS_DOS    // ** TCH0.45;

#ifdef  _DEBUG
#ifndef     _TEST
#define     _TEST
#endif
#endif      // _DEBUG

// ** TCH1.72q; 

// Brian.276p, support _printf
/*
#ifndef	PRINTF 	// ** TCH1.72q; for ADS

#ifdef  _DEBUG
#define     PRINTF      printf
#else


#ifdef  _TEST
#define     PRINTF      printf
#else
#define     PRINTF      ; //printf
#endif      // _TEST

#endif  // _DEBUG

#endif	// PRINTF
*/


#endif

#define     WINAPI
#define     EXPORT

//////////////////////////////////////////////////////////////
//  definition
// DVD Information Part

// in VMGI_TT_SRPT
#define     OFFSET_TT_SRP               8
#define     BLOCK_TT_SRP                12

// in VTS_PTT_SRPT
//  #define     OFFSET_PTT_SRP              408

// Video Manager Information (VMGI)
// Micky1.21, reference VMGI VMG_CAT for RMA.
// VMG_CAT start from 34, byte 35 is RMA.
#define     VMGI_VMG_CAT                35
#define     VMGI_VTS_Ns                 63      // ** TCH0.40; Only one Byte valid
#define     VMGI_FP_PGCI_SA             132
#define     VMGI_VMGM_VOBS_SA           192
#define     VMGI_TT_SRPT_SA             196
#define     VMGI_VMGM_PGCI_UT_SA        200
#define     VMGI_PTL_MAIT_SA            204
#define     VMGI_VMGM_C_ADT_SA          216
#define     VMGI_VMGM_V_ATR             256     // ** TCH0.361;
// ** TCH0.42; begin...
#define     VMGI_VMGM_AST_Ns            258
#define     VMGI_VMGM_AST_ATR           260
#define     VMGI_VMGM_SPST_Ns           340
#define     VMGI_VMGM_SPST_ATR          342
// ** TCH0.42; end...

// Video Title Set Information (VTSI)
#define     VTSI_VTSM_VOBS_SA           192
#define     VTSI_VTSTT_VOBS_SA          196

#define     VTSI_VTS_PTT_SRPT_SA        200
#define     VTSI_VTS_PGCIT_SA           204
#define     VTSI_VTSM_PGCI_UT_SA        208
#define     VTSI_VTS_TMAPT_SA           212

// ** TCH0.361; begin...
#define     VTSI_VTSM_V_ATR             256
#define     VTSI_VTSM_AST_Ns            258
#define     VTSI_VTSM_AST_ATR           260
#define     VTSI_VTSM_SPST_Ns           340
#define     VTSI_VTSM_SPST_ATR          342
// ** TCH0.361; end...

// Micky2.80, reduce VTSI.
// move VTS_V_ATR~VTS_AST_ATRT(68 bytes) to 268.
// move VTS_SPST_Ns~VTS_SPST_ATRT 194 bytes to 348.
/*
#define     VTSI_VTS_V_ATR              512
#define     VTSI_VTS_AST_Ns             514
#define     VTSI_VTS_AST_ATRT           516
#define     VTSI_VTS_SPST_Ns            596
#define     VTSI_VTS_SPST_ATRT          598
*/
#define     VTSI_VTS_V_ATR              268

⌨️ 快捷键说明

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