windows-nt/Source/XPSP1/NT/drivers/ddk/wdmaudio/msvad/ac3/minwave.h
2020-09-26 16:20:57 +08:00

95 lines
2.3 KiB
C++

/*++
Copyright (c) 1997-2000 Microsoft Corporation All Rights Reserved
Module Name:
minwave.h
Abstract:
Definition of wavecyclic miniport class.
--*/
#ifndef _MSVAD_MINWAVE_H_
#define _MSVAD_MINWAVE_H_
#include "basewave.h"
//=============================================================================
// Referenced Forward
//=============================================================================
class CMiniportWaveCyclicStream;
typedef CMiniportWaveCyclicStream *PCMiniportWaveCyclicStream;
//=============================================================================
// Classes
//=============================================================================
///////////////////////////////////////////////////////////////////////////////
// CMiniportWaveCyclic
//
class CMiniportWaveCyclic :
public CMiniportWaveCyclicMSVAD,
public IMiniportWaveCyclic,
public CUnknown
{
private:
BOOL m_fCaptureAllocated;
BOOL m_fPcmRenderAllocated;
BOOL m_fAc3RenderAllocated;
public:
DECLARE_STD_UNKNOWN();
DEFINE_STD_CONSTRUCTOR(CMiniportWaveCyclic);
~CMiniportWaveCyclic();
IMP_IMiniportWaveCyclic;
protected:
NTSTATUS ValidateFormat
(
IN PKSDATAFORMAT pDataFormat
);
// Friends
friend class CMiniportWaveCyclicStream;
friend class CMiniportTopologySimple;
};
typedef CMiniportWaveCyclic *PCMiniportWaveCyclic;
///////////////////////////////////////////////////////////////////////////////
// CMiniportWaveCyclicStream
//
class CMiniportWaveCyclicStream :
public CMiniportWaveCyclicStreamMSVAD,
public CUnknown
{
protected:
PCMiniportWaveCyclic m_pMiniportLocal;
BOOL m_fFormatAc3;
public:
DECLARE_STD_UNKNOWN();
DEFINE_STD_CONSTRUCTOR(CMiniportWaveCyclicStream);
~CMiniportWaveCyclicStream();
NTSTATUS Init
(
IN PCMiniportWaveCyclic Miniport,
IN ULONG Channel,
IN BOOLEAN Capture,
IN PKSDATAFORMAT DataFormat
);
// Friends
friend class CMiniportWaveCyclic;
};
typedef CMiniportWaveCyclicStream *PCMiniportWaveCyclicStream;
#endif