windows-nt/Source/XPSP1/NT/drivers/wdm/dvd/mini/tecra/halif.h
2020-09-26 16:20:57 +08:00

762 lines
25 KiB
C++

//***************************************************************************
//
// FileName:
// $Workfile: HALIF.H $
//
// Author:
// TOSHIBA [PCS](PSY) Seiichi Nakamura
// Copyright (c) 1997 TOSHIBA CORPORATION
//
// Description:
//
//***************************************************************************
// $Header: /DVD Drivers/ZiVA.WDM/HALIF.H 30 99/04/21 2:46p Yagi $
// $Modtime: 99/04/21 2:23p $
// $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_SquarePixel.
// 1998.05.01 | Hideki Yagi | Add SubpicProperty_FlushBuff.
// 1998.05.12 | Hideki Yagi | Add WrapperEvent_VSync.
// 1998.09.25 | Hideki Yagi | Add WrapperType.
// | |
//
#ifndef _HALIF_H_
#define _HALIF_H_
//***************************************************************************
// common definition
//***************************************************************************
//---------------------------------------------------------------------------
// HAL Interface return value
//---------------------------------------------------------------------------
typedef enum
{
HAL_SUCCESS = 0,
HAL_ERROR,
HAL_INVALID_PARAM,
HAL_NOT_IMPLEMENT,
HAL_IRQ_MINE,
HAL_IRQ_OTHER,
HAL_POWEROFF
} HALRESULT;
//---------------------------------------------------------------------------
// HAL Type add by H.Yagi 1999.04.21
//---------------------------------------------------------------------------
typedef enum
{
HalType_ZIVA = 0,
HalType_ZIVAPC
} HALTYPE;
//---------------------------------------------------------------------------
// Wrapper Type
//---------------------------------------------------------------------------
typedef enum
{
WrapperType_VxD = 0,
WrapperType_WDM
} WRAPPERTYPE;
//---------------------------------------------------------------------------
// Event Type
//---------------------------------------------------------------------------
typedef enum
{
ClassLibEvent_SendData = 0,
WrapperEvent_StartVOBU,
WrapperEvent_EndVOB,
WrapperEvent_VUnderFlow,
WrapperEvent_AUnderFlow,
WrapperEvent_SPUnderFlow,
WrapperEvent_VOverFlow,
WrapperEvent_AOverFlow,
// by oka
WrapperEvent_SPOverFlow,
WrapperEvent_TimerEvent,
WrapperEvent_ButtonActivate,
WrapperEvent_NextPicture,
WrapperEvent_UserData,
WrapperEvent_ERROREvent,
// by H.Yagi
WrapperEvent_VSync
} HALEVENTTYPE;
//---------------------------------------------------------------------------
// Video Property
//---------------------------------------------------------------------------
typedef enum
{
VideoProperty_TVSystem = 0,
VideoProperty_AspectRatio,
VideoProperty_DisplayMode,
VideoProperty_Resolution,
VideoProperty_DigitalOut,
VideoProperty_DigitalPalette,
VideoProperty_APS,
VideoProperty_ClosedCaption,
VideoProperty_OutputSource,
VideoProperty_CompositeOut,
VideoProperty_SVideoOut,
VideoProperty_SkipFieldControl,
VideoProperty_FilmCamera, // 97.12.04 H.Yagi
VideoProperty_SquarePixel, // 98.03.27 H.Yagi
// by oka
VideoProperty_Magnify,
VideoProperty_Digest,
VideoProperty_OSDSwitch,
VideoProperty_OSDData,
VideoProperty_ImageCapture,
VideoProperty_ClosedCaptionData
} VIDEOPROPTYPE;
//---------------------------------------------------------------------------
// Audio Property
//---------------------------------------------------------------------------
typedef enum
{
AudioProperty_Type = 0,
AudioProperty_Number,
AudioProperty_Volume,
AudioProperty_Sampling,
AudioProperty_Channel,
AudioProperty_Quant,
AudioProperty_AudioOut,
AudioProperty_Cgms,
AudioProperty_AnalogOut,
AudioProperty_DigitalOut,
AudioProperty_AC3DRangeLowBoost,
AudioProperty_AC3DRangeHighCut,
AudioProperty_AC3OperateMode,
AudioProperty_AC3OutputMode
} AUDIOPROPTYPE;
//---------------------------------------------------------------------------
// SubPic Property
//---------------------------------------------------------------------------
typedef enum
{
SubpicProperty_Number = 0,
SubpicProperty_Palette,
SubpicProperty_Hilight,
// by oka 97.10.1
SubpicProperty_State,
SubpicProperty_HilightButton,
SubpicProperty_FlushBuff // 98.05.01 H.Yagi
} SUBPICPROPTYPE;
//--------------------------------------------------------------------------
// Capability type 1998.03.27 H.Yagi
//--------------------------------------------------------------------------
typedef enum
{
VideoProperty = 0,
AudioProperty,
SubpicProperty,
DigitalVideoOut
} CAPSTYPE;
//--------------------------------------------------------------------------
// Data Direction type 1998.03.27 H.Yagi
//--------------------------------------------------------------------------
typedef enum
{
DataType_NormalAll = 0,
DataType_OpositeAll,
DataType_IpicOnly
} DirectionType;
//--------------------------------------------------------------------------
// VideoProperty Bit Assign 1998.03.27 H.Yagi
//--------------------------------------------------------------------------
#define VideoProperty_TVSystem_BIT 0x00000001
#define VideoProperty_AspectRatio_BIT 0x00000002
#define VideoProperty_DisplayMode_BIT 0x00000004
#define VideoProperty_Resolution_BIT 0x00000008
#define VideoProperty_DigitalOut_BIT 0x00000010
#define VideoProperty_DigitalPalette_BIT 0x00000020
#define VideoProperty_APS_BIT 0x00000040
#define VideoProperty_ClosedCaption_BIT 0x00000080
#define VideoProperty_OutputSource_BIT 0x00000100
#define VideoProperty_CompositeOut_BIT 0x00000200
#define VideoProperty_SVideoOut_BIT 0x00000400
#define VideoProperty_SkipFieldControl_BIT 0x00000800
#define VideoProperty_FilmCamera_BIT 0x00001000
#define VideoProperty_SquarePixel_BIT 0x00002000
//--------------------------------------------------------------------------
// AudioProperty Bit Assign 1998.03.27 H.Yagi
//--------------------------------------------------------------------------
#define AudioProperty_Type_BIT 0x00000001
#define AudioProperty_Number_BIT 0x00000002
#define AudioProperty_Volume_BIT 0x00000004
#define AudioProperty_Sampling_BIT 0x00000008
#define AudioProperty_Channel_BIT 0x00000010
#define AudioProperty_Quant_BIT 0x00000020
#define AudioProperty_AudioOut_BIT 0x00000040
#define AudioProperty_Cgms_BIT 0x00000080
#define AudioProperty_AnalogOut_BIT 0x00000100
#define AudioProperty_DigitalOut_BIT 0x00000200
#define AudioProperty_AC3DRangeLowBoost_BIT 0x00000400
#define AudioProperty_AC3DRangeHighCut_BIT 0x00000800
#define AudioProperty_AC3OperateMode_BIT 0x00001000
#define AudioProperty_AC3OutputMode_BIT 0x00002000
//--------------------------------------------------------------------------
// SubpicProperty Bit Assign 1998.03.27 H.Yagi
//--------------------------------------------------------------------------
#define SubpicProperty_Number_BIT 0x00000001
#define SubpicProperty_Palette_BIT 0x00000002
#define SubpicProperty_Hilight_BIT 0x00000004
#define SubpicProperty_State_BIT 0x00000008
//--------------------------------------------------------------------------
// Digital Video Out Assign 1998.03.27 H.Yagi
//--------------------------------------------------------------------------
#define DigitalVideoOut_ZV_BIT 0x00000001
#define DigitalVideoOut_LPB08_BIT 0x00000002
#define DigitalVideoOut_LPB16_BIT 0x00000004
#define DigitalVideoOut_VMI_BIT 0x00000008
#define DigitalVideoOut_AMCbt_BIT 0x00000010
#define DigitalVideoOut_AMC656_BIT 0x00000020
#define DigitalVideoOut_DAV2_BIT 0x00000040
#define DigitalVideoOut_CIRRUS_BIT 0x00000080
//---------------------------------------------------------------------------
// Power State
//---------------------------------------------------------------------------
typedef enum
{
POWERSTATE_ON = 0,
POWERSTATE_OFF
} POWERSTATE;
//---------------------------------------------------------------------------
// Stream mode
//---------------------------------------------------------------------------
typedef enum
{
HALSTREAM_DVD_MODE = 0,
HALSTREAM_MPEG_PS_MODE,
HALSTREAM_MPEG_PES_MODE,
HALSTREAM_ELEMENT_MODE,
HALSTREAM_VIDEO_CD_MODE
} HALSTREAMMODE;
//---------------------------------------------------------------------------
// Scan parameter type
//---------------------------------------------------------------------------
typedef enum
{
ScanOnlyI = 0,
ScanIandP
} ScanMode;
//---------------------------------------------------------------------------
// VideoProperty_TVSystem
//---------------------------------------------------------------------------
typedef enum
{
TV_NTSC = 0,
TV_PALB,
TV_PALD,
TV_PALG,
TV_PALH,
TV_PALI,
TV_PALM,
TV_PALN
} VideoProperty_TVSystem_Value;
//---------------------------------------------------------------------------
// VideoProperty_AspectRatio
//---------------------------------------------------------------------------
typedef enum
{
Aspect_04_03 = 0,
Aspect_16_09
} VideoProperty_AspectRatio_Value;
//---------------------------------------------------------------------------
// VideoProperty_DisplayMode
//---------------------------------------------------------------------------
typedef enum
{
Display_Original = 0,
Display_PanScan,
Display_LetterBox
} VideoProperty_DisplayMode_Value;
//---------------------------------------------------------------------------
// VideoProperty_Resolution
//---------------------------------------------------------------------------
typedef struct tag_VideoSizeStruc
{
DWORD ResHorizontal;
DWORD ResVertical;
} VideoSizeStruc;
//---------------------------------------------------------------------------
// VideoProperty_DigitalOut
//---------------------------------------------------------------------------
typedef enum
{
DigitalOut_Off = 0,
DigitalOut_ZV,
DigitalOut_LPB08,
DigitalOut_LPB16,
DigitalOut_VMI,
DigitalOut_AMCbt,
DigitalOut_AMC656,
DigitalOut_DAV2,
DigitalOut_CIRRUS
} VideoProperty_DigitalOut_Value;
//---------------------------------------------------------------------------
// VideoProperty_DigitalPalette
//---------------------------------------------------------------------------
typedef enum
{
Video_Palette_Y = 0,
Video_Palette_Cb,
Video_Palette_Cr
} VIDEOPALETTETYPE;
typedef struct tag_Digial_Palette
{
VIDEOPALETTETYPE Select;
UCHAR *pPalette;
} Digital_Palette;
//---------------------------------------------------------------------------
// VideoProperty_APS( Analog Protection System )
//---------------------------------------------------------------------------
typedef enum
{
CgmsType_Off = 0,
CgmsType_1,
CgmsType_On
}CGMSTYPE;
typedef enum
{
ApsType_Off = 0,
ApsType_1,
ApsType_2,
ApsType_3
} APSTYPE;
typedef struct tag_VideoAPSStruc
{
CGMSTYPE CgmsType;
APSTYPE APSType;
} VideoAPSStruc;
//---------------------------------------------------------------------------
// VideoProperty_ClosedCaption
//---------------------------------------------------------------------------
typedef enum
{
ClosedCaption_On = 0,
ClosedCaption_Off
} VideoProperty_ClosedCaption_Value;
//---------------------------------------------------------------------------
// VideoProperty_OutputSource
//---------------------------------------------------------------------------
typedef enum
{
OutputSource_VGA = 0,
OutputSource_DVD
} VideoProperty_OutputSource_Value;
//---------------------------------------------------------------------------
// VideoProperty_CompositeOut
//---------------------------------------------------------------------------
typedef enum
{
CompositeOut_On = 0,
CompositeOut_Off
} VideoProperty_CompositeOut_Value;
//---------------------------------------------------------------------------
// VideoProperty_SVideoOut
//---------------------------------------------------------------------------
typedef enum
{
SVideoOut_On = 0,
SVideoOut_Off
} VideoProperty_SVideoOut_Value;
//---------------------------------------------------------------------------
// VideoProperty_SkipFieldControl
//---------------------------------------------------------------------------
typedef enum
{
SkipFieldControl_On = 0,
SkipFieldControl_Off
} VideoProperty_SkipFieldControl_Value;
//---------------------------------------------------------------------------
// VideoProperty_FilmCamera // 97.12.04 H.Yagi
//---------------------------------------------------------------------------
typedef enum
{
Source_Camera = 0,
Source_Film
} VideoProperty_FilmCamera_Value;
//---------------------------------------------------------------------------
// VideoProperty_SquarePixel // 98.03.27 H.Yagi
//---------------------------------------------------------------------------
typedef enum
{
SquarePixel_On = 0,
SquarePixel_Off
} VideoProperty_SquarePixel_Value;
//---------------------------------------------------------------------------
// VideoProperty_Digest
// by oka
//---------------------------------------------------------------------------
typedef struct tag_VideoDigestStruc
{
DWORD dmX;
DWORD dmY;
DWORD dmSkip;
DWORD dmDecimation;
DWORD dmThreshold;
DWORD dmStart;
} VideoDigestStruc;
//---------------------------------------------------------------------------
// VideoProperty_OSD_Data
// by oka
//---------------------------------------------------------------------------
typedef enum {
OSD_TYPE_BITMAP = 0,
OSD_TYPE_ZIVA
} OSD_TYPE;
typedef struct tag_OsdDataStruc
{
OSD_TYPE OsdType;
tag_OsdDataStruc * pNextData;
VOID *pData;
DWORD dwOsdSize;
} OsdDataStruc;
//---------------------------------------------------------------------------
// VideoProperty_OSD_Swtich
// by oka
//---------------------------------------------------------------------------
typedef enum
{
Video_OSD_On = 0,
Video_OSD_Off
} VideoProperty_OSD_Switch_Value;
//---------------------------------------------------------------------------
// VideoProperty_Magnify
// by oka
//---------------------------------------------------------------------------
typedef struct tag_VideoMagnifyStruc
{
DWORD dwX;
DWORD dwY;
DWORD dwFactor;
} VideoMagnifyStruc, * PVideoMagnifyStruc;
//---------------------------------------------------------------------------
// AudioProperty_Type
//---------------------------------------------------------------------------
typedef enum
{
AudioType_AC3 = 0,
AudioType_PCM,
AudioType_MPEG1,
AudioType_MPEG2
} AudioProperty_Type_Value;
//---------------------------------------------------------------------------
// AudioProperty_Number
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// AudioProperty_Volume
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// AudioProperty_Sampling
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// AudioProperty_Channel
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// AudioProperty_Quant
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// AudioProperty_AudioOut
//---------------------------------------------------------------------------
typedef enum
{
AudioOut_Encoded = 0,
AudioOut_Decoded
} AudioProperty_AudioOut_Value;
//---------------------------------------------------------------------------
// AudioProperty_Cgms
//---------------------------------------------------------------------------
typedef enum
{
AudioCgms_Off = 0,
AudioCgms_1,
AudioCgms_On
} AudioProperty_Cgms_Value;
//---------------------------------------------------------------------------
// AudioProperty_AnalogOut
//---------------------------------------------------------------------------
typedef enum
{
AudioAnalogOut_On = 0,
AudioAnalogOut_Off
} AudioProperty_AnalogOut_Value;
//---------------------------------------------------------------------------
// AudioProperty_DigitalOut
//---------------------------------------------------------------------------
typedef enum
{
AudioDigitalOut_On = 0,
AudioDigitalOut_Off
} AudioProperty_DigitalOut_Value;
//---------------------------------------------------------------------------
// AudioProperty_AC3OperateMode
//---------------------------------------------------------------------------
typedef enum
{
AC3OperateLine = 0,
AC3OperateRF,
AC3OperateCustom0,
AC3OperateCustom1
} AudioProperty_AC3OperateMode_Value;
//---------------------------------------------------------------------------
// AudioProperty_AC3OutputMode
//---------------------------------------------------------------------------
typedef enum
{
AC3Output_Default = 0,
AC3Output_Karaoke,
AC3Output_Surround,
} AudioProperty_AC3OutputMode_Value;
//---------------------------------------------------------------------------
// SubpicProperty_Number
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// SubpicProperty_Palette
//---------------------------------------------------------------------------
typedef enum
{
Palette_Y = 0,
Palette_Cr,
Palette_Cb
} SubpicProperty_Palette_Value;
//---------------------------------------------------------------------------
// SubpicProperty_Hilight
//---------------------------------------------------------------------------
typedef enum
{
Hlight_On = 0,
Hlight_Off
} HLIGHT_SWITCH;
typedef struct tag_SubpHlightStruc
{
HLIGHT_SWITCH Hlight_Switch;
DWORD Hlight_StartX;
DWORD Hlight_EndX;
DWORD Hlight_StartY;
DWORD Hlight_EndY;
DWORD Hlight_Color;
DWORD Hlight_Contrast;
} SubpHlightStruc;
//---------------------------------------------------------------------------
// SubpicProperty_HilightButton
// by oka 97.10.1
//---------------------------------------------------------------------------
typedef enum
{
Button_Select = 1,
Button_Unhighlight,
Button_Activate,
Button_Activate_Selected_Button,
Button_Select_Without_Auto_Activate
} HLIGHT_ACTION;
typedef struct tag_SubpHlightButtonStruc
{
DWORD Hlight_Button;
HLIGHT_ACTION Hlight_Action;
} SubpHlightButtonStruc;
// Hlight_Button 1 -- 36,64(Up),65(Down),66(Left),67(Right)
//---------------------------------------------------------------------------
// SubpicProperty_State
//---------------------------------------------------------------------------
typedef enum
{
Subpic_On = 0,
Subpic_Off
} SubpicProperty_State_Value;
//***************************************************************************
// HAL Layer Interface
//***************************************************************************
class IMPEGBoardEvent;
class IClassLibHAL;
class IWrapperHAL;
class IHALStreamControl;
class IKernelService;
//---------------------------------------------------------------------------
// MPEGBoard Event Interface
//---------------------------------------------------------------------------
class IHALBuffer
{
public:
virtual DWORD GetSize( void ) PURE;
virtual DWORD Flags( void ) PURE;
virtual BYTE *GetBuffPointer( void ) PURE;
virtual BYTE *GetLinBuffPointer( void ) PURE;
};
//---------------------------------------------------------------------------
// MPEGBoard Event Interface
//---------------------------------------------------------------------------
class IMPEGBoardEvent: public IMBoardListItem {
public:
virtual void Advice( void *pData ) PURE;
virtual HALEVENTTYPE GetEventType( void ) PURE;
};
//---------------------------------------------------------------------------
// HAL interface for Class Library
//---------------------------------------------------------------------------
class IClassLibHAL{
public:
virtual HALRESULT GetMixHALStream( IHALStreamControl **ppHALStreamControl ) PURE;
virtual HALRESULT GetVideoHALStream( IHALStreamControl **ppHALStreamControl ) PURE;
virtual HALRESULT GetAudioHALStream( IHALStreamControl **ppHALStreamControl ) PURE;
virtual HALRESULT GetSubpicHALStream( IHALStreamControl **ppHALStreamControl ) PURE;
virtual HALRESULT SetVideoProperty( VIDEOPROPTYPE PropertyType, VOID *pData ) PURE;
virtual HALRESULT GetVideoProperty( VIDEOPROPTYPE PropertyType, VOID *pData ) PURE;
virtual HALRESULT SetAudioProperty( AUDIOPROPTYPE PropertyType, VOID *pData ) PURE;
virtual HALRESULT GetAudioProperty( AUDIOPROPTYPE PropertyType, VOID *pData ) PURE;
virtual HALRESULT SetSubpicProperty( SUBPICPROPTYPE PropertyType, VOID *pData ) PURE;
virtual HALRESULT GetSubpicProperty( SUBPICPROPTYPE PropertyType, VOID *pData ) PURE;
virtual HALRESULT SetSinkClassLib( IMPEGBoardEvent *pMPEGBoardEvent ) PURE;
virtual HALRESULT UnsetSinkClassLib( IMPEGBoardEvent *pMPEGBoardEvent ) PURE;
virtual HALRESULT SetPowerState( POWERSTATE Switch ) PURE;
virtual HALRESULT GetPowerState( POWERSTATE *pSwitch ) PURE;
virtual HALRESULT SetSTC( DWORD STCValue ) PURE;
virtual HALRESULT GetSTC( DWORD *pSTCValue ) PURE;
virtual HALRESULT GetCapability( CAPSTYPE PropType, DWORD *pPropType ) PURE;
};
//---------------------------------------------------------------------------
// HAL interface for Wrapper
//---------------------------------------------------------------------------
class IWrapperHAL{
public:
virtual HALRESULT Init( WRAPPERTYPE wraptype ) PURE;
virtual HALRESULT SetKernelService( IKernelService *pKernelService ) PURE;
virtual HALRESULT SetSinkWrapper( IMPEGBoardEvent *pMPEGBoardEvent ) PURE;
virtual HALRESULT UnsetSinkWrapper( IMPEGBoardEvent *pMPEGBoardEvent ) PURE;
virtual HALRESULT HALHwInterrupt( void ) PURE;
virtual HALRESULT QueryDMABufferSize( DWORD *Size, DWORD *BFlag ) PURE;
virtual HALRESULT SetDMABuffer( DWORD LinearAddr, DWORD physicalAddr ) PURE;
};
//---------------------------------------------------------------------------
// HAL Stream Control Interface
//---------------------------------------------------------------------------
class IHALStreamControl{
public:
virtual HALRESULT SendData( IHALBuffer *pData ) PURE;
virtual HALRESULT SetTransferMode( HALSTREAMMODE StreamMode ) PURE;
virtual HALRESULT GetAvailableQueue( DWORD *pQueueNum ) PURE;
virtual HALRESULT SetPlayNormal( void ) PURE;
virtual HALRESULT SetPlaySlow( DWORD SlowFlag ) PURE;
virtual HALRESULT SetPlayPause( void ) PURE;
virtual HALRESULT SetPlayScan( DWORD ScanFlag ) PURE;
virtual HALRESULT SetPlaySingleStep( void ) PURE;
virtual HALRESULT SetPlayStop( void ) PURE;
virtual HALRESULT CPPInit( void ) PURE;
virtual HALRESULT GetDriveChallenge( UCHAR *pDriveChallenge ) PURE;
virtual HALRESULT SetDriveResponse( UCHAR *pDriveResponse ) PURE;
virtual HALRESULT SetDecoderChallenge( UCHAR *pDecoderChallenge ) PURE;
virtual HALRESULT GetDecoderResponse( UCHAR *pDecoderResponse ) PURE;
virtual HALRESULT SetDiskKey( UCHAR *pDiskKey ) PURE;
virtual HALRESULT SetTitleKey( UCHAR *pTitleKey ) PURE;
virtual HALRESULT SetDataDirection( DirectionType DataType) PURE;
virtual HALRESULT GetDataDirection( DirectionType *pDataType) PURE;
};
//---------------------------------------------------------------------------
// Kernel Service Interface for HAL
//---------------------------------------------------------------------------
class IKernelService{
public:
virtual BOOL SetPCIConfigData( DWORD address, DWORD data ) PURE;
virtual BOOL SetPCIConfigData( DWORD address, WORD data ) PURE;
virtual BOOL SetPCIConfigData( DWORD address, BYTE data ) PURE;
virtual BOOL GetPCIConfigData( DWORD address, DWORD *data ) PURE;
virtual BOOL GetPCIConfigData( DWORD address, WORD *data ) PURE;
virtual BOOL GetPCIConfigData( DWORD address, BYTE *data ) PURE;
virtual BOOL SetPortData( DWORD address, DWORD data ) PURE;
virtual BOOL SetPortData( DWORD address, WORD data ) PURE;
virtual BOOL SetPortData( DWORD address, BYTE data ) PURE;
virtual BOOL GetPortData( DWORD address, DWORD *data ) PURE;
virtual BOOL GetPortData( DWORD address, WORD *data ) PURE;
virtual BOOL GetPortData( DWORD address, BYTE *data ) PURE;
virtual BOOL GetTickCount( DWORD *pTickCount ) PURE;
virtual BOOL Sleep( DWORD SleepCount ) PURE;
virtual void EnableHwInt( void ) PURE;
virtual void DisableHwInt( void ) PURE;
};
#endif // _HALIF_H_
//***************************************************************************
// End of COMMON INTERFACE Header
//***************************************************************************