Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenmintopo.hpp
Go to the documentation of this file.
00001 /* 00002 Copyright (c) 2006-2007 dogbert <dogber1@gmail.com> 00003 All rights reserved. 00004 00005 Redistribution and use in source and binary forms, with or without 00006 modification, are permitted provided that the following conditions 00007 are met: 00008 1. Redistributions of source code must retain the above copyright 00009 notice, this list of conditions and the following disclaimer. 00010 2. Redistributions in binary form must reproduce the above copyright 00011 notice, this list of conditions and the following disclaimer in the 00012 documentation and/or other materials provided with the distribution. 00013 3. The name of the author may not be used to endorse or promote products 00014 derived from this software without specific prior written permission. 00015 00016 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 00017 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00018 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 00019 IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 00020 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 00021 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00022 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00023 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00024 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 00025 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00026 */ 00027 00028 #ifndef _MINTOPO_HPP_ 00029 #define _MINTOPO_HPP_ 00030 00031 #include "common.hpp" 00032 #include "property.h" 00033 00034 class CCMITopology : public ICMITopology 00035 { 00036 private: 00037 PCMIADAPTER CMIAdapter; // Adapter common object. 00038 CMI8738Info *cm; 00039 UInt8 auxVolumeRegister, micVolumeRegister, mixer1Register, mixer4Register; 00040 UInt32 functrl1Register, chformatRegister, legacyRegister, miscctrlRegister; 00041 UInt32 NodeCache[2*KSNODE_TOPO_INVALID]; 00042 UInt32 masterMuteDummy; 00043 BOOLEAN settingsLoaded; // workaround for the fucking XP mixer 00044 00045 NTSTATUS ProcessResources(PRESOURCELIST ResourceList); 00046 public: 00047 STDMETHODIMP QueryInterface( REFIID InterfaceId, PVOID* Interface); 00048 STDMETHODIMP_(ULONG) AddRef() 00049 { 00050 InterlockedIncrement(&m_Ref); 00051 return m_Ref; 00052 } 00053 STDMETHODIMP_(ULONG) Release() 00054 { 00055 InterlockedDecrement(&m_Ref); 00056 00057 if (!m_Ref) 00058 { 00059 delete this; 00060 return 0; 00061 } 00062 return m_Ref; 00063 } 00064 CCMITopology(IUnknown * OuterUnknown){} 00065 ~CCMITopology(); 00066 STDMETHODIMP_(NTSTATUS) loadMixerSettingsFromRegistry(); 00067 STDMETHODIMP_(NTSTATUS) storeMixerSettingsToRegistry(); 00068 00069 STDMETHODIMP_(NTSTATUS) loadMixerSettingsFromMemory(); 00070 STDMETHODIMP_(NTSTATUS) storeMixerSettingsToMemory(); 00071 00072 STDMETHODIMP_(NTSTATUS) GetDescription 00073 ( 00074 OUT PPCFILTER_DESCRIPTOR * OutFilterDescriptor 00075 ); 00076 STDMETHODIMP_(NTSTATUS) DataRangeIntersection 00077 ( 00078 IN ULONG PinId, 00079 IN PKSDATARANGE DataRange, 00080 IN PKSDATARANGE MatchingDataRange, 00081 IN ULONG OutputBufferLength, 00082 OUT PVOID ResultantFormat OPTIONAL, 00083 OUT PULONG ResultantFormatLength 00084 ) 00085 { 00086 return STATUS_NOT_IMPLEMENTED; 00087 } 00088 00089 // public methods 00090 STDMETHODIMP_(NTSTATUS) Init 00091 ( 00092 IN PUNKNOWN UnknownAdapter, 00093 IN PRESOURCELIST ResourceList, 00094 IN PPORTTOPOLOGY Port 00095 ); 00096 00097 //friends 00098 friend NTSTATUS NTAPI PropertyHandler_OnOff(PPCPROPERTY_REQUEST PropertyRequest); 00099 friend NTSTATUS NTAPI PropertyHandler_Level(PPCPROPERTY_REQUEST PropertyRequest); 00100 friend NTSTATUS NTAPI PropertyHandler_CpuResources(PPCPROPERTY_REQUEST PropertyRequest); 00101 friend NTSTATUS NTAPI PropertyHandler_ComponentId(PPCPROPERTY_REQUEST PropertyRequest); 00102 friend NTSTATUS NTAPI PropertyHandler_Private(PPCPROPERTY_REQUEST PropertyRequest); 00103 friend NTSTATUS NTAPI PropertyHandler_Mux(PPCPROPERTY_REQUEST PropertyRequest); 00104 00105 static NTSTATUS NTAPI EventHandler(PPCEVENT_REQUEST EventRequest); 00106 00107 LONG m_Ref; 00108 }; 00109 00110 #endif //_MINTOPO_HPP_ Generated on Sat May 26 2012 04:27:13 for ReactOS by
1.7.6.1
|