Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenmintopotables.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 _TABLES_HPP_ 00029 #define _TABLES_HPP_ 00030 00031 #include "mintopo.hpp" 00032 00033 #if 0 00034 #ifndef STATIC_KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF 00035 #define STATIC_KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF\ 00036 DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_DOLBY_AC3_SPDIF) 00037 DEFINE_GUIDSTRUCT("00000092-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF); 00038 #define KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF DEFINE_GUIDNAMED( KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF ) 00039 /* Warning - Recursive #define for KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF */ 00040 #endif 00041 #endif 00042 00043 NTSTATUS NTAPI PropertyHandler_Level(PPCPROPERTY_REQUEST PropertyRequest); 00044 NTSTATUS NTAPI PropertyHandler_CpuResources(PPCPROPERTY_REQUEST PropertyRequest); 00045 NTSTATUS NTAPI PropertyHandler_OnOff(PPCPROPERTY_REQUEST PropertyRequest); 00046 NTSTATUS NTAPI PropertyHandler_ComponentId(PPCPROPERTY_REQUEST PropertyRequest); 00047 NTSTATUS NTAPI PropertyHandler_Private(PPCPROPERTY_REQUEST PropertyRequest); 00048 00049 static KSDATARANGE PinDataRangesBridge[] = 00050 { 00051 { 00052 { 00053 sizeof(KSDATARANGE), 00054 0, 00055 0, 00056 0, 00057 { STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO) }, 00058 { STATICGUIDOF(KSDATAFORMAT_SUBTYPE_ANALOG) }, 00059 { STATICGUIDOF(KSDATAFORMAT_SPECIFIER_NONE) } 00060 } 00061 } 00062 }; 00063 00064 static PKSDATARANGE PinDataRangePointersBridge[] = 00065 { 00066 &PinDataRangesBridge[0] 00067 }; 00068 00069 static KSDATARANGE WavePinDataRangesAC3Bridge[] = 00070 { 00071 { 00072 { 00073 sizeof(KSDATARANGE), 00074 0, 00075 0, 00076 0, 00077 { STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO) }, 00078 { STATICGUIDOF(KSDATAFORMAT_SUBTYPE_AC3_AUDIO) }, 00079 { STATICGUIDOF(KSDATAFORMAT_SPECIFIER_NONE) } 00080 } 00081 } 00082 }; 00083 00084 static PKSDATARANGE WavePinDataRangePointersAC3Bridge[] = 00085 { 00086 &WavePinDataRangesAC3Bridge[0] 00087 }; 00088 00089 static PCPIN_DESCRIPTOR MiniportPins[] = 00090 { 00091 // WAVEOUT_SOURCE - 0 00092 { 00093 0,0,0, // InstanceCount 00094 NULL, // AutomationTable 00095 { // KsPinDescriptor 00096 0, // InterfacesCount 00097 NULL, // Interfaces 00098 0, // MediumsCount 00099 NULL, // Mediums 00100 SIZEOF_ARRAY(PinDataRangePointersBridge), // DataRangesCount 00101 PinDataRangePointersBridge, // DataRanges 00102 KSPIN_DATAFLOW_IN, // DataFlow 00103 KSPIN_COMMUNICATION_NONE, // Communication 00104 &KSCATEGORY_AUDIO, // Category 00105 NULL, // Name 00106 { 0 } // Reserved 00107 } 00108 }, 00109 00110 // SPDIF_IN_SOURCE - 1 00111 { 00112 0,0,0, // InstanceCount 00113 NULL, // AutomationTable 00114 { // KsPinDescriptor 00115 0, // InterfacesCount 00116 NULL, // Interfaces 00117 0, // MediumsCount 00118 NULL, // Mediums 00119 SIZEOF_ARRAY(PinDataRangePointersBridge), // DataRangesCount 00120 PinDataRangePointersBridge, // DataRanges 00121 KSPIN_DATAFLOW_IN, // DataFlow 00122 KSPIN_COMMUNICATION_NONE, // Communication 00123 &KSNODETYPE_SPDIF_INTERFACE, // Category 00124 NULL, // Name 00125 { 0 } // Reserved 00126 } 00127 }, 00128 00129 // MIC_SOURCE - 2 00130 { 00131 0,0,0, // InstanceCount 00132 NULL, // AutomationTable 00133 { // KsPinDescriptor 00134 0, // InterfacesCount 00135 NULL, // Interfaces 00136 0, // MediumsCount 00137 NULL, // Mediums 00138 SIZEOF_ARRAY(PinDataRangePointersBridge), // DataRangesCount 00139 PinDataRangePointersBridge, // DataRanges 00140 KSPIN_DATAFLOW_IN, // DataFlow 00141 KSPIN_COMMUNICATION_NONE, // Communication 00142 &KSNODETYPE_MICROPHONE, // Category 00143 NULL, // Name 00144 { 0 } // Reserved 00145 } 00146 }, 00147 00148 // CD_SOURCE - 3 00149 { 00150 0,0,0, // InstanceCount 00151 NULL, // AutomationTable 00152 { // KsPinDescriptor 00153 0, // InterfacesCount 00154 NULL, // Interfaces 00155 0, // MediumsCount 00156 NULL, // Mediums 00157 SIZEOF_ARRAY(PinDataRangePointersBridge), // DataRangesCount 00158 PinDataRangePointersBridge, // DataRanges 00159 KSPIN_DATAFLOW_IN, // DataFlow 00160 KSPIN_COMMUNICATION_NONE, // Communication 00161 &KSNODETYPE_CD_PLAYER, // Category 00162 NULL, // Name 00163 { 0 } // Reserved 00164 } 00165 }, 00166 00167 // LINEIN_SOURCE - 4 00168 { 00169 0,0,0, // InstanceCount 00170 NULL, // AutomationTable 00171 { // KsPinDescriptor 00172 0, // InterfacesCount 00173 NULL, // Interfaces 00174 0, // MediumsCount 00175 NULL, // Mediums 00176 SIZEOF_ARRAY(PinDataRangePointersBridge), // DataRangesCount 00177 PinDataRangePointersBridge, // DataRanges 00178 KSPIN_DATAFLOW_IN, // DataFlow 00179 KSPIN_COMMUNICATION_NONE, // Communication 00180 &KSNODETYPE_LINE_CONNECTOR, // Category 00181 NULL, // Name 00182 { 0 } // Reserved 00183 } 00184 }, 00185 00186 // AUX_SOURCE - 5 00187 { 00188 0,0,0, // InstanceCount 00189 NULL, // AutomationTable 00190 { // KsPinDescriptor 00191 0, // InterfacesCount 00192 NULL, // Interfaces 00193 0, // MediumsCount 00194 NULL, // Mediums 00195 SIZEOF_ARRAY(PinDataRangePointersBridge), // DataRangesCount 00196 PinDataRangePointersBridge, // DataRanges 00197 KSPIN_DATAFLOW_IN, // DataFlow 00198 KSPIN_COMMUNICATION_NONE, // Communication 00199 &KSNODETYPE_ANALOG_CONNECTOR, // Category 00200 NULL, // Name 00201 { 0 } // Reserved 00202 } 00203 }, 00204 00205 // DAC_SOURCE - 6 00206 { 00207 0,0,0, // InstanceCount 00208 NULL, // AutomationTable 00209 { // KsPinDescriptor 00210 0, // InterfacesCount 00211 NULL, // Interfaces 00212 0, // MediumsCount 00213 NULL, // Mediums 00214 SIZEOF_ARRAY(PinDataRangePointersBridge), // DataRangesCount 00215 PinDataRangePointersBridge, // DataRanges 00216 KSPIN_DATAFLOW_IN, // DataFlow 00217 KSPIN_COMMUNICATION_NONE, // Communication 00218 &KSNODETYPE_ANALOG_CONNECTOR, // Category 00219 &CMINAME_DAC, // Name 00220 { 0 } // Reserved 00221 } 00222 }, 00223 00224 // LINEOUT_DEST - 7 00225 { 00226 0,0,0, // InstanceCount 00227 NULL, // AutomationTable 00228 { // KsPinDescriptor 00229 0, // InterfacesCount 00230 NULL, // Interfaces 00231 0, // MediumsCount 00232 NULL, // Mediums 00233 SIZEOF_ARRAY(PinDataRangePointersBridge), // DataRangesCount 00234 PinDataRangePointersBridge, // DataRanges 00235 KSPIN_DATAFLOW_OUT, // DataFlow 00236 KSPIN_COMMUNICATION_NONE, // Communication 00237 &KSNODETYPE_SPEAKER, // Category 00238 NULL, // Name 00239 { 0 } // Reserved 00240 } 00241 }, 00242 00243 // WAVEIN_DEST - 8 00244 { 00245 0,0,0, // InstanceCount 00246 NULL, // AutomationTable 00247 { // KsPinDescriptor 00248 0, // InterfacesCount 00249 NULL, // Interfaces 00250 0, // MediumsCount 00251 NULL, // Mediums 00252 SIZEOF_ARRAY(PinDataRangePointersBridge), // DataRangesCount 00253 PinDataRangePointersBridge, // DataRanges 00254 KSPIN_DATAFLOW_OUT, // DataFlow 00255 KSPIN_COMMUNICATION_NONE, // Communication 00256 &KSCATEGORY_AUDIO, // Category 00257 NULL, // Name 00258 { 0 } // Reserved 00259 } 00260 }, 00261 00262 // SPDIF_AC3_SOURCE - 9 00263 { 00264 0,0,0, // InstanceCount 00265 NULL, // AutomationTable 00266 { // KsPinDescriptor 00267 0, // InterfacesCount 00268 NULL, // Interfaces 00269 0, // MediumsCount 00270 NULL, // Mediums 00271 SIZEOF_ARRAY(WavePinDataRangePointersAC3Bridge), // DataRangesCount 00272 WavePinDataRangePointersAC3Bridge, // DataRanges 00273 KSPIN_DATAFLOW_IN, // DataFlow 00274 KSPIN_COMMUNICATION_NONE, // Communication 00275 &KSCATEGORY_AUDIO, // Category 00276 NULL, // Name 00277 { 0 } // Reserved 00278 } 00279 }, 00280 00281 // SPDIF_AC3_DEST - 10 00282 { 00283 0,0,0, // InstanceCount 00284 NULL, // AutomationTable 00285 { // KsPinDescriptor 00286 0, // InterfacesCount 00287 NULL, // Interfaces 00288 0, // MediumsCount 00289 NULL, // Mediums 00290 SIZEOF_ARRAY(WavePinDataRangePointersAC3Bridge), // DataRangesCount 00291 WavePinDataRangePointersAC3Bridge, // DataRanges 00292 KSPIN_DATAFLOW_OUT, // DataFlow 00293 KSPIN_COMMUNICATION_NONE, // Communication 00294 NULL, // Category 00295 NULL, // Name 00296 { 0 } // Reserved 00297 } 00298 } 00299 }; 00300 00301 static PCPROPERTY_ITEM PropertiesVolume[] = 00302 { 00303 { 00304 &KSPROPSETID_Audio, 00305 KSPROPERTY_AUDIO_VOLUMELEVEL, 00306 KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_SET | KSPROPERTY_TYPE_BASICSUPPORT, 00307 (PCPFNPROPERTY_HANDLER)PropertyHandler_Level 00308 }, 00309 { 00310 &KSPROPSETID_Audio, 00311 KSPROPERTY_AUDIO_CPU_RESOURCES, 00312 KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT, 00313 (PCPFNPROPERTY_HANDLER)PropertyHandler_CpuResources 00314 } 00315 }; 00316 00317 DEFINE_PCAUTOMATION_TABLE_PROP(AutomationVolume,PropertiesVolume); 00318 00319 static PCPROPERTY_ITEM PropertiesLoudness[] = 00320 { 00321 { 00322 &KSPROPSETID_Audio, 00323 KSPROPERTY_AUDIO_LOUDNESS, 00324 KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_SET | KSPROPERTY_TYPE_BASICSUPPORT, 00325 (PCPFNPROPERTY_HANDLER)PropertyHandler_OnOff 00326 }, 00327 { 00328 &KSPROPSETID_Audio, 00329 KSPROPERTY_AUDIO_CPU_RESOURCES, 00330 KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT, 00331 (PCPFNPROPERTY_HANDLER)PropertyHandler_CpuResources 00332 } 00333 }; 00334 DEFINE_PCAUTOMATION_TABLE_PROP(AutomationLoudness,PropertiesLoudness); 00335 00336 static PCPROPERTY_ITEM PropertiesMute[] = 00337 { 00338 { 00339 &KSPROPSETID_Audio, 00340 KSPROPERTY_AUDIO_MUTE, 00341 KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_SET | KSPROPERTY_TYPE_BASICSUPPORT, 00342 (PCPFNPROPERTY_HANDLER)PropertyHandler_OnOff 00343 }, 00344 { 00345 &KSPROPSETID_Audio, 00346 KSPROPERTY_AUDIO_CPU_RESOURCES, 00347 KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT, 00348 (PCPFNPROPERTY_HANDLER)PropertyHandler_CpuResources 00349 } 00350 }; 00351 DEFINE_PCAUTOMATION_TABLE_PROP(AutomationMute,PropertiesMute); 00352 00353 static PCPROPERTY_ITEM PropertiesFilter[] = 00354 { 00355 { 00356 &KSPROPSETID_General, 00357 KSPROPERTY_GENERAL_COMPONENTID, 00358 KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT, 00359 (PCPFNPROPERTY_HANDLER)PropertyHandler_ComponentId 00360 }, 00361 { 00362 &KSPROPSETID_CMI, 00363 KSPROPERTY_CMI_GET, 00364 KSPROPERTY_TYPE_GET, 00365 (PCPFNPROPERTY_HANDLER)PropertyHandler_Private 00366 }, 00367 { 00368 &KSPROPSETID_CMI, 00369 KSPROPERTY_CMI_SET, 00370 KSPROPERTY_TYPE_SET, 00371 (PCPFNPROPERTY_HANDLER)PropertyHandler_Private 00372 } 00373 }; 00374 DEFINE_PCAUTOMATION_TABLE_PROP(AutomationFilter,PropertiesFilter); 00375 00376 00377 const VolumeTable VolTable[] = 00378 {// Node Reg Mask Shift max min step dbshift 00379 { KSNODE_TOPO_LINEOUT_VOLUME, 0x30, 0x1F, 3, 0, -62, 2, 1 }, 00380 { KSNODE_TOPO_WAVEOUT_VOLUME, 0x32, 0x1F, 3, 0, -62, 2, 1 }, 00381 { KSNODE_TOPO_CD_VOLUME, 0x36, 0x1F, 3, 0, -62, 2, 1 }, 00382 { KSNODE_TOPO_LINEIN_VOLUME, 0x38, 0x1F, 3, 0, -62, 2, 1 }, 00383 { KSNODE_TOPO_MICOUT_VOLUME, 0x3a, 0x1F, 3, 0, -62, 2, 1 } 00384 }; 00385 00386 static PCNODE_DESCRIPTOR TopologyNodes[] = 00387 {// Flags AutomationTable Type Name 00388 // 0 - WAVEOUT_VOLUME 00389 { 0, &AutomationVolume, &KSNODETYPE_VOLUME, &KSAUDFNAME_WAVE_VOLUME }, 00390 // 1 - WAVEOUT_MUTE 00391 { 0, &AutomationMute, &KSNODETYPE_MUTE, &KSAUDFNAME_WAVE_MUTE }, 00392 // 2 - MICOUT_VOLUME 00393 { 0, &AutomationVolume, &KSNODETYPE_VOLUME, &KSAUDFNAME_MIC_VOLUME }, 00394 // 3 - LINEOUT_MIX 00395 { 0, NULL, &KSNODETYPE_SUM, NULL }, 00396 // 4 - LINEOUT_VOLUME 00397 { 0, &AutomationVolume, &KSNODETYPE_VOLUME, &KSAUDFNAME_MASTER_VOLUME }, 00398 // 5 - WAVEIN_SUM 00399 { 0, &AutomationMute, &KSNODETYPE_SUM, &KSAUDFNAME_RECORDING_SOURCE }, 00400 // 6 - CD_VOLUME 00401 { 0, &AutomationVolume, &KSNODETYPE_VOLUME, &KSAUDFNAME_CD_VOLUME }, 00402 // 7 - LINEIN_VOLUME 00403 { 0, &AutomationVolume, &KSNODETYPE_VOLUME, &KSAUDFNAME_LINE_IN_VOLUME }, 00404 // 8 - AUX_VOLUME 00405 { 0, &AutomationVolume, &KSNODETYPE_VOLUME, &KSAUDFNAME_AUX_VOLUME }, 00406 // 9 - MICIN_VOLUME 00407 { 0, &AutomationVolume, &KSNODETYPE_VOLUME, &KSAUDFNAME_MIC_IN_VOLUME }, 00408 // 10 - MICIN_LOUDNESS 00409 { 0, &AutomationLoudness, &KSNODETYPE_LOUDNESS, &KSAUDFNAME_MICROPHONE_BOOST }, 00410 // 11 - MICOUT_LOUDNESS 00411 { 0, &AutomationLoudness, &KSNODETYPE_LOUDNESS, &KSAUDFNAME_MICROPHONE_BOOST }, 00412 // 12 - CD_MUTE 00413 { 0, &AutomationMute, &KSNODETYPE_MUTE, &KSAUDFNAME_CD_MUTE }, 00414 // 13 - LINEIN_MUTE 00415 { 0, &AutomationMute, &KSNODETYPE_MUTE, &KSAUDFNAME_LINE_MUTE }, 00416 // 14 - MICOUT_MUTE 00417 { 0, &AutomationMute, &KSNODETYPE_MUTE, &KSAUDFNAME_MIC_MUTE }, 00418 // 15 - AUX_MUTE 00419 { 0, &AutomationMute, &KSNODETYPE_MUTE, &KSAUDFNAME_AUX_MUTE }, 00420 // 16 - LINEIN_MUTE_IN 00421 { 0, &AutomationMute, &KSNODETYPE_MUTE, &KSAUDFNAME_LINE_MUTE }, 00422 // 17 - MIC_MUTE_IN 00423 { 0, &AutomationMute, &KSNODETYPE_MUTE, &KSAUDFNAME_MIC_MUTE }, 00424 // 18 - AUX_MUTE_IN 00425 { 0, &AutomationMute, &KSNODETYPE_MUTE, &KSAUDFNAME_CD_MUTE }, 00426 // 19 - CD_MUTE_IN 00427 { 0, &AutomationMute, &KSNODETYPE_MUTE, &KSAUDFNAME_AUX_MUTE }, 00428 // 20 - WAVEOUT_MUTE_IN 00429 { 0, &AutomationMute, &KSNODETYPE_MUTE, &KSAUDFNAME_WAVE_MUTE }, 00430 // 21 - IEC_5V 00431 { 0, &AutomationLoudness, &KSNODETYPE_LOUDNESS, &CMINAME_IEC_5V }, 00432 // 22 - IEC_OUT 00433 { 0, &AutomationLoudness, &KSNODETYPE_LOUDNESS, &CMINAME_IEC_OUT }, 00434 // 23 - IEC_INVERSE 00435 { 0, &AutomationLoudness, &KSNODETYPE_LOUDNESS, &CMINAME_IEC_INVERSE }, 00436 // 24 - IEC_MONITOR 00437 { 0, &AutomationLoudness, &KSNODETYPE_LOUDNESS, &CMINAME_IEC_MONITOR }, 00438 // 25 - IEC_SELECT 00439 { 0, &AutomationLoudness, &KSNODETYPE_LOUDNESS, &CMINAME_IEC_SELECT }, 00440 // 26 - SPDIF_AC3_MUTE - the WDM is truly braindamaged 00441 { 0, NULL, &KSNODETYPE_MUTE, NULL }, 00442 // 27 - SPDIF_AC3_MUX 00443 { 0, NULL, &KSNODETYPE_MUX, NULL }, 00444 // 28 - XCHG_FB 00445 { 0, &AutomationLoudness, &KSNODETYPE_LOUDNESS, &CMINAME_XCHG_FB }, 00446 // 29 - BASS2LINE 00447 { 0, &AutomationLoudness, &KSNODETYPE_LOUDNESS, &CMINAME_BASS2LINE }, 00448 // 30 - CENTER2LINE 00449 { 0, &AutomationLoudness, &KSNODETYPE_LOUDNESS, &CMINAME_CENTER2LINE }, 00450 // 31 - IEC_COPYRIGHT 00451 { 0, &AutomationLoudness, &KSNODETYPE_LOUDNESS, &CMINAME_IEC_COPYRIGHT }, 00452 // 32 - IEC_POLVALID 00453 { 0, &AutomationLoudness, &KSNODETYPE_LOUDNESS, &CMINAME_IEC_POLVALID }, 00454 // 33 - IEC_LOOP 00455 { 0, &AutomationLoudness, &KSNODETYPE_LOUDNESS, &CMINAME_IEC_LOOP }, 00456 // 34 - REAR2LINE 00457 { 0, &AutomationLoudness, &KSNODETYPE_LOUDNESS, &CMINAME_REAR2LINE }, 00458 // 35 - CENTER2MIC 00459 { 0, &AutomationLoudness, &KSNODETYPE_LOUDNESS, &CMINAME_CENTER2MIC }, 00460 // 36 - MASTER_MUTE_DUMMY 00461 { 0, &AutomationMute, &KSNODETYPE_MUTE, &KSAUDFNAME_MASTER_MUTE } 00462 }; 00463 00464 static PCCONNECTION_DESCRIPTOR MiniportConnections[] = 00465 {// FromNode, FromPin, ToNode, ToPin 00466 { PCFILTER_NODE, PIN_WAVEOUT_SOURCE, KSNODE_TOPO_WAVEOUT_VOLUME, 1 }, 00467 { KSNODE_TOPO_WAVEOUT_VOLUME, 0, KSNODE_TOPO_WAVEOUT_MUTE, 1 }, 00468 { KSNODE_TOPO_WAVEOUT_MUTE, 0, KSNODE_TOPO_LINEOUT_MIX, 1 }, 00469 00470 { PCFILTER_NODE, PIN_CD_SOURCE, KSNODE_TOPO_CD_VOLUME, 1 }, 00471 { KSNODE_TOPO_CD_VOLUME, 0, KSNODE_TOPO_CD_MUTE, 1 }, 00472 { KSNODE_TOPO_CD_MUTE, 0, KSNODE_TOPO_LINEOUT_MIX, 2 }, 00473 00474 { PCFILTER_NODE, PIN_LINEIN_SOURCE, KSNODE_TOPO_LINEIN_VOLUME, 1 }, 00475 { KSNODE_TOPO_LINEIN_VOLUME, 0, KSNODE_TOPO_LINEIN_MUTE, 1 }, 00476 { KSNODE_TOPO_LINEIN_MUTE, 0, KSNODE_TOPO_LINEOUT_MIX, 3 }, 00477 00478 { PCFILTER_NODE, PIN_AUX_SOURCE, KSNODE_TOPO_AUX_VOLUME, 1 }, 00479 { KSNODE_TOPO_AUX_VOLUME, 0, KSNODE_TOPO_AUX_MUTE, 1 }, 00480 { KSNODE_TOPO_AUX_MUTE, 0, KSNODE_TOPO_LINEOUT_MIX, 3 }, 00481 00482 { PCFILTER_NODE, PIN_MIC_SOURCE, KSNODE_TOPO_MICOUT_LOUDNESS, 1 }, 00483 { KSNODE_TOPO_MICOUT_LOUDNESS, 0, KSNODE_TOPO_MICOUT_VOLUME, 1 }, 00484 { KSNODE_TOPO_MICOUT_VOLUME, 0, KSNODE_TOPO_MICOUT_MUTE, 1 }, 00485 { KSNODE_TOPO_MICOUT_MUTE, 0, KSNODE_TOPO_LINEOUT_MIX, 4 }, 00486 00487 { PCFILTER_NODE, PIN_DAC_SOURCE, KSNODE_TOPO_IEC_MONITOR, 1 }, 00488 { KSNODE_TOPO_IEC_MONITOR, 0, KSNODE_TOPO_BASS2LINE, 1 }, 00489 { KSNODE_TOPO_BASS2LINE, 0, KSNODE_TOPO_CENTER2LINE, 1 }, 00490 { KSNODE_TOPO_CENTER2LINE, 0, KSNODE_TOPO_REAR2LINE, 1 }, 00491 { KSNODE_TOPO_REAR2LINE, 0, KSNODE_TOPO_CENTER2MIC, 1 }, 00492 { KSNODE_TOPO_CENTER2MIC, 0, KSNODE_TOPO_XCHG_FB, 1 }, 00493 { KSNODE_TOPO_XCHG_FB, 0, KSNODE_TOPO_WAVEOUT_VOLUME, 1 }, 00494 { KSNODE_TOPO_WAVEOUT_VOLUME, 0, KSNODE_TOPO_WAVEOUT_MUTE, 1 }, 00495 { KSNODE_TOPO_WAVEOUT_MUTE, 0, KSNODE_TOPO_LINEOUT_MIX, 5 }, 00496 00497 { KSNODE_TOPO_LINEOUT_MIX, 0, KSNODE_TOPO_IEC_OUT, 1 }, 00498 { KSNODE_TOPO_IEC_OUT, 0, KSNODE_TOPO_IEC_5V, 1 }, 00499 { KSNODE_TOPO_IEC_5V, 0, KSNODE_TOPO_MASTER_MUTE_DUMMY, 1 }, 00500 { KSNODE_TOPO_MASTER_MUTE_DUMMY, 0, KSNODE_TOPO_LINEOUT_VOLUME, 1 }, 00501 { KSNODE_TOPO_LINEOUT_VOLUME, 0, PCFILTER_NODE, PIN_LINEOUT_DEST }, 00502 00503 { PCFILTER_NODE, PIN_MIC_SOURCE, KSNODE_TOPO_MICIN_LOUDNESS, 1 }, 00504 { KSNODE_TOPO_MICIN_LOUDNESS, 0, KSNODE_TOPO_MICIN_VOLUME, 1 }, 00505 { KSNODE_TOPO_MICIN_VOLUME, 0, KSNODE_TOPO_MIC_MUTE_IN, 1 }, 00506 { KSNODE_TOPO_MIC_MUTE_IN, 0, KSNODE_TOPO_WAVEIN_SUM, 1 }, 00507 00508 { KSNODE_TOPO_LINEIN_VOLUME, 0, KSNODE_TOPO_LINEIN_MUTE_IN, 1 }, 00509 { KSNODE_TOPO_LINEIN_MUTE_IN, 0, KSNODE_TOPO_WAVEIN_SUM, 2 }, 00510 00511 { KSNODE_TOPO_CD_VOLUME, 0, KSNODE_TOPO_CD_MUTE_IN, 1 }, 00512 { KSNODE_TOPO_CD_MUTE_IN, 0, KSNODE_TOPO_WAVEIN_SUM, 3 }, 00513 00514 { KSNODE_TOPO_AUX_VOLUME, 0, KSNODE_TOPO_AUX_MUTE_IN, 1 }, 00515 { KSNODE_TOPO_AUX_MUTE_IN, 0, KSNODE_TOPO_WAVEIN_SUM, 4 }, 00516 00517 { PCFILTER_NODE, PIN_SPDIFIN_SOURCE, KSNODE_TOPO_WAVEOUT_MUTE_IN, 1 }, 00518 { KSNODE_TOPO_WAVEOUT_MUTE_IN, 0, KSNODE_TOPO_IEC_INVERSE, 1 }, 00519 { KSNODE_TOPO_IEC_INVERSE, 0, KSNODE_TOPO_IEC_SELECT, 1 }, 00520 { KSNODE_TOPO_IEC_SELECT, 0, KSNODE_TOPO_IEC_COPYRIGHT, 1 }, 00521 { KSNODE_TOPO_IEC_COPYRIGHT, 0, KSNODE_TOPO_IEC_POLVALID, 1 }, 00522 { KSNODE_TOPO_IEC_POLVALID, 0, KSNODE_TOPO_IEC_LOOP, 1 }, 00523 { KSNODE_TOPO_IEC_LOOP, 0, KSNODE_TOPO_WAVEIN_SUM, 5 }, 00524 00525 { KSNODE_TOPO_WAVEIN_SUM, 0, PCFILTER_NODE, PIN_WAVEIN_DEST }, 00526 00527 { PCFILTER_NODE, PIN_SPDIF_AC3_SOURCE, KSNODE_TOPO_SPDIF_AC3_MUTE, 1 }, 00528 { KSNODE_TOPO_SPDIF_AC3_MUTE, 0, KSNODE_TOPO_SPDIF_AC3_MUX, 1 }, 00529 { KSNODE_TOPO_SPDIF_AC3_MUX, 0, PCFILTER_NODE, PIN_SPDIF_AC3_DEST }, 00530 }; 00531 00532 00533 static PCFILTER_DESCRIPTOR MiniportFilterDescriptor = 00534 { 00535 0, // Version 00536 &AutomationFilter, // AutomationTable 00537 sizeof(PCPIN_DESCRIPTOR), // PinSize 00538 SIZEOF_ARRAY(MiniportPins), // PinCount 00539 MiniportPins, // Pins 00540 sizeof(PCNODE_DESCRIPTOR), // NodeSize 00541 SIZEOF_ARRAY(TopologyNodes), // NodeCount 00542 TopologyNodes, // Nodes 00543 SIZEOF_ARRAY(MiniportConnections), // ConnectionCount 00544 MiniportConnections, // Connections 00545 0, // CategoryCount 00546 NULL // Categories: NULL->use default (audio, render, capture) 00547 }; 00548 00549 00550 #endif Generated on Sat May 26 2012 04:27:13 for ReactOS by
1.7.6.1
|