windows-nt/Source/XPSP1/NT/drivers/wdm/dvd/mini/tecra/clibif.h

117 lines
2.8 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*
<EFBFBD>N<EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>u<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̃C<EFBFBD><EFBFBD><EFBFBD>^<EFBFBD>t<EFBFBD>F<EFBFBD>[<EFBFBD>X
<EFBFBD>iNP2)<EFBFBD>@Sachiko Yasukawa
*/
// Date | Author | Description
// -----------+--------------+--------------------------------------------
// 1998.03.27 | Hideki Yagi | Change the specification about
// | | Get***Property().
//
typedef enum {
PowerOff,
Stop,
Pause,
Play,
Slow,
Scan
} LIBSTATE;
class IMPEGBuffer : public IMBoardListItem
{
public:
virtual DWORD GetPageNum()=0;
virtual DWORD GetPageSize(DWORD PageNum)=0;
virtual BOOL GetPagePointer(DWORD PageNum, DWORD *LinearAdd, DWORD *PhyAdd)=0;
virtual DWORD GetBufferFlag()=0;
};
class IMPEGBoardState
{
public:
virtual BOOL Init()=0;
};
//class IMPEGBoardLibEvent
//{
//public:
// virtual void Advice(PVOID)=0;
// virtual HALEVENTTYPE GetEventType()=0;
//};
class ITransfer
{
public:
virtual BOOL Init()=0;
virtual BOOL SetSink(IMPEGBoardEvent *pEvent)=0;
virtual BOOL UnSetSink(IMPEGBoardEvent *pEvent)=0;
virtual BOOL SetDMABuffer(DWORD size, BYTE* LinerAdd, BYTE *PhysAdd)=0;
};
class IStateObject;
class IBaseStream
{
public:
virtual BOOL Init()=0;
virtual BOOL Play()=0;
virtual BOOL Stop()=0;
virtual BOOL Pause()=0;
virtual BOOL Slow(DWORD)=0;
virtual BOOL Scan(DWORD)=0;
virtual BOOL SingleStep()=0;
virtual LIBSTATE GetState()=0;
virtual BOOL SendData(IMPEGBuffer *)=0;
virtual BOOL SetStateObject(IMPEGBoardState *pState)=0;
virtual BOOL SetTransferObject(ITransfer *pTransfer)=0;
virtual BOOL SetTransferMode(HALSTREAMMODE)=0;
virtual BOOL SetDataDirection( DirectionType type ) = 0;
virtual BOOL GetDataDirection( DirectionType *ptype ) = 0;
};
class IVideoProperty
{
public:
virtual BOOL GetVideoProperty(VIDEOPROPTYPE PropertyType, PVOID pProperty)=0;
virtual BOOL SetVideoProperty(VIDEOPROPTYPE PropetyType, PVOID pProperty)=0;
};
class IAudioProperty
{
public:
virtual BOOL GetAudioProperty(AUDIOPROPTYPE PropertyType, PVOID pProperty)=0;
virtual BOOL SetAudioProperty(AUDIOPROPTYPE PropertyType, PVOID pProperty)=0;
};
class ISubpicProperty
{
public:
virtual BOOL GetSubpicProperty(SUBPICPROPTYPE PropertyType, PVOID pProperty)=0;
virtual BOOL SetSubpicProperty(SUBPICPROPTYPE PropertyType, PVOID pProperty)=0;
};
class ICopyProtectProperty
{
public:
virtual BOOL CppInit() =0;
virtual BOOL SetChlgKey(UCHAR *)=0;
virtual BOOL GetChlgKey(UCHAR *)=0;
virtual BOOL SetDVDKey1(UCHAR *)=0;
virtual BOOL GetDVDKey2(UCHAR *)=0;
virtual BOOL SetTitleKey(UCHAR *)=0;
virtual BOOL SetDiscKey(UCHAR *)=0;
};
class IMPEGBoard
{
public:
virtual BOOL Init()=NULL;
virtual BOOL AddStreamObjectInterface(IBaseStream *)=NULL;
virtual BOOL ReleaseStreamObjectInterface(IBaseStream *)=NULL;
virtual BOOL PowerOn()=NULL;
virtual BOOL PowerOff()=NULL;
virtual BOOL SetSTC(DWORD)=NULL;
virtual BOOL GetSTC(DWORD *)=NULL;
virtual BOOL SetHALObjectInterface(IClassLibHAL *)=NULL;
};