ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

mintopo.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.