ReactOS 0.4.15-dev-7842-g558ab78
mintopo.hpp
Go to the documentation of this file.
1/*
2Copyright (c) 2006-2008 dogbert <dogber1@gmail.com>
3All rights reserved.
4
5Redistribution and use in source and binary forms, with or without
6modification, are permitted provided that the following conditions
7are met:
81. Redistributions of source code must retain the above copyright
9 notice, this list of conditions and the following disclaimer.
102. Redistributions in binary form must reproduce the above copyright
11 notice, this list of conditions and the following disclaimer in the
12 documentation and/or other materials provided with the distribution.
133. The name of the author may not be used to endorse or promote products
14 derived from this software without specific prior written permission.
15
16THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*/
27
28#ifndef _MINTOPO_HPP_
29#define _MINTOPO_HPP_
30
31#include "common.hpp"
32#include "property.h"
33
34class CCMITopology : public ICMITopology,
35 public CUnknown
36{
37private:
38 PCMIADAPTER CMIAdapter; // Adapter common object.
44 BOOLEAN settingsLoaded; // workaround for the fucking XP mixer
45
47public:
51 STDMETHODIMP_(NTSTATUS) loadMixerSettingsFromRegistry();
52 STDMETHODIMP_(NTSTATUS) storeMixerSettingsToRegistry();
53
54 STDMETHODIMP_(NTSTATUS) loadMixerSettingsFromMemory();
55 STDMETHODIMP_(NTSTATUS) storeMixerSettingsToMemory();
56
57 STDMETHODIMP_(NTSTATUS) GetDescription
58 (
59 OUT PPCFILTER_DESCRIPTOR * OutFilterDescriptor
60 );
61 STDMETHODIMP_(NTSTATUS) DataRangeIntersection
62 (
63 IN ULONG PinId,
67 OUT PVOID ResultantFormat OPTIONAL,
69 )
70 {
72 }
73
75 (
76 IN PUNKNOWN UnknownAdapter,
79 );
80
81 //friends
88
90};
91
92#endif //_MINTOPO_HPP_
unsigned char BOOLEAN
LONG NTSTATUS
Definition: precomp.h:26
DWORD UInt32
Definition: chm_lib.c:104
UInt8 auxVolumeRegister
Definition: mintopo.hpp:40
UInt8 mixer4Register
Definition: mintopo.hpp:40
IN PKSDATARANGE DataRange
Definition: mintopo.hpp:64
NTSTATUS ProcessResources(PRESOURCELIST ResourceList)
friend NTSTATUS NTAPI PropertyHandler_ComponentId(PPCPROPERTY_REQUEST PropertyRequest)
Definition: mintopo.cpp:1291
STDMETHODIMP_(NTSTATUS) DataRangeIntersection(IN ULONG PinId
UInt8 mixer1Register
Definition: mintopo.hpp:40
PCMIADAPTER CMIAdapter
Definition: mintopo.hpp:38
CMI8738Info * cm
Definition: mintopo.hpp:39
UInt32 chformatRegister
Definition: mintopo.hpp:41
IN PRESOURCELIST IN PPORTTOPOLOGY Port
Definition: mintopo.hpp:79
UInt32 masterMuteDummy
Definition: mintopo.hpp:43
UInt32 functrl1Register
Definition: mintopo.hpp:41
UInt32 legacyRegister
Definition: mintopo.hpp:41
static NTSTATUS EventHandler(PPCEVENT_REQUEST EventRequest)
BOOLEAN settingsLoaded
Definition: mintopo.hpp:44
STDMETHODIMP_(NTSTATUS) storeMixerSettingsToRegistry()
friend NTSTATUS NTAPI PropertyHandler_Private(PPCPROPERTY_REQUEST PropertyRequest)
Definition: mintopo.cpp:1337
STDMETHODIMP_(NTSTATUS) storeMixerSettingsToMemory()
STDMETHODIMP_(NTSTATUS) loadMixerSettingsFromMemory()
IN PKSDATARANGE IN PKSDATARANGE IN ULONG OUT PVOID ResultantFormat OUT PULONG ResultantFormatLength
Definition: mintopo.hpp:70
STDMETHODIMP_(NTSTATUS) Init(IN PUNKNOWN UnknownAdapter
STDMETHODIMP_(NTSTATUS) GetDescription(OUT PPCFILTER_DESCRIPTOR *OutFilterDescriptor)
UInt8 micVolumeRegister
Definition: mintopo.hpp:40
friend NTSTATUS NTAPI PropertyHandler_Mux(PPCPROPERTY_REQUEST PropertyRequest)
DEFINE_STD_CONSTRUCTOR(CCMITopology)
friend NTSTATUS NTAPI PropertyHandler_CpuResources(PPCPROPERTY_REQUEST PropertyRequest)
Definition: mintopo.cpp:1239
STDMETHODIMP_(NTSTATUS) loadMixerSettingsFromRegistry()
IN PKSDATARANGE IN PKSDATARANGE MatchingDataRange
Definition: mintopo.hpp:65
UInt32 miscctrlRegister
Definition: mintopo.hpp:41
friend NTSTATUS NTAPI PropertyHandler_OnOff(PPCPROPERTY_REQUEST PropertyRequest)
Definition: mintopo.cpp:480
UInt32 NodeCache[2 *KSNODE_TOPO_INVALID]
Definition: mintopo.hpp:42
friend NTSTATUS NTAPI PropertyHandler_Level(PPCPROPERTY_REQUEST PropertyRequest)
Definition: mintopo.cpp:1101
#define UInt8
Definition: interfaces.hpp:75
@ KSNODE_TOPO_INVALID
Definition: interfaces.hpp:438
ICMIAdapter * PCMIADAPTER
Definition: interfaces.hpp:261
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:239
IResourceList * PRESOURCELIST
Definition: portcls.h:442
IPortTopology * PPORTTOPOLOGY
Definition: portcls.h:1415
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
uint32_t * PULONG
Definition: typedefs.h:59
#define NTAPI
Definition: typedefs.h:36
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
_In_ WDFREQUEST _In_ size_t OutputBufferLength
Definition: wdfio.h:320
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
Definition: wdfresource.h:309