#pragma once //==========================================================================; // // CDecoderVideoPort - Video Port interface definitions // // $Date: 14 Oct 1998 15:11:14 $ // $Revision: 1.1 $ // $Author: Tashjian $ // // $Copyright: (c) 1997 - 1998 ATI Technologies Inc. All Rights Reserved. $ // //==========================================================================; #include "i2script.h" #include "aticonfg.h" #define DD_OK 0 class CWDMVideoPortStream; class CDecoderVideoPort { public: CDecoderVideoPort(PDEVICE_OBJECT pDeviceObject); // Attributes private: PDEVICE_OBJECT m_pDeviceObject; CATIHwConfiguration * m_pCATIConfig; ULONG m_ring3VideoPortHandle; ULONG_PTR m_ring3DirectDrawHandle; HANDLE m_ring0VideoPortHandle; HANDLE m_ring0DirectDrawHandle; BOOL GetRing0VideoPortHandle(); BOOL GetRing0DirectDrawHandle(); // Implementation public: void Open(); void Close(); BOOL RegisterForDirectDrawEvents( CWDMVideoPortStream* pStream); BOOL UnregisterForDirectDrawEvents( CWDMVideoPortStream* pStream); BOOL ReleaseRing0VideoPortHandle(); BOOL ReleaseRing0DirectDrawHandle(); BOOL ConfigVideoPortHandle(ULONG info); BOOL ConfigDirectDrawHandle(ULONG_PTR info); HANDLE GetVideoPortHandle() { return m_ring0VideoPortHandle; } HANDLE GetDirectDrawHandle() { return m_ring0DirectDrawHandle; } void CloseDirectDraw() { m_ring0DirectDrawHandle = 0; m_ring3DirectDrawHandle = 0; } void CloseVideoPort() { m_ring0VideoPortHandle = 0; m_ring3VideoPortHandle = -1; } };