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

📄 mapping.h

📁 Zoran V966 DVD 解码 Soc芯片的源程序
💻 H
字号:

/****************************************************************************************
 *  Copyright (c) 2002 ZORAN Corporation, All Rights Reserved
 *  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
 *
 *  File: $Workfile: MAPPING.H $             
 *
 * Description: 
 * ============
 * 
 * 
 * Log:
 * ====
 * $Revision: 4 $
 * Last Modified by $Author: Angieh $ at $Modtime: 04-03-08 11:40 $ 
 ****************************************************************************************
 * Updates:
 ****************************************************************************************
 * $Log: /I76/I76_Common/I76_Reference/Playcore/Nav_DVD/Header/MAPPING.H $
 ****************************************************************************************/


#include "Config.h"		// Global Configuration - do not remove!

#ifndef __MAPPING_H
#define __MAPPING_H

#include "vpu_api.h"
#include "Playcore\Nav_DVD\Header\stream.h"
#include "Playcore\Nav_DVD\Header\dvddef.h"

#define  pgc_gi_Get_PlayBack_Time() 		 ((DWORD) TIME_DECOD(fs_scGetByte(g_pDVDNav->pgc.info_sc_st.sc_handle,4), fs_scGetByte(g_pDVDNav->pgc.info_sc_st.sc_handle,5), fs_scGetByte(g_pDVDNav->pgc.info_sc_st.sc_handle,6), fs_scGetByte(g_pDVDNav->pgc.info_sc_st.sc_handle,7)))
#define pgc_gi_Get_UOP_CTL()				 ((DWORD)fs_scGetDword(g_pDVDNav->pgc.info_sc_st.sc_handle, 8) & 0x01FFFFEFL)
#define tt_Get_Count()						 (g_pDVDNav->vmg.title_table_sc_st.size / 12)
#define atrt_Get_Video_Attr( st )			 (fs_scGetWord((st)->sc_handle, 0))
#define atrt_Get_Audio_Stream_Count( st )	 ((int) fs_scGetWord((st)->sc_handle,2) & 0x0F)
#define atrt_Get_DA_Audio_Stream_Count( st ) ((int) fs_scGetWord((st)->sc_handle + 1,0) & 0x0F)
#define atrt_Get_SP_Stream_Count( st )		 ((int) fs_scGetWord((st)->sc_handle,84) & 0x3F)

BOOL pgc_cmdt_Get_Pre_Command ( S_SC_STORAGE *st, BYTE *buffer, int command );
BOOL pgc_cmdt_Get_Cell_Command( S_SC_STORAGE *st, BYTE *buffer, int command );
BOOL pgc_cmdt_Get_Post_Command( S_SC_STORAGE *st, BYTE *buffer, int command );
BOOL pgc_gi_Get_Audio_Control_Info( int stream, S_PGC_AST_CTL *buffer);
BOOL pgc_gi_Get_SP_Control_Info   ( int stream, S_PGC_SPST_CTL *buffer);
void pgc_gi_Get_Navigation_Info( S_PGC_NV_CTL *buffer );
void pgc_gi_Get_SP_Palette     ( S_PAL_ENTRY *buffer );
void pgc_gi_Get_Program_Content( S_PGC_CNT *buffer   );
BOOL c_pbit_Get_Cell_PBI( S_SC_STORAGE *st, int cell, S_C_PBI *buffer);
BOOL pgc_pgmap_Get_Entry_Cell( S_SC_STORAGE *st, int program, S_PG *buffer);
BOOL pgc_pgmap_Get_PG_CNT(S_SC_STORAGE *st, int program,DWORD *pg_cnt);
BOOL c_posit_Get_Cell_Position(S_SC_STORAGE *st, int cell, S_C_POSIT *buffer);
int c_posit_Get_Last_C_IDN( S_SC_STORAGE *st, int C_VOB_IDN );

BOOL atrt_Get_Audio_Attr            ( S_SC_STORAGE *st, AUDIO_ATTRIBUTES *buffer, int stream );
BOOL atrt_Get_Audio_MultiChanel_Attr( S_SC_STORAGE *st, S_MU_A_ATR       *buffer, int stream );
BOOL atrt_Get_SP_Attr               ( S_SC_STORAGE *st, S_SP_ATR         *buffer, int stream );

BOOL tt_Get_TT_SRP( S_TT_SRP *buffer, int TTN);
int tt_Get_TTN( int VTSN, int VTS_TTN );
DWORD tt_Get_VTS_SA( int VTSN);



//
//  Specific sizes for VMGI / VTSI data
//

/* C_VMG class translation */
BOOL vmg_construct(S_FPOS *address, WORD country, WORD language);
void vmg_delete( void );
void vmg_GetVTS( S_FPOS *fposp,  int VTSN );
WORD vmg_Get_PTL_ID(  WORD level, int VTSN);
WORD vmg_Get_Menu_Structure( WORD VMG_Parental_ID );
#define vmg_GetTT( buffer, TTN ) tt_Get_TT_SRP( buffer, TTN)

#ifdef NO_VMGI_DATA_REDUCTION
void vmg_GetVolumeID( VOLUME_ID *buffer );
#define vmg_Get_VTS_Count() ((int) buff2word(g_pDVDNav->vmg.st.buffer,62) & 0x7F)
#define vmg_Get_CAT() ((BYTE) g_pDVDNav->vmg.st.buffer[35])
#else
#define vmg_Get_VTS_Count() ((int) g_pDVDNav->vmg.vts_count&0x7F)
#define vmg_Get_CAT() ( g_pDVDNav->vmg.vol_cat)
#define vmg_GetVolumeID( p_vol_id )		*(VOLUME_ID *)p_vol_id = g_pDVDNav->vmg.vol_id
#endif


/* C_VTS class translation */
BOOL  vts_construct( S_FPOS *address ,WORD language);
void vts_delete(void );
#define  vts_Get_CAT( st ) ( (BYTE) (st)->buffer[35] )
BOOL  vts_GetPTT( S_PGC_SRP *buffer, int VTS_TTN, int PTTN);
DWORD vts_GetTimeVOBU( WORD PGCN, DWORD TIME);
int   vts_Get_PTTN( int PGCN, int PGN );
WORD  vts_Get_Menu_Structure( WORD VMG_Parental_ID );

/* C_DOM, C_TITLE_DOM, C_MENU_DOM translation */

void dom_init( S_DOM *dom, int type, BYTE* sc_handle );
void dom_delete( S_DOM *dom );
void dom_SetPGC_table( S_DOM *dom, S_FPOS *pgct ) ;
BOOL title_dom_construct( S_DOM *dom, /*LBN VOBSaddress,*/ S_FPOS *attr, S_FPOS *pgct );
void title_dom_GetPGC( S_DOM *dom, S_FPOS *fposp, S_PGC_SRP *srp, WORD ptl_lvl);
BOOL menu_dom_construct( S_DOM *dom, /*LBN VOBSaddress,*/ S_FPOS *attr, S_FPOS *pgct, WORD language  );
void menu_dom_GetPGC( S_DOM *dom, S_FPOS *fposp, S_PGC_SRP *srp, WORD ptl_lvl, BOOL menu_id );

#endif //__MAPPING_H

⌨️ 快捷键说明

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