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

interfaces.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 _INTERFACES_HPP_
00029 #define _INTERFACES_HPP_
00030 
00031 #include <ntddk.h>
00032 #include <portcls.h>
00033 #include <stdunk.h>
00034 #include <debug.h>
00035 
00036 #define MAXLEN_DMA_BUFFER       0x18000
00037 #define MAX_OUTPUT_STREAMS      1
00038 #define MAX_INPUT_STREAMS       1
00039 #define MAX_AC3_INPUT_STREAMS   1
00040 
00041 // PCM Info
00042 #define MIN_CHANNELS            2
00043 #define MAX_CHANNELS_PCM        8
00044 #define MIN_BITS_PER_SAMPLE_PCM 16
00045 #define MAX_BITS_PER_SAMPLE_PCM 32
00046 #define MIN_SAMPLE_RATE         44100
00047 #define MAX_SAMPLE_RATE         96000
00048 #define MAX_SAMPLE_RATE_MULTI   48000
00049 
00050 // AC3 Info
00051 #define MAX_CHANNELS_AC3        2
00052 #define MIN_BITS_PER_SAMPLE_AC3 16
00053 #define MAX_BITS_PER_SAMPLE_AC3 16
00054 #define MIN_SAMPLE_RATE_AC3     48000
00055 #define MAX_SAMPLE_RATE_AC3     48000
00056 
00057 
00058 #define PCM_OUT_STREAM 0
00059 #define PCM_IN_STREAM  1
00060 #define AC3_OUT_STREAM 2
00061 
00062 #define CHAN_LEFT   0
00063 #define CHAN_RIGHT  1
00064 #define CHAN_MASTER (-1)
00065 
00066 #define IN_CHANNEL  0
00067 #define OUT_CHANNEL 1
00068 
00069 #define UInt32  ULONG
00070 #define UInt16  USHORT
00071 #define UInt8   BYTE
00072 #define Int32   LONG
00073 
00074 #define KSSTATE_STOP_AC3  (KSSTATE)5
00075 #define KSSTATE_RUN_AC3   (KSSTATE)6
00076 
00077 // Interface ICMITopology
00078 DECLARE_INTERFACE_(ICMITopology,IMiniportTopology)
00079 {
00080     STDMETHOD_(NTSTATUS,GetDescription)
00081     (   THIS_
00082         PPCFILTER_DESCRIPTOR*  OutFilterDescriptor
00083     )   PURE;
00084     STDMETHOD_(NTSTATUS,DataRangeIntersection)
00085     (   THIS_
00086         ULONG           PinId,
00087         PKSDATARANGE    DataRange,
00088         PKSDATARANGE    MatchingDataRange,
00089         ULONG           OutputBufferLength,
00090         PVOID           ResultantFormat,
00091         PULONG          ResultantFormatLength
00092     )   PURE;
00093     STDMETHOD_(NTSTATUS,Init)
00094     (   THIS_
00095         PUNKNOWN        UnknownAdapter,
00096         PRESOURCELIST   ResourceList,
00097         PPORTTOPOLOGY   Port
00098     )   PURE;
00099     STDMETHOD_(NTSTATUS,loadMixerSettingsFromMemory)
00100     (   THIS_
00101         void
00102     )   PURE;
00103     STDMETHOD_(NTSTATUS,storeMixerSettingsToMemory)
00104     (   THIS_
00105         void
00106     )   PURE;
00107 };
00108 typedef ICMITopology *PCMITOPOLOGY;
00109 
00110 // Interface IMiniportWaveCMI
00111 DECLARE_INTERFACE_(IMiniportWaveCMI,IUnknown)
00112 {
00113     STDMETHOD_(void,ServiceWaveISR)
00114     (   THIS_
00115         ULONG   channel
00116     )   PURE;
00117 
00118     STDMETHOD_(void,powerUp)
00119     (   THIS_
00120         void
00121     )   PURE;
00122     STDMETHOD_(void,powerDown)
00123     (   THIS_
00124         void
00125     )   PURE;
00126 };
00127 typedef IMiniportWaveCMI *PCMIWAVE;
00128 
00129 // structure to avoid the fucking COM crapola
00130 typedef struct CMI8738Info {
00131     int             chipVersion;
00132     int             maxChannels;
00133     bool            canAC3HW, canAC3SW;
00134     bool            canMultiChannel;
00135     bool            doAC3SW;
00136     bool            hasDualDAC;
00137     UInt32*         IOBase;
00138     UInt32*         MPUBase;
00139     PCMIWAVE        WaveMiniport;
00140     PCMITOPOLOGY    TopoMiniport;
00141     bool            enableSPDIFOut;
00142     bool            enableSPDIFIn;
00143     UInt32          formatMask;
00144     UInt32          regFUNCTRL0;
00145 } CMI8738Info;
00146 typedef CMI8738Info* PCMI8738Info;
00147 
00148 typedef struct VolumeTable {
00149     UInt32          node;
00150     UInt8           reg;
00151     UInt8           mask;
00152     UInt8           shift;
00153     Int32           max;
00154     Int32           min;
00155     Int32           step;
00156     Int32           dbshift;
00157 } VolumeTable;
00158 
00159 // Interface ICMIAdapter
00160 DECLARE_INTERFACE_(ICMIAdapter,IUnknown)
00161 {
00162     STDMETHOD_(NTSTATUS,init)
00163     (   THIS_
00164         PRESOURCELIST   ResourceList,
00165         PDEVICE_OBJECT  DeviceObject
00166     )   PURE;
00167     STDMETHOD_(PINTERRUPTSYNC,getInterruptSync)
00168     (   THIS_
00169         void
00170     )   PURE;
00171     STDMETHOD_(PDEVICE_OBJECT,getDeviceObject)
00172     (   THIS_
00173         void
00174     )   PURE;
00175     STDMETHOD_(PCMI8738Info,getCMI8738Info)
00176     (   THIS_
00177         void
00178     )   PURE;
00179     STDMETHOD_(UInt8, readUInt8)
00180     (   THIS_
00181         UInt8 reg
00182     )   PURE;
00183     STDMETHOD_(void, writeUInt8)
00184     (   THIS_
00185         UInt8 reg,
00186         UInt8 value
00187     )   PURE;
00188     STDMETHOD_(void, setUInt8Bit)
00189     (   THIS_
00190         UInt8 reg,
00191         UInt8 flag
00192     )   PURE;
00193     STDMETHOD_(void, clearUInt8Bit)
00194     (   THIS_
00195         UInt8 reg,
00196         UInt8 flag
00197     )   PURE;
00198     STDMETHOD_(UInt16, readUInt16)
00199     (   THIS_
00200         UInt8 reg
00201     )   PURE;
00202     STDMETHOD_(void, writeUInt16)
00203     (   THIS_
00204         UInt8 reg,
00205         UInt16 value
00206     )   PURE;
00207     STDMETHOD_(UInt32, readUInt32)
00208     (   THIS_
00209         UInt8 reg
00210     )   PURE;
00211     STDMETHOD_(void, writeUInt32)
00212     (   THIS_
00213         UInt8 reg,
00214         UInt32 value
00215     )   PURE;
00216     STDMETHOD_(void, setUInt32Bit)
00217     (   THIS_
00218         UInt8 reg,
00219         UInt32 flag
00220     )   PURE;
00221     STDMETHOD_(void, clearUInt32Bit)
00222     (   THIS_
00223         UInt8 reg,
00224         UInt32 flag
00225     )   PURE;
00226     STDMETHOD_(UInt8, readMixer)
00227     (   THIS_
00228         UInt8 index
00229     )   PURE;
00230     STDMETHOD_(void, writeMixer)
00231     (   THIS_
00232         UInt8 index,
00233         UInt8 value
00234     )   PURE;
00235     STDMETHOD_(void, setMixerBit)
00236     (   THIS_
00237         UInt8 index,
00238         UInt8 flag
00239     )   PURE;
00240     STDMETHOD_(void, clearMixerBit)
00241     (   THIS_
00242         UInt8 index,
00243         UInt8 flag
00244     )   PURE;
00245     STDMETHOD_(void,resetMixer)
00246     (   THIS_
00247     )   PURE;
00248     STDMETHOD_(NTSTATUS,activateMPU)
00249     (   THIS_
00250         ULONG*          MPUBase
00251     )   PURE;
00252     STDMETHOD_(NTSTATUS,loadSBMixerFromMemory)
00253     (   THIS_
00254     )   PURE;
00255 };
00256 typedef ICMIAdapter *PCMIADAPTER;
00257 
00258 // GUIDs
00259 
00260 // {34B338A2-BB40-4ecd-B97A-AEB03F325825}
00261 DEFINE_GUID(IID_ICMIAdapter, 0x34b338a2, 0xbb40, 0x4ecd, 0xb9, 0x7a, 0xae, 0xb0, 0x3f, 0x32, 0x58, 0x25);
00262 // {60BB55CF-C960-4ddf-B7A4-243978B2FE7B}
00263 DEFINE_GUID(IID_ICMITopolgy, 0x60bb55cf, 0xc960, 0x4ddf, 0xb7, 0xa4, 0x24, 0x39, 0x78, 0xb2, 0xfe, 0x7b);
00264 // {E8698236-D854-4da7-BF31-8332C614CE91}
00265 DEFINE_GUID(IID_IMiniportWaveCMI, 0xe8698236, 0xd854, 0x4da7, 0xbf, 0x31, 0x83, 0x32, 0xc6, 0x14, 0xce, 0x91);
00266 
00267 
00268 // {9DB14E9A-7BE7-480d-A2FA-32932489DE9C}
00269 #define STATIC_PRODUCT_CM8738 \
00270     0x9db14e9a, 0x7be7, 0x480d, 0xa2, 0xfa, 0x32, 0x93, 0x24, 0x89, 0xde, 0x9c
00271 DEFINE_GUIDSTRUCT("9DB14E9A-7BE7-480d-A2FA-32932489DE9C", PRODUCT_CM8738);
00272 #define PRODUCT_CM8738 DEFINE_GUIDNAMED(PRODUCT_CM8738)
00273 
00274 // {9DB14E9A-7BE7-480d-A2FA-32932489DE9D}
00275 #define STATIC_COMPONENT_CM8738 \
00276     0x9db14e9a, 0x7be7, 0x480d, 0xa2, 0xfa, 0x32, 0x93, 0x24, 0x89, 0xde, 0x9d
00277 DEFINE_GUIDSTRUCT("9DB14E9A-7BE7-480d-A2FA-32932489DE9D", COMPONENT_CM8738);
00278 #define COMPONENT_CM8738 DEFINE_GUIDNAMED(COMPONENT_CM8738)
00279 
00280 // {9DB14E9A-7BE7-480d-A2FA-32932489DE9E}
00281 #define STATIC_MANUFACTURER_CM8738 \
00282     0x9db14e9a, 0x7be7, 0x480d, 0xa2, 0xfa, 0x32, 0x93, 0x24, 0x89, 0xde, 0x9e
00283 DEFINE_GUIDSTRUCT("9DB14E9A-7BE7-480d-A2FA-32932489DE9E", MANUFACTURER_CM8738);
00284 #define MANUFACTURER_CM8738 DEFINE_GUIDNAMED(MANUFACTURER_CM8738)
00285 
00286 
00287 #define CMIPCI_VERSION   0x00
00288 
00289 // topology node names (refer to .inf file)
00290 // {2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF0}
00291 #define STATIC_CMINAME_IEC_5V \
00292     0x2B81CDBB, 0xEE6C, 0x4ECC, 0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF0
00293 DEFINE_GUIDSTRUCT("2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF0", _STATIC_CMINAME_IEC_5V);
00294 #define CMINAME_IEC_5V DEFINE_GUIDNAMED(_STATIC_CMINAME_IEC_5V)
00295 
00296 // {2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF1}
00297 #define STATIC_CMINAME_IEC_OUT \
00298     0x2B81CDBB, 0xEE6C, 0x4ECC, 0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF1
00299 DEFINE_GUIDSTRUCT("2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF1", _STATIC_CMINAME_IEC_OUT);
00300 #define CMINAME_IEC_OUT DEFINE_GUIDNAMED(_STATIC_CMINAME_IEC_OUT)
00301 
00302 // {2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF2}
00303 #define STATIC_CMINAME_IEC_INVERSE \
00304     0x2B81CDBB, 0xEE6C, 0x4ECC, 0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF2
00305 DEFINE_GUIDSTRUCT("2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF2", _STATIC_CMINAME_IEC_INVERSE);
00306 #define CMINAME_IEC_INVERSE DEFINE_GUIDNAMED(_STATIC_CMINAME_IEC_INVERSE)
00307 
00308 // {2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF3}
00309 #define STATIC_CMINAME_IEC_MONITOR \
00310     0x2B81CDBB, 0xEE6C, 0x4ECC, 0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF3
00311 DEFINE_GUIDSTRUCT("2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF3", _STATIC_CMINAME_IEC_MONITOR);
00312 #define CMINAME_IEC_MONITOR DEFINE_GUIDNAMED(_STATIC_CMINAME_IEC_MONITOR)
00313 
00314 // {2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF4}
00315 #define STATIC_CMINAME_DAC \
00316     0x2B81CDBB, 0xEE6C, 0x4ECC, 0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF4
00317 DEFINE_GUIDSTRUCT("2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF4", _STATIC_CMINAME_DAC);
00318 #define CMINAME_DAC DEFINE_GUIDNAMED(_STATIC_CMINAME_DAC)
00319 
00320 // {2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF5}
00321 #define STATIC_CMINAME_IEC_SELECT \
00322     0x2B81CDBB, 0xEE6C, 0x4ECC, 0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF5
00323 DEFINE_GUIDSTRUCT("2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF5", _STATIC_CMINAME_IEC_SELECT);
00324 #define CMINAME_IEC_SELECT DEFINE_GUIDNAMED(_STATIC_CMINAME_IEC_SELECT)
00325 
00326 // {2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF6}
00327 #define STATIC_CMINAME_XCHG_FB \
00328     0x2B81CDBB, 0xEE6C, 0x4ECC, 0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF6
00329 DEFINE_GUIDSTRUCT("2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF6", _STATIC_CMINAME_XCHG_FB);
00330 #define CMINAME_XCHG_FB DEFINE_GUIDNAMED(_STATIC_CMINAME_XCHG_FB)
00331 
00332 // {2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF7}
00333 #define STATIC_CMINAME_BASS2LINE \
00334     0x2B81CDBB, 0xEE6C, 0x4ECC, 0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF7
00335 DEFINE_GUIDSTRUCT("2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF7", _STATIC_CMINAME_BASS2LINE);
00336 #define CMINAME_BASS2LINE DEFINE_GUIDNAMED(_STATIC_CMINAME_BASS2LINE)
00337 
00338 // {2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF8}
00339 #define STATIC_CMINAME_CENTER2LINE \
00340     0x2B81CDBB, 0xEE6C, 0x4ECC, 0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF8
00341 DEFINE_GUIDSTRUCT("2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF8", _STATIC_CMINAME_CENTER2LINE);
00342 #define CMINAME_CENTER2LINE DEFINE_GUIDNAMED(_STATIC_CMINAME_CENTER2LINE)
00343 
00344 // {2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF9}
00345 #define STATIC_CMINAME_IEC_COPYRIGHT \
00346     0x2B81CDBB, 0xEE6C, 0x4ECC, 0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xF9
00347 DEFINE_GUIDSTRUCT("2B81CDBB-EE6C-4ECC-8AA5-9A188B023DF9", _STATIC_CMINAME_IEC_COPYRIGHT);
00348 #define CMINAME_IEC_COPYRIGHT DEFINE_GUIDNAMED(_STATIC_CMINAME_IEC_COPYRIGHT)
00349 
00350 // {2B81CDBB-EE6C-4ECC-8AA5-9A188B023DFA}
00351 #define STATIC_CMINAME_IEC_POLVALID \
00352     0x2B81CDBB, 0xEE6C, 0x4ECC, 0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xFA
00353 DEFINE_GUIDSTRUCT("2B81CDBB-EE6C-4ECC-8AA5-9A188B023DFA", _STATIC_CMINAME_IEC_POLVALID);
00354 #define CMINAME_IEC_POLVALID DEFINE_GUIDNAMED(_STATIC_CMINAME_IEC_POLVALID)
00355 
00356 // {2B81CDBB-EE6C-4ECC-8AA5-9A188B023DFB}
00357 #define STATIC_CMINAME_IEC_LOOP \
00358     0x2B81CDBB, 0xEE6C, 0x4ECC, 0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xFB
00359 DEFINE_GUIDSTRUCT("2B81CDBB-EE6C-4ECC-8AA5-9A188B023DFB", _STATIC_CMINAME_IEC_LOOP);
00360 #define CMINAME_IEC_LOOP DEFINE_GUIDNAMED(_STATIC_CMINAME_IEC_LOOP)
00361 
00362 // {2B81CDBB-EE6C-4ECC-8AA5-9A188B023DFC}
00363 #define STATIC_CMINAME_REAR2LINE \
00364     0x2B81CDBB, 0xEE6C, 0x4ECC, 0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xFC
00365 DEFINE_GUIDSTRUCT("2B81CDBB-EE6C-4ECC-8AA5-9A188B023DFC", _STATIC_CMINAME_REAR2LINE);
00366 #define CMINAME_REAR2LINE DEFINE_GUIDNAMED(_STATIC_CMINAME_REAR2LINE)
00367 
00368 // {2B81CDBB-EE6C-4ECC-8AA5-9A188B023DFD}
00369 #define STATIC_CMINAME_CENTER2MIC \
00370     0x2B81CDBB, 0xEE6C, 0x4ECC, 0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xFD
00371 DEFINE_GUIDSTRUCT("2B81CDBB-EE6C-4ECC-8AA5-9A188B023DFD", _STATIC_CMINAME_CENTER2MIC);
00372 #define CMINAME_CENTER2MIC DEFINE_GUIDNAMED(_STATIC_CMINAME_CENTER2MIC)
00373 
00374 //topology pins
00375 enum
00376 {
00377     PIN_WAVEOUT_SOURCE = 0,
00378     PIN_SPDIFIN_SOURCE,
00379     PIN_MIC_SOURCE,
00380     PIN_CD_SOURCE,
00381     PIN_LINEIN_SOURCE,
00382     PIN_AUX_SOURCE,
00383     PIN_DAC_SOURCE,
00384     PIN_LINEOUT_DEST,
00385     PIN_WAVEIN_DEST,
00386     PIN_SPDIF_AC3_SOURCE,
00387     PIN_SPDIF_AC3_DEST,
00388 
00389     PIN_INVALID
00390 };
00391 
00392 //topology nodes
00393 enum
00394 {
00395     KSNODE_TOPO_WAVEOUT_VOLUME = 0,
00396     KSNODE_TOPO_WAVEOUT_MUTE,
00397     KSNODE_TOPO_MICOUT_VOLUME,
00398     KSNODE_TOPO_LINEOUT_MIX,
00399     KSNODE_TOPO_LINEOUT_VOLUME,
00400     KSNODE_TOPO_WAVEIN_SUM,
00401     KSNODE_TOPO_CD_VOLUME,
00402     KSNODE_TOPO_LINEIN_VOLUME,
00403     KSNODE_TOPO_AUX_VOLUME,
00404     KSNODE_TOPO_MICIN_VOLUME,
00405     KSNODE_TOPO_MICIN_LOUDNESS,
00406     KSNODE_TOPO_MICOUT_LOUDNESS,
00407     KSNODE_TOPO_CD_MUTE,
00408     KSNODE_TOPO_LINEIN_MUTE,
00409     KSNODE_TOPO_MICOUT_MUTE,
00410     KSNODE_TOPO_AUX_MUTE,
00411     KSNODE_TOPO_LINEIN_MUTE_IN,
00412     KSNODE_TOPO_MIC_MUTE_IN,
00413     KSNODE_TOPO_AUX_MUTE_IN,
00414     KSNODE_TOPO_CD_MUTE_IN,
00415     KSNODE_TOPO_WAVEOUT_MUTE_IN,
00416     KSNODE_TOPO_IEC_5V,
00417     KSNODE_TOPO_IEC_OUT,
00418     KSNODE_TOPO_IEC_INVERSE,
00419     KSNODE_TOPO_IEC_MONITOR,
00420     KSNODE_TOPO_IEC_SELECT,
00421     KSNODE_TOPO_SPDIF_AC3_MUTE,
00422     KSNODE_TOPO_SPDIF_AC3_MUX,
00423     KSNODE_TOPO_XCHG_FB,
00424     KSNODE_TOPO_BASS2LINE,
00425     KSNODE_TOPO_CENTER2LINE,
00426     KSNODE_TOPO_IEC_COPYRIGHT,
00427     KSNODE_TOPO_IEC_POLVALID,
00428     KSNODE_TOPO_IEC_LOOP,
00429     KSNODE_TOPO_REAR2LINE,
00430     KSNODE_TOPO_CENTER2MIC,
00431     KSNODE_TOPO_MASTER_MUTE_DUMMY,
00432 
00433     KSNODE_TOPO_INVALID
00434 };
00435 
00436 //wave miniport pins
00437 enum
00438 {
00439     PIN_WAVE_CAPTURE_SINK = 0,
00440     PIN_WAVE_CAPTURE_SOURCE,
00441     PIN_WAVE_RENDER_SINK,
00442     PIN_WAVE_RENDER_SOURCE,
00443     PIN_WAVE_AC3_RENDER_SINK,
00444     PIN_WAVE_AC3_RENDER_SOURCE,
00445 
00446     PIN_WAVE_INVALID
00447 };
00448 
00449 //wave miniport nodes
00450 enum
00451 {
00452     KSNODE_WAVE_ADC = 0,
00453     KSNODE_WAVE_VOLUME1,
00454     KSNODE_WAVE_3D_EFFECTS,
00455     KSNODE_WAVE_SUPERMIX,
00456     KSNODE_WAVE_VOLUME2,
00457     KSNODE_WAVE_SRC,
00458     KSNODE_WAVE_SUM,
00459     KSNODE_WAVE_DAC,
00460     KSNODE_WAVE_SPDIF,
00461 
00462     KSNODE_WAVE_INVALID
00463 };
00464 
00465 #endif //_INTERFACES_HPP_

Generated on Sun May 27 2012 04:28:33 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.