-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathrtsdwavestream.h
59 lines (46 loc) · 1.93 KB
/
rtsdwavestream.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*
Module Name:
rtsdwave.h
Abstract:
Definition of wavecyclic miniport class.
*/
#ifndef __RTSDWAVESTREAM_H_
#define __RTSDWAVESTREAM_H_
#include "rtsdwave.h"
///////////////////////////////////////////////////////////////////////////////
// CMiniportWaveCyclicStream
//
class CMiniportWaveCyclicStream : public IMiniportWaveCyclicStream, public IDmaChannel, public CUnknown {
protected:
PCMiniportWaveCyclic m_pMiniport; // Miniport that created us
BOOLEAN m_fCapture; // Capture or render.
BOOLEAN m_fFormat16Bit; // 16- or 8-bit samples.
BOOLEAN m_fFormatStereo; // Two or one channel.
KSSTATE m_ksState; // Stop, pause, run.
ULONG m_ulPin; // Pin Id.
PRKDPC m_pDpc; // Deferred procedure call object
PKTIMER m_pTimer; // Timer object
BOOLEAN m_fDmaActive; // Dma currently active?
ULONG m_ulDmaPosition; // Position in Dma
PVOID m_pvDmaBuffer; // Dma buffer pointer
ULONG m_ulDmaBufferSize; // Size of dma buffer
ULONG m_ulDmaMovementRate;// Rate of transfer specific to system
ULONGLONG m_ullDmaTimeStamp; // Dma time elasped
public:
DECLARE_STD_UNKNOWN();
DEFINE_STD_CONSTRUCTOR(CMiniportWaveCyclicStream);
~CMiniportWaveCyclicStream();
IMP_IMiniportWaveCyclicStream;
IMP_IDmaChannel;
NTSTATUS Init
(
IN PCMiniportWaveCyclic Miniport,
IN ULONG Channel,
IN BOOLEAN Capture,
IN PKSDATAFORMAT DataFormat
);
// Friends
friend class CMiniportWaveCyclic;
};
typedef CMiniportWaveCyclicStream *PCMiniportWaveCyclicStream;
#endif