|
|
//***************************************************************************
//
// FileName:
// $Workfile: ZIVACHIP.H $
//
// Author:
// TOSHIBA [PCS](PSY) Seiichi Nakamura
// Copyright (c) 1997 TOSHIBA CORPORATION
//
// Description:
//
//***************************************************************************
// $Header: /DVD Drivers/ZiVA.VxD/ZIVACHIP.H 18 98/06/01 6:38p Yagi $
// $Modtime: 98/05/29 9:11a $
// $Nokeywords:$
//***************************************************************************
//***************************************************************************
//
//***************************************************************************
#ifndef _ZIVACHIP_H_
#define _ZIVACHIP_H_
#define ZIVA_INT_ERR (0x00000001L)
#define ZIVA_INT_PICV (0x00000002L)
#define ZIVA_INT_GOPV (0x00000004L)
#define ZIVA_INT_SEQV (0x00000008L)
#define ZIVA_INT_ENDV (0x00000010L)
#define ZIVA_INT_PICD (0x00000020L)
#define ZIVA_INT_VSYNC (0x00000040L)
#define ZIVA_INT_AOR (0x00000080L)
#define ZIVA_INT_EPTM (0x00000080L)
#define ZIVA_INT_UND (0x00000100L)
#define ZIVA_INT_ENDC (0x00000200L)
#define ZIVA_INT_RDYS (0x00000400L)
#define ZIVA_INT_SCN (0x00000800L)
#define ZIVA_INT_USR (0x00001000L)
#define ZIVA_INT_ENDP (0x00002000L)
#define ZIVA_INT_ENDD (0x00004000L)
#define ZIVA_INT_AEE (0x00008000L)
#define ZIVA_INT_BUFF (0x00010000L)
#define ZIVA_INT_SEQE (0x00020000L)
#define ZIVA_INT_NV (0x00040000L)
#define ZIVA_INT_HLI (0x00080000L)
#define ZIVA_INT_RDYD (0x00100000L)
#define ZIVA_INT_RESERV1 (0x00200000L)
#define ZIVA_INT_AUD (0x00400000L)
#define ZIVA_INT_INIT (0x00800000L)
// by oka
#define PBT_INT_END_VOB (0x00000001L)
#define PBT_INT_NV_PCK (0x00000002L)
typedef enum { ZIVARESULT_NOERROR = 0, ZIVARESULT_TIMEOUT } ZIVARESULT;
typedef enum { RESET_AUTHENTICATION = 0, GET_CHALLENGE_DATA = 1, SEND_RESPONSE_DATA = 2, SEND_CHALLENGE_DATA = 3, GET_RESPONSE_DATA = 4, SEND_DISK_KEY = 5, SEND_TITLE_KEY = 6, SET_DECRYPTION_MODE = 7, SET_PASS_THROUGH_MODE = 8 } COPY_PROTECT_COMMAND_TYPE;
typedef enum { SET_NEW_COMMAND = 0, COMMAND_COMPLETE = 1, COMMAND_ERROR = 2, READY_DKEY = 3 } COPY_PROTECT_COMMAND;
typedef enum { ZIVA_STATE_INITIALIZATION = 0x01, ZIVA_STATE_IDLE = 0x02, ZIVA_STATE_PLAY = 0x04, ZIVA_STATE_PAUSE = 0x08, ZIVA_STATE_SCAN = 0x10, ZIVA_STATE_FREEZE = 0x20, ZIVA_STATE_SLOWMOTION = 0x40 } ZIVA_PROC_STATE;
class CIOIF;
//---------------------------------------------------------------------------
// CZiVA for CL6105
//---------------------------------------------------------------------------
class CZiVA {
public:
//------------------------
// Private class for ZiVA
//------------------------
class CZiVAMemory { private: DWORD Address; CZiVA *m_ziva;
public: CZiVAMemory(); void Init( CZiVA *pziva , DWORD addr ); DWORD Get( DWORD *pData ); DWORD Set( DWORD Data ); DWORD GetAndSet( DWORD Mask, DWORD SetData ); CZiVAMemory& operator=(const DWORD &Data ) { Set( Data ); return *this; };
operator DWORD() { DWORD Data; Get( &Data ); return Data; };
CZiVAMemory& operator&=(const DWORD &Data ); CZiVAMemory& operator|=(const DWORD &Data );
};
friend class CZiVAMemory;
private: // datas
CIOIF *m_pioif; static BYTE UXData[]; BYTE * gpbRead; // Read pointer to the UCode buffer
IKernelService *m_pKernelObj; // Kernel service object
private: // commands
ZIVARESULT ZiVACommand( DWORD CommandID, DWORD d1 = 0, DWORD d2 = 0, DWORD d3 = 0, DWORD d4 = 0, DWORD d5 = 0, DWORD d6 = 0 ); ZIVARESULT ZiVACommandNoWait( DWORD CommandID, DWORD d1 = 0, DWORD d2 = 0, DWORD d3 = 0, DWORD d4 = 0, DWORD d5 = 0, DWORD d6 = 0 );
DWORD ZiVAWriteReg(DWORD Addr, DWORD Data ); DWORD ZiVAReadReg(DWORD Addr, DWORD *Data );
DWORD ZiVAWriteIMEM(DWORD Addr, DWORD Data ); DWORD ZiVAReadIMEM(DWORD Addr, DWORD *Data );
// for microcode down load....
DWORD load_GetDWORD(); DWORD load_GetDWORDSwap(); DWORD load_GetDWORDSwapBackward();
public: // datas
CZiVAMemory Host_Control;
CZiVAMemory ROM_INFO; CZiVAMemory DRAM_INFO; CZiVAMemory UCODE_MEMORY; CZiVAMemory VIDEO_MODE; CZiVAMemory DISPLAY_ASPECT_RATIO; CZiVAMemory ASPECT_RATIO_MODE; CZiVAMemory PAN_SCAN_SOURCE; CZiVAMemory PAN_SCAN_HORIZONTAL_OFFSET; CZiVAMemory TOP_BORDER; CZiVAMemory BORDER_COLOR; CZiVAMemory BACKGROUND_COLOR; CZiVAMemory OSD_EVEN_FIELD; CZiVAMemory OSD_ODD_FIELD; CZiVAMemory IC_TYPE; CZiVAMemory ERR_CONCEALMENT_LEVEL; CZiVAMemory ERR_HORIZONTAL_SIZE; CZiVAMemory ERR_VERTICAL_SIZE; CZiVAMemory ERR_ASPECT_RATIO_INFORMATION; CZiVAMemory ERR_FRAME_RATE_CODE; CZiVAMemory FORCE_CODED_ASPECT_RATIO; CZiVAMemory AUDIO_CONFIG; CZiVAMemory AUDIO_DAC_MODE; CZiVAMemory AUDIO_CLOCK_SELECTION; CZiVAMemory IEC_958_DELAY; CZiVAMemory AUDIO_ATTENUATION; CZiVAMemory IEC_958_CHANNEL_STATUS_BITS; CZiVAMemory AC3_OUTPUT_MODE; CZiVAMemory AC3_OPERATIONAL_MODE; CZiVAMemory AC3_LOW_BOOST; CZiVAMemory AC3_HIGH_CUT; CZiVAMemory AC3_PCM_SCALE_FACTOR; CZiVAMemory AC3_LFE_OUTPUT_ENABLE; CZiVAMemory AC3_VOICE_SELECT; CZiVAMemory AC3_L_LEVEL; CZiVAMemory AC3_C_LEVEL; CZiVAMemory AC3_R_LEVEL; CZiVAMemory AC3_SL_LEVEL; CZiVAMemory AC3_SR_LEVEL; CZiVAMemory AC3_CENTER_DELAY; CZiVAMemory AC3_SURROUND_DELAY; CZiVAMemory BITSTREAM_TYPE; CZiVAMemory BITSTREAM_SOURCE; CZiVAMemory SD_MODE; CZiVAMemory CD_MODE; CZiVAMemory AV_SYNC_MODE; CZiVAMemory VIDEO_PTS_SKIP_INTERVAL; CZiVAMemory VIDEO_PTS_REPEAT_INTERVAL; CZiVAMemory AUTOPAUSE_ENABLE; CZiVAMemory VIDEO_ENV_CHANGE; CZiVAMemory MEMCOPY_XFER_BLOCKSIZE; CZiVAMemory INT_MASK; CZiVAMemory AUTO_FLUSH_INTERVAL; CZiVAMemory RDY_S_THRESHOLD_LOW; CZiVAMemory MEMORY_MAP; CZiVAMemory PCI_BUFFER_START; CZiVAMemory PCI_BUFFER_END; CZiVAMemory DSI_BUFFER_START; CZiVAMemory DSI_BUFFER_END; CZiVAMemory OSD_BUFFER_START; CZiVAMemory OSD_BUFFER_END; CZiVAMemory OSD_BUFFER_IDLE_START; CZiVAMemory USER_DATA_BUFFER_START; CZiVAMemory USER_DATA_BUFFER_END; CZiVAMemory USER_DATA_READ; CZiVAMemory USER_DATA_WRITE; CZiVAMemory DUMP_DATA_BUFFER_START; CZiVAMemory DUMP_DATA_BUFFER_END; CZiVAMemory SUB_PICTURE_PALETTE_START; CZiVAMemory SUB_PICTURE_PALETTE_END; CZiVAMemory PROC_STATE; CZiVAMemory MRC_ID; CZiVAMemory MRC_STATUS; CZiVAMemory INT_STATUS; CZiVAMemory HLI_INT_SRC; CZiVAMemory BUFF_INT_SRC; CZiVAMemory UND_INT_SRC; CZiVAMemory PBT_INT_SRC; CZiVAMemory AOR_INT_SRC; CZiVAMemory AEE_INT_SRC; CZiVAMemory ERR_INT_SRC; CZiVAMemory VIDEO_EMPTINESS; CZiVAMemory AUDIO_EMPTINESS; CZiVAMemory CURR_PIC_DISPLAYED; CZiVAMemory NEXT_PIC_DISPLAYED; CZiVAMemory VIDEO_FIELD; CZiVAMemory OSD_VALID; CZiVAMemory NUM_DECODED; CZiVAMemory NUM_SKIPPED; CZiVAMemory NUM_REPEATED; CZiVAMemory MRC_PIC_PTS; CZiVAMemory MRC_PIC_STC; CZiVAMemory N_AUD_DECODED; CZiVAMemory NEXT_SECTOR_ADDR; CZiVAMemory N_SYS_ERRORS; CZiVAMemory N_VID_ERRORS; CZiVAMemory N_AUD_ERRORS; CZiVAMemory DATE_TIME; CZiVAMemory VERSION; CZiVAMemory EXTENDED_VERSION; CZiVAMemory PIC1_BUFFER_START; CZiVAMemory PIC1_PTS; CZiVAMemory PIC1_PAN_SCAN; CZiVAMemory PIC1_USER_DATA; CZiVAMemory PIC1_TREF_PTYP_FLGS; CZiVAMemory PIC2_BUFFER_START; CZiVAMemory PIC2_PTS; CZiVAMemory PIC2_PAN_SCAN; CZiVAMemory PIC2_USER_DATA; CZiVAMemory PIC2_TREF_PTYP_FLGS; CZiVAMemory PIC3_BUFFER_START; CZiVAMemory PIC3_PTS; CZiVAMemory PIC3_PAN_SCAN; CZiVAMemory PIC3_USER_DATA; CZiVAMemory PIC3_TREF_PTYP_FLGS; CZiVAMemory STREAM_ID; CZiVAMemory PACKET_LEN; CZiVAMemory PES_HEADER; CZiVAMemory SUBPIC_EMPTINESS; CZiVAMemory H_SIZE; CZiVAMemory V_SIZE; CZiVAMemory APSECT_RATIO; CZiVAMemory FRAME_RATE; CZiVAMemory BIT_RATE; CZiVAMemory VBV_SIZE; CZiVAMemory SEQ_FLAGS; CZiVAMemory DISP_SIZE_H_V; CZiVAMemory TIME_CODE; CZiVAMemory GOP_FLAGS; CZiVAMemory TEMP_REF; CZiVAMemory PIC_TYPE; CZiVAMemory VBV_DELAY; CZiVAMemory PIC_HEADER; CZiVAMemory AUDIO_TYPE; CZiVAMemory MPEG_AUDIO_HEADER1; CZiVAMemory AC3_FRAME_NUMBER; CZiVAMemory LPCM_AUDIO_EMPHASIS_FLAG; CZiVAMemory MPEG_AUDIO_HEADER2; CZiVAMemory LPCM_AUDIO_MUTE_FLAG; CZiVAMemory AC3_BSI_IS_BEING_READ; CZiVAMemory LPCM_AUDIO_FRAME_NUMBER; CZiVAMemory AC3_BSI_VALID; CZiVAMemory LPCM_AUDIO_QUANTIZATION_WORD_LENGTH; CZiVAMemory AC3_BSI_FRAME; CZiVAMemory LPCM_AUDIO_SAMPLING_FREQUENCY; CZiVAMemory AC3_FSCOD_FRMSIZECOD; CZiVAMemory LPCM_AUDIO_NUMBER_OF_AUDIO_CHANNELS; CZiVAMemory AC3_BSID_BSMOD; CZiVAMemory LPCM_AUDIO_DYNAMIC_RANGE_CONTROL; CZiVAMemory AC3_ACMOD_CMIXLEV; CZiVAMemory AC3_SURMIXLEV_DSURMOD; CZiVAMemory AC3_LFEON_DIALNORM; CZiVAMemory AC3_COMPR_LANGCOD; CZiVAMemory AC3_MIXLEV_ROOMTYP; CZiVAMemory AC3_DIALNORM2_COMPR2; CZiVAMemory AC3_LANGCOD2_MIXLEV2; CZiVAMemory AC3_ROOMTYP2_COPYRIGHTB; CZiVAMemory AC3_ORIGBS_TIMECOD1; CZiVAMemory AC3_TIMECOD2; CZiVAMemory SE_STATUS; CZiVAMemory NEW_AUDIO_MODE; CZiVAMemory NEW_SUBPICTURE_PALETTE; CZiVAMemory NEW_AUDIO_CONFIG; CZiVAMemory VSYNC_HEARTBEAT; CZiVAMemory ML_HEARTBEAT; CZiVAMemory SUBPICTURE_ENABLE; CZiVAMemory HIGHLIGHT_ENABLE; CZiVAMemory CURRENT_BUTTON;
CZiVAMemory AU_CLK_INOUT; //Toshiba special
CZiVAMemory IDLE_DELAY;
CZiVAMemory ERR_MPEG_VERSION; // 98.04.02 H.Yagi
CZiVAMemory VERTICAL_DISPLAYMODE; // 98.04.02 H.Yagi
CZiVAMemory AC3_ENGINE_VERSION; // 98.04.02 H.Yagi
CZiVAMemory ROM_END_POINTER; // 98.04.02 H.Yagi
CZiVAMemory CURRENT_VOB_CELL_ID; // 98.04.02 H.Yagi
CZiVAMemory PREV_VOBU_VIDEO_RLBN; // 98.04.02 H.Yagi
CZiVAMemory HOST_OPTIONS; // 98.05.29 H.Yagi
// Authentication
CZiVAMemory KEY_ADDRESS; // Yagi
CZiVAMemory KEY_LENGTH; // Yagi
CZiVAMemory KEY_COMMAND; // Yagi
CZiVAMemory KEY_STATUS; // Yagi
CZiVAMemory DRIVE_CHALLENGE_0; // Yagi
CZiVAMemory DRIVE_CHALLENGE_1; // Yagi
CZiVAMemory DRIVE_CHALLENGE_2; // Yagi
CZiVAMemory DRIVE_CHALLENGE_3; // Yagi
CZiVAMemory DRIVE_CHALLENGE_4; // Yagi
CZiVAMemory DRIVE_CHALLENGE_5; // Yagi
CZiVAMemory DRIVE_CHALLENGE_6; // Yagi
CZiVAMemory DRIVE_CHALLENGE_7; // Yagi
CZiVAMemory DRIVE_CHALLENGE_8; // Yagi
CZiVAMemory DRIVE_CHALLENGE_9; // Yagi
CZiVAMemory DECODER_CHALLENGE_0; // Yagi
CZiVAMemory DECODER_CHALLENGE_1; // Yagi
CZiVAMemory DECODER_CHALLENGE_2; // Yagi
CZiVAMemory DECODER_CHALLENGE_3; // Yagi
CZiVAMemory DECODER_CHALLENGE_4; // Yagi
CZiVAMemory DECODER_CHALLENGE_5; // Yagi
CZiVAMemory DECODER_CHALLENGE_6; // Yagi
CZiVAMemory DECODER_CHALLENGE_7; // Yagi
CZiVAMemory DECODER_CHALLENGE_8; // Yagi
CZiVAMemory DECODER_CHALLENGE_9; // Yagi
CZiVAMemory DRIVE_RESULT_0; // Yagi
CZiVAMemory DRIVE_RESULT_1; // Yagi
CZiVAMemory DRIVE_RESULT_2; // Yagi
CZiVAMemory DRIVE_RESULT_3; // Yagi
CZiVAMemory DRIVE_RESULT_4; // Yagi
CZiVAMemory DECODER_RESULT_0; // Yagi
CZiVAMemory DECODER_RESULT_1; // Yagi
CZiVAMemory DECODER_RESULT_2; // Yagi
CZiVAMemory DECODER_RESULT_3; // Yagi
CZiVAMemory DECODER_RESULT_4; // Yagi
CZiVAMemory TITLE_KEY_0; // Yagi
CZiVAMemory TITLE_KEY_1; // Yagi
CZiVAMemory TITLE_KEY_2; // Yagi
CZiVAMemory TITLE_KEY_3; // Yagi
CZiVAMemory TITLE_KEY_4; // Yagi
public: CZiVA( void );
public: // commands
void Init( IKernelService *pKernelObj, CIOIF *pioif ); void CppInit( DWORD KeyAddr );
// Type 0: NTSC, Type 1: NTSC
BOOL WriteMicrocode( DWORD Type );
DWORD ZiVAWriteMemory(DWORD Addr, DWORD Data ); DWORD ZiVAReadMemory(DWORD Addr, DWORD *Data );
ZIVARESULT Abort( DWORD Flush ); ZIVARESULT Digest( DWORD x, DWORD y, DWORD decimation, DWORD threshold, DWORD start ); ZIVARESULT DumpData_VCD( DWORD start, DWORD length, DWORD address ); ZIVARESULT DumpData_DVD( DWORD numberOfBytes ); ZIVARESULT Fade( DWORD level, DWORD fadetime ); ZIVARESULT Freeze( DWORD displayMode ); // by oka
ZIVARESULT HighLight( DWORD button, DWORD action ); ZIVARESULT HighLight2( DWORD Contrast, DWORD Color, DWORD YGeom, DWORD XGeom ); // ZIVARESULT NewAudioMode( void );
ZIVARESULT NewPlayMode( void ); ZIVARESULT Pause( DWORD displaymode ); ZIVARESULT Play( DWORD playmode, DWORD fadetime, DWORD start, DWORD stop ); ZIVARESULT MemCopy( DWORD romAddr, DWORD dramAddr, DWORD Length ); ZIVARESULT Reset( void ); ZIVARESULT Resume( void ); ZIVARESULT Scan( DWORD skip, DWORD scanmode, DWORD displaymode ); ZIVARESULT ScreenLoad( DWORD address, DWORD length, DWORD displaymode ); ZIVARESULT SelectStream( DWORD streamtype, DWORD streamnumber ); ZIVARESULT SetFill( DWORD x, DWORD y, DWORD length, DWORD height, DWORD color ); ZIVARESULT SetStreams( DWORD videoID, DWORD audioID ); ZIVARESULT SingleStep( DWORD displaymode ); ZIVARESULT SlowMotion( DWORD N, DWORD displaymode ); // by oka
ZIVARESULT Magnify( DWORD x, DWORD y, DWORD factor ); // ZIVARESULT SwitchOSDBuffer( DWORD evenfield, DWORD oddfield );
ZIVARESULT TransferKey( DWORD KeyType, DWORD Authenticate ); };
#endif // _ZIVACHIP_H_
//***************************************************************************
// End of
//***************************************************************************
|