mirror of https://github.com/tongzx/nt5src
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.
761 lines
25 KiB
761 lines
25 KiB
//***************************************************************************
|
|
//
|
|
// 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
|
|
//***************************************************************************
|