ReactOS  0.4.15-dev-1384-g878186b
mintopo.hpp
Go to the documentation of this file.
1 /*
2 Copyright (c) 2006-2008 dogbert <dogber1@gmail.com>
3 All rights reserved.
4 
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions
7 are met:
8 1. Redistributions of source code must retain the above copyright
9  notice, this list of conditions and the following disclaimer.
10 2. 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.
13 3. 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 
16 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19 IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 THIS 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 
34 class CCMITopology : public ICMITopology,
35  public CUnknown
36 {
37 private:
38  PCMIADAPTER CMIAdapter; // Adapter common object.
44  BOOLEAN settingsLoaded; // workaround for the fucking XP mixer
45 
47 public:
50  ~CCMITopology();
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
87  friend NTSTATUS NTAPI PropertyHandler_Mux(PPCPROPERTY_REQUEST PropertyRequest);
88 
89  static NTSTATUS EventHandler(PPCEVENT_REQUEST EventRequest);
90 };
91 
92 #endif //_MINTOPO_HPP_
PCMIADAPTER CMIAdapter
Definition: mintopo.hpp:38
UInt32 miscctrlRegister
Definition: mintopo.hpp:41
#define IN
Definition: typedefs.h:39
UInt8 mixer1Register
Definition: mintopo.hpp:40
IPortTopology * PPORTTOPOLOGY
Definition: portcls.h:1403
DWORD UInt32
Definition: chm_lib.c:104
UInt32 functrl1Register
Definition: mintopo.hpp:41
IN PKSDATARANGE DataRange
Definition: mintopo.hpp:64
ICMIAdapter * PCMIADAPTER
Definition: interfaces.hpp:260
IN PKSDATARANGE IN PKSDATARANGE MatchingDataRange
Definition: mintopo.hpp:64
LONG NTSTATUS
Definition: precomp.h:26
#define UInt8
Definition: interfaces.hpp:75
UInt8 micVolumeRegister
Definition: mintopo.hpp:40
BOOL Init(PUSERCONNECT UserCon)
Definition: dllmain.c:385
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
Definition: wdfresource.h:304
UInt8 mixer4Register
Definition: mintopo.hpp:40
DEFINE_STD_CONSTRUCTOR(CCMITopology)
IN PKSDATARANGE IN PKSDATARANGE IN ULONG OUT PVOID ResultantFormat OUT PULONG ResultantFormatLength
Definition: mintopo.hpp:70
_In_ WDFREQUEST _In_ size_t OutputBufferLength
Definition: wdfio.h:318
return STATUS_NOT_IMPLEMENTED
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
UInt32 chformatRegister
Definition: mintopo.hpp:41
unsigned char BOOLEAN
NTSTATUS ProcessResources(PRESOURCELIST ResourceList)
friend NTSTATUS NTAPI PropertyHandler_Private(PPCPROPERTY_REQUEST PropertyRequest)
Definition: mintopo.cpp:1337
UInt32 masterMuteDummy
Definition: mintopo.hpp:43
friend NTSTATUS NTAPI PropertyHandler_CpuResources(PPCPROPERTY_REQUEST PropertyRequest)
Definition: mintopo.cpp:1239
friend NTSTATUS NTAPI PropertyHandler_OnOff(PPCPROPERTY_REQUEST PropertyRequest)
Definition: mintopo.cpp:480
friend NTSTATUS NTAPI PropertyHandler_Mux(PPCPROPERTY_REQUEST PropertyRequest)
IResourceList * PRESOURCELIST
Definition: portcls.h:442
BOOLEAN settingsLoaded
Definition: mintopo.hpp:44
friend NTSTATUS NTAPI PropertyHandler_ComponentId(PPCPROPERTY_REQUEST PropertyRequest)
Definition: mintopo.cpp:1291
CMI8738Info * cm
Definition: mintopo.hpp:39
unsigned int * PULONG
Definition: retypes.h:1
friend NTSTATUS NTAPI PropertyHandler_Level(PPCPROPERTY_REQUEST PropertyRequest)
Definition: mintopo.cpp:1101
UInt32 legacyRegister
Definition: mintopo.hpp:41
static NTSTATUS EventHandler(PPCEVENT_REQUEST EventRequest)
#define OUT
Definition: typedefs.h:40
unsigned int ULONG
Definition: retypes.h:1
IN PRESOURCELIST IN PPORTTOPOLOGY Port
Definition: mintopo.hpp:77
UInt8 auxVolumeRegister
Definition: mintopo.hpp:40
UInt32 NodeCache[2 *KSNODE_TOPO_INVALID]
Definition: mintopo.hpp:42
STDMETHODIMP_(NTSTATUS) loadMixerSettingsFromRegistry()
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68