Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//***************************************************************************
//
// FileName:
// $Workfile: zivabrd.h $
//
// Author:
// TOSHIBA [PCS](PSY) Seiichi Nakamura
// Copyright (c) 1997 TOSHIBA CORPORATION
//
// Description:
//
//***************************************************************************
// $Header: /DVD Drivers/ZiVA.WDM/zivabrd.h 38 99/04/21 2:46p Yagi $
// $Modtime: 99/04/21 2:21p $
// $Nokeywords:$
//***************************************************************************
// Date | Author | Description
// -----------+--------------+--------------------------------------------
// 1997.12.04 | Hideki Yagi | Add VideoProperty_FilmCamera.
// | | This Property is necessary to support WSS.
// 1998.02.19 | Hideki Yagi | Add AudioProperty_AC3OutputMode.
// | | This Property is necessary to support KARAOKE.
// 1998.03.27 | Hideki Yagi | Add GetCapability method.
// | | Add VideoProperty_SuquarePixel.
// 1998.05.01 | Hideki Yagi | Add SubpicProperty_FlushBuff.
// 1998.05.12 | Hideki Yagi | Add m_VSyncEventList.
// 1998.09.25 | Hideki Yagi | Add m_WrapperType.
// | |
//
#ifndef _ZIVA_BOARD_H_
#define _ZIVA_BOARD_H_
class CZiVA; class CIOIF;
//***************************************************************************
// KernelService HWInt Help Class
//***************************************************************************
class CAutoHwInt { private: IKernelService *m_pKernelObj; public: CAutoHwInt( IKernelService *pKernelObj ) { m_pKernelObj = NULL; ASSERT( pKernelObj != NULL ); m_pKernelObj = pKernelObj; m_pKernelObj->DisableHwInt(); }; ~CAutoHwInt( void ) { m_pKernelObj->EnableHwInt(); }; };
//***************************************************************************
// IMBoardListItem Help Class
//***************************************************************************
class CList { private: IMBoardListItem *pTopItem; IMBoardListItem *pCurrentItem;
public: CList( void ); void Init( void );
BOOL SearchItem( IMBoardListItem *pItem ); BOOL AddItem( IMBoardListItem *pItem ); BOOL DeleteItem( IMBoardListItem *pItem ); BOOL SetCurrentToTop( void ); IMBoardListItem *GetNext( void ); IMBoardListItem *SearchBottomItem( void ); };
//***************************************************************************
// VideoPropatySet Class
//***************************************************************************
class CVideoPropSet { public: VideoProperty_TVSystem_Value m_TVSystem; VideoProperty_AspectRatio_Value m_AspectRatio; VideoProperty_DisplayMode_Value m_DisplayMode; VideoSizeStruc m_Size; VideoProperty_DigitalOut_Value m_DigitalOut; UCHAR m_DigitalPalette[3][256]; VideoAPSStruc m_APS; VideoProperty_ClosedCaption_Value m_ClosedCaption; VideoProperty_OutputSource_Value m_OutputSource; VideoProperty_CompositeOut_Value m_CompositeOut; VideoProperty_SVideoOut_Value m_SVideoOut; VideoProperty_SkipFieldControl_Value m_SkipFieldControl; VideoProperty_FilmCamera_Value m_FilmCamera; VideoProperty_SquarePixel_Value m_SquarePixel; //by oka
VideoProperty_OSD_Switch_Value m_OSDSwitch;
public: CVideoPropSet(){ Init(); }; void Init( void ) { // setup default value
m_TVSystem = TV_NTSC; m_AspectRatio = Aspect_04_03; m_DisplayMode = Display_Original; m_Size.ResHorizontal = 720; m_Size.ResVertical = 480; m_DigitalOut = DigitalOut_Off;
for( int i = 0 ; i < 3 ; i ++ ) for( int j = 0 ; j < 256; j ++ ) m_DigitalPalette[i][j] = (UCHAR)j;
m_APS.CgmsType = CgmsType_Off; m_APS.APSType = ApsType_Off; m_ClosedCaption = ClosedCaption_Off; m_OutputSource = OutputSource_DVD; m_CompositeOut = CompositeOut_Off; m_SVideoOut = SVideoOut_Off; m_SkipFieldControl = SkipFieldControl_Off; m_FilmCamera = Source_Camera; m_SquarePixel = SquarePixel_Off; // by oka
m_OSDSwitch = Video_OSD_Off; }; };
//***************************************************************************
// AudioPropatySet Class
//***************************************************************************
class CAudioPropSet { public: AudioProperty_Type_Value m_Type; DWORD m_StreamNo; DWORD m_Volume; DWORD m_Sampling; DWORD m_ChannelNo; DWORD m_Quant; AudioProperty_AudioOut_Value m_OutType; AudioProperty_Cgms_Value m_Cgms; AudioProperty_AnalogOut_Value m_AnalogOut; AudioProperty_DigitalOut_Value m_DigitalOut; DWORD m_AC3DRangeLowBoost; DWORD m_AC3DRangeHighCut; AudioProperty_AC3OperateMode_Value m_AC3OperateMode; AudioProperty_AC3OutputMode_Value m_AC3OutputMode;
public: CAudioPropSet(){ Init(); }; void Init( void ) { // setup default value
m_Type = AudioType_AC3; m_StreamNo = 0; m_Volume = 100; m_Sampling = 48000; m_ChannelNo = 2; m_Quant = 16; m_OutType = AudioOut_Encoded; m_Cgms = AudioCgms_Off; m_AnalogOut = AudioAnalogOut_On; m_DigitalOut = AudioDigitalOut_Off; m_AC3DRangeLowBoost = 128; m_AC3DRangeHighCut = 128; m_AC3OperateMode = AC3OperateLine; };
};
//***************************************************************************
// SubpicPropatySet Class
//***************************************************************************
class CSubpicPropSet { public: DWORD m_StreamNo; UCHAR m_Palette[48]; SubpHlightStruc m_Hlight; SubpicProperty_State_Value m_OutType; // by oka
SubpHlightButtonStruc m_HlightButton;
public: // setup default value
CSubpicPropSet(){ Init(); };
void Init( void ) { m_StreamNo = 0; for( int i = 0 ; i < 48 ; i ++ ) m_Palette[ i ] = 0; m_Hlight.Hlight_Switch = Hlight_Off; m_Hlight.Hlight_StartX = 0; m_Hlight.Hlight_EndX = 0; m_Hlight.Hlight_StartY = 0; m_Hlight.Hlight_EndY = 0; m_Hlight.Hlight_Color = 0; m_Hlight.Hlight_Contrast= 0; m_OutType = Subpic_On; // by oka
m_HlightButton.Hlight_Button = 0; m_HlightButton.Hlight_Action = Button_Unhighlight; }; };
//***************************************************************************
// ZiVA Board Class
//***************************************************************************
class CMPEGBoardHAL: public IClassLibHAL, public IWrapperHAL { //
private: IKernelService *m_pKernelObj; // Kernel Service Object
CIOIF ioif; // IO interface object
CZiVA ziva; // ZiVA chip control object
CADV7175A adv7175a; // ADV7175A control object
CADV7170 adv7170; // ADV7170 ccontrol object
CADV *adv; // pointer to ADV object
CMixHALStream m_Stream; // Mix Hal Stream object
#ifdef POWERCHECK_BY_FLAG
POWERSTATE m_PowerState; // Hardware power state
#endif
CList m_SendDataEventList; CList m_StartVOBUEventList; CList m_EndVOBEventList; CList m_VUnderFlowEventList; CList m_AUnderFlowEventList; CList m_SPUnderFlowEventList; CList m_VOverFlowEventList; CList m_AOverFlowEventList; CList m_SPOverFlowEventList; // by oka
CList m_ButtonActivteEventList; CList m_NextPictureEventList; CList m_UserDataEventList; // end
CList m_VSyncEventList; // 98.05.12 H.Yagi
CVideoPropSet m_VideoProp; // Video Property Set
CAudioPropSet m_AudioProp; // Audio Property Set
CSubpicPropSet m_SubpicProp; // Subpic Property Set
DWORD m_DMABufferLinearAddr; // DMA buffer addr
DWORD m_DMABufferPhysicalAddr; // DMA buffer addr
BOOL fMasterAbortFlag; BOOL fRDYDFlag; BOOL fENDPFlag; BOOL fENDCFlag; DWORD m_NaviCount;
DWORD m_EventIntMask; // by oka
DWORD m_ZivaPbtIntMask; // stock mask for PBT_INT
DWORD m_MaskReference[24]; // interrupt bit reference counter
BOOL m_NeedPowerOnDelay; // power on delay for audio
DWORD m_PowerOnTime; // power on time.
// 1998.8.18 seichan
//DisplayMode��ZiVA��PICV���荞�݂Őݒ肷�邽�߂̃t���O
BOOL m_SetVideoProperty_DisplayMode_Event;
WRAPPERTYPE m_WrapperType; // WrappertType Flag
private: void NotifyEvent( CList *pList , VOID *Ret ); void CheckZiVAInterrupt( DWORD dwIntFlag ); DWORD GetDMABufferLinearAddr( void ) { return m_DMABufferLinearAddr; }; DWORD GetDMABufferPhysicalAddr( void ) { return m_DMABufferPhysicalAddr; };
void ClearMasterAbortEvent( void ); void SetMasterAbortEvent( void ); BOOL IsMasterAbortOccurred( void ); BOOL WaitMasterAbort( void );
void ClearRDYDEvent( void ); void SetRDYDEvent( void ); BOOL IsRDYDOccurred( void ); BOOL WaitRDYD( void );
void ClearENDPEvent( void ); void SetENDPEvent( void ); BOOL IsENDPOccurred( void ); BOOL WaitENDP( void );
void ClearENDCEvent( void ); void SetENDCEvent( void ); BOOL IsENDCOccurred( void ); BOOL WaitENDC( void );
DWORD GetEventIntMask( void ){ return m_EventIntMask; }; // by oka
BOOL SetEventIntMask( DWORD mask ); BOOL UnsetEventIntMask( DWORD mask );
// by oka for Closed Caption
inline void SetUSRData( void ); inline void SendCCData( void ); DWORD m_CCData[CC_DATA_SIZE]; DWORD m_CCDataPoint; DWORD m_CCDataNumber; DWORD m_CCRingBufferStart; DWORD m_CCRingBufferNumber; DWORD m_CCstart; // User Data Area start point
DWORD m_CCend; // User Data Area end point
DWORD m_CCsend_point; //�����O�o�b�t�@�ł̃|�C���^�[
DWORD m_CCpending; //�������Ȃ�������
DWORD m_CCnumber; //�������f�[�^�̐�
// by oka for OnScreenDisplay
DWORD m_OSDStartAddr; DWORD m_OSDEndAddr; // end
//-------------------------------------------------------------------
// Video property private functions( Set series )
//-------------------------------------------------------------------
BOOL SetVideoProperty_TVSystem( PVOID pData ); BOOL SetVideoProperty_AspectRatio( PVOID pData ); BOOL SetVideoProperty_DisplayMode( PVOID pData ); BOOL SetVideoProperty_Resolution( PVOID pData ); BOOL SetVideoProperty_DigitalOut( PVOID pData ); BOOL SetVideoProperty_DigitalPalette( PVOID pData ); BOOL SetVideoProperty_APS( PVOID pData ); BOOL SetVideoProperty_ClosedCaption( PVOID pData ); BOOL SetVideoProperty_OutputSource( PVOID pData ); BOOL SetVideoProperty_CompositeOut( PVOID pData ); BOOL SetVideoProperty_SVideoOut( PVOID pData ); BOOL SetVideoProperty_SkipFieldControl( PVOID pData ); BOOL SetVideoProperty_FilmCamera( PVOID pData ); BOOL SetVideoProperty_SquarePixel( PVOID pData ); // by oka
BOOL SetVideoProperty_Digest( PVOID pData ); BOOL SetVideoProperty_OSDData( PVOID pData ); BOOL SetVideoProperty_OSDSwitch( PVOID pData ); BOOL SetVideoProperty_Magnify( PVOID pData ); BOOL SetVideoProperty_ClosedCaptionData( PVOID pData ); //-------------------------------------------------------------------
// Video property private functions( Get series )
//-------------------------------------------------------------------
BOOL GetVideoProperty_TVSystem( PVOID pData ); BOOL GetVideoProperty_AspectRatio( PVOID pData ); BOOL GetVideoProperty_DisplayMode( PVOID pData ); BOOL GetVideoProperty_Resolution( PVOID pData ); BOOL GetVideoProperty_DigitalOut( PVOID pData ); BOOL GetVideoProperty_DigitalPalette( PVOID pData ); BOOL GetVideoProperty_APS( PVOID pData ); BOOL GetVideoProperty_ClosedCaption( PVOID pData ); BOOL GetVideoProperty_OutputSource( PVOID pData ); BOOL GetVideoProperty_CompositeOut( PVOID pData ); BOOL GetVideoProperty_SVideoOut( PVOID pData ); BOOL GetVideoProperty_SkipFieldControl( PVOID pData ); BOOL GetVideoProperty_FilmCamera( PVOID pData ); BOOL GetVideoProperty_SquarePixel( PVOID pData ); // by oka
BOOL GetVideoProperty_Digest( PVOID pData ); BOOL GetVideoProperty_OSDData( PVOID pData ); BOOL GetVideoProperty_OSDSwitch( PVOID pData ); BOOL GetVideoProperty_Magnify( PVOID pData ); BOOL GetVideoProperty_ClosedCaptionData( PVOID pData );
//-------------------------------------------------------------------
// Audio property private functions( Set series )
//-------------------------------------------------------------------
BOOL SetAudioProperty_Type( PVOID pData ); BOOL SetAudioProperty_Number( PVOID pData ); BOOL SetAudioProperty_Volume( PVOID pData ); BOOL SetAudioProperty_Sampling( PVOID pData ); BOOL SetAudioProperty_Channel( PVOID pData ); BOOL SetAudioProperty_Quant( PVOID pData ); BOOL SetAudioProperty_AudioOut( PVOID pData ); BOOL SetAudioProperty_Cgms( PVOID pData ); BOOL SetAudioProperty_AnalogOut( PVOID pData ); BOOL SetAudioProperty_DigitalOut( PVOID pData ); BOOL SetAudioProperty_AC3DRangeLowBoost( PVOID pData ); BOOL SetAudioProperty_AC3DRangeHighCut( PVOID pData ); BOOL SetAudioProperty_AC3OperateMode( PVOID pData ); BOOL SetAudioProperty_AC3OutputMode( PVOID pData ); //-------------------------------------------------------------------
// Audio property private functions( Get series )
//-------------------------------------------------------------------
BOOL GetAudioProperty_Type( PVOID pData ); BOOL GetAudioProperty_Number( PVOID pData ); BOOL GetAudioProperty_Volume( PVOID pData ); BOOL GetAudioProperty_Sampling( PVOID pData ); BOOL GetAudioProperty_Channel( PVOID pData ); BOOL GetAudioProperty_Quant( PVOID pData ); BOOL GetAudioProperty_AudioOut( PVOID pData ); BOOL GetAudioProperty_Cgms( PVOID pData ); BOOL GetAudioProperty_AnalogOut( PVOID pData ); BOOL GetAudioProperty_DigitalOut( PVOID pData ); BOOL GetAudioProperty_AC3DRangeLowBoost( PVOID pData ); BOOL GetAudioProperty_AC3DRangeHighCut( PVOID pData ); BOOL GetAudioProperty_AC3OperateMode( PVOID pData ); BOOL GetAudioProperty_AC3OutputMode( PVOID pData ); //-------------------------------------------------------------------
// Subpic property private functions( Set series )
//-------------------------------------------------------------------
BOOL SetSubpicProperty_Number( PVOID pData ); BOOL SetSubpicProperty_Palette( PVOID pData ); BOOL SetSubpicProperty_Hilight( PVOID pData ); BOOL SetSubpicProperty_State( PVOID pData ); // by oka
BOOL SetSubpicProperty_HilightButton( PVOID pData ); BOOL SetSubpicProperty_FlushBuff( PVOID pData );
//-------------------------------------------------------------------
// Subpic property private functions( Get series )
//-------------------------------------------------------------------
BOOL GetSubpicProperty_Number( PVOID pData ); BOOL GetSubpicProperty_Palette( PVOID pData ); BOOL GetSubpicProperty_Hilight( PVOID pData ); BOOL GetSubpicProperty_State( PVOID pData ); // by oka
BOOL GetSubpicProperty_HilightButton( PVOID pData ); BOOL GetSubpicProperty_FlushBuff( PVOID pData );
public: CMPEGBoardHAL(); ~CMPEGBoardHAL();
//---------------------------------------------------------------------------
// HAL interface for Wrapper
//---------------------------------------------------------------------------
HALRESULT Init( WRAPPERTYPE wraptype ); HALRESULT SetKernelService( IKernelService *pKernelService ); HALRESULT SetSinkWrapper( IMPEGBoardEvent *pMPEGBoardEvent ); HALRESULT UnsetSinkWrapper( IMPEGBoardEvent *pMPEGBoardEvent ); HALRESULT HALHwInterrupt( void ); HALRESULT QueryDMABufferSize( DWORD *Size, DWORD *BFlag ); HALRESULT SetDMABuffer( DWORD LinearAddr, DWORD physicalAddr ); // add by H.Yagi 1999.04.21
HALRESULT GetHALType( HALTYPE *HALType ){ *HALType = HalType_ZIVA; return(HAL_SUCCESS); };
//---------------------------------------------------------------------------
// HAL interface for Class Library
//---------------------------------------------------------------------------
HALRESULT GetMixHALStream( IHALStreamControl **ppHALStreamControl ); HALRESULT GetVideoHALStream( IHALStreamControl **ppHALStreamControl ); HALRESULT GetAudioHALStream( IHALStreamControl **ppHALStreamControl ); HALRESULT GetSubpicHALStream( IHALStreamControl **ppHALStreamControl ); HALRESULT SetVideoProperty( VIDEOPROPTYPE PropertyType, VOID *pData ); HALRESULT GetVideoProperty( VIDEOPROPTYPE PropertyType, VOID *pData ); HALRESULT SetAudioProperty( AUDIOPROPTYPE PropertyType, VOID *pData ); HALRESULT GetAudioProperty( AUDIOPROPTYPE PropertyType, VOID *pData ); HALRESULT SetSubpicProperty( SUBPICPROPTYPE PropertyType, VOID *pData ); HALRESULT GetSubpicProperty( SUBPICPROPTYPE PropertyType, VOID *pData ); HALRESULT SetSinkClassLib( IMPEGBoardEvent *pMPEGBoardEvent ); HALRESULT UnsetSinkClassLib( IMPEGBoardEvent *pMPEGBoardEvent ); HALRESULT SetPowerState( POWERSTATE Switch ); HALRESULT GetPowerState( POWERSTATE *pSwitch ); HALRESULT SetSTC( DWORD STCValue ); HALRESULT GetSTC( DWORD *pSTCValue ); HALRESULT GetCapability( CAPSTYPE PropType, DWORD *pPropType );
// by oka
CUserData m_UserData;
friend CMixHALStream; };
//---------------------------------------------------------------------------
//
//---------------------------------------------------------------------------
#endif // _ZIVA_BOARD_H_
//***************************************************************************
// End of ZiVABoard class header
//***************************************************************************
|