summaryrefslogtreecommitdiff
path: root/audio/sysvad/PhoneAudioSample/FMWave.h
blob: 1134b68053435ebd70217177c87ab0896040efb7 (plain)
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/*++

Copyright (c) Microsoft Corporation All Rights Reserved

Module Name:

    fmwave.h

Abstract:

    Definition of wavert miniport class for fm

--*/

#include "MinWaveRT.h"

#ifndef _SYSVAD_FMMINWAVERT_H_
#define _SYSVAD_FMMINWAVERT_H_

NTSTATUS
CreateFmMiniportWaveRT
( 
    _Out_           PUNKNOWN                              * Unknown,
    _In_            REFCLSID,
    _In_opt_        PUNKNOWN                                UnknownOuter,
    _When_((PoolType & NonPagedPoolMustSucceed) != 0,
       __drv_reportError("Must succeed pool allocations are forbidden. "
             "Allocation failures cause a system crash"))
    _In_            POOL_TYPE                               PoolType,
    _In_            PUNKNOWN                                UnknownAdapter,
    _In_opt_        PVOID                                   DeviceContext,
    _In_            PENDPOINT_MINIPAIR                      MiniportPair
);

//=============================================================================
// Classes
//=============================================================================
///////////////////////////////////////////////////////////////////////////////
// CFmMiniportWaveRT
//   
class CFmMiniportWaveRT : 
    public CMiniportWaveRT,
    public IAdapterPowerManagement
{
private:
    BOOL m_bFmRxState;

public:
    DECLARE_STD_UNKNOWN();
    IMP_IAdapterPowerManagement;

    CFmMiniportWaveRT(
        _In_            PUNKNOWN                                UnknownAdapter,
        _In_            PENDPOINT_MINIPAIR                      MiniportPair,
        _In_opt_        PVOID                                   DeviceContext
        )
        :CMiniportWaveRT(UnknownAdapter, MiniportPair, DeviceContext),
        m_bFmRxState(FALSE)
    {
    }

    ~CFmMiniportWaveRT();

    friend NTSTATUS PropertyHandler_FmRxWaveFilter
    (   
        _In_ PPCPROPERTY_REQUEST      PropertyRequest 
    );   

public:
    NTSTATUS PropertyHandler_FmRxState
    (
        _In_ PPCPROPERTY_REQUEST PropertyRequest
    );

private:
    NTSTATUS UpdateTopologyJackState
    (
        _In_ BOOL NewState
    );
};
typedef CFmMiniportWaveRT *PCFmMiniportWaveRT;

#endif // _SYSVAD_FMMINWAVERT_H_