Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

319 lines
8.3 KiB

/*++
Copyright (c) 1997-2000 Microsoft Corporation All Rights Reserved
Module Name:
wavtable.h
Abstract:
Declaration of wave miniport tables.
--*/
#ifndef _MSVAD_WAVTABLE_H_
#define _MSVAD_WAVTABLE_H_
//=============================================================================
static
KSDATARANGE_AUDIO PinDataRangesStream[] =
{
{
{
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
},
MAX_CHANNELS_PCM,
MIN_BITS_PER_SAMPLE_PCM,
MAX_BITS_PER_SAMPLE_PCM,
MIN_SAMPLE_RATE,
MAX_SAMPLE_RATE
},
};
static
PKSDATARANGE PinDataRangePointersStream[] =
{
PKSDATARANGE(&PinDataRangesStream[0])
};
//=============================================================================
static
KSDATARANGE PinDataRangesBridge[] =
{
{
sizeof(KSDATARANGE),
0,
0,
0,
STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
STATICGUIDOF(KSDATAFORMAT_SUBTYPE_ANALOG),
STATICGUIDOF(KSDATAFORMAT_SPECIFIER_NONE)
}
};
static
PKSDATARANGE PinDataRangePointersBridge[] =
{
&PinDataRangesBridge[0]
};
//=============================================================================
static
PCPIN_DESCRIPTOR MiniportPins[] =
{
// Wave In Streaming Pin (Capture) KSPIN_WAVE_CAPTURE_SINK
{
MAX_OUTPUT_STREAMS,
MAX_OUTPUT_STREAMS,
0,
NULL,
{
0,
NULL,
0,
NULL,
SIZEOF_ARRAY(PinDataRangePointersStream),
PinDataRangePointersStream,
KSPIN_DATAFLOW_OUT,
KSPIN_COMMUNICATION_SINK,
&KSCATEGORY_AUDIO,
&KSAUDFNAME_RECORDING_CONTROL,
0
}
},
// Wave In Bridge Pin (Capture - From Topology) KSPIN_WAVE_CAPTURE_SOURCE
{
0,
0,
0,
NULL,
{
0,
NULL,
0,
NULL,
SIZEOF_ARRAY(PinDataRangePointersBridge),
PinDataRangePointersBridge,
KSPIN_DATAFLOW_IN,
KSPIN_COMMUNICATION_NONE,
&KSCATEGORY_AUDIO,
NULL,
0
}
},
// Wave Out Streaming Pin (Renderer) KSPIN_WAVE_RENDER_SINK
{
MAX_INPUT_STREAMS,
MAX_INPUT_STREAMS,
0,
NULL,
{
0,
NULL,
0,
NULL,
SIZEOF_ARRAY(PinDataRangePointersStream),
PinDataRangePointersStream,
KSPIN_DATAFLOW_IN,
KSPIN_COMMUNICATION_SINK,
&KSCATEGORY_AUDIO,
&KSAUDFNAME_VOLUME_CONTROL,
0
}
},
// Wave Out Bridge Pin (Renderer) KSPIN_WAVE_RENDER_SOURCE
{
0,
0,
0,
NULL,
{
0,
NULL,
0,
NULL,
SIZEOF_ARRAY(PinDataRangePointersBridge),
PinDataRangePointersBridge,
KSPIN_DATAFLOW_OUT,
KSPIN_COMMUNICATION_NONE,
&KSCATEGORY_AUDIO,
NULL,
0
}
},
};
//=============================================================================
static
PCPROPERTY_ITEM PropertiesVolume[] =
{
{
&KSPROPSETID_Audio,
KSPROPERTY_AUDIO_VOLUMELEVEL,
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_SET | KSPROPERTY_TYPE_BASICSUPPORT,
PropertyHandler_Wave
},
{
&KSPROPSETID_Audio,
KSPROPERTY_AUDIO_CPU_RESOURCES,
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
PropertyHandler_Wave
}
};
DEFINE_PCAUTOMATION_TABLE_PROP(AutomationVolume, PropertiesVolume);
//=============================================================================
// TODO This needs more properties.
static
PCPROPERTY_ITEM PropertiesSuperMix[] =
{
{
&KSPROPSETID_Audio,
KSPROPERTY_AUDIO_CPU_RESOURCES,
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
PropertyHandler_Wave
}
};
DEFINE_PCAUTOMATION_TABLE_PROP(AutomationSuperMix, PropertiesSuperMix);
//=============================================================================
// TODO This needs more properties.
static
PCPROPERTY_ITEM PropertiesSrc[] =
{
{
&KSPROPSETID_Audio,
KSPROPERTY_AUDIO_SAMPLING_RATE,
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
PropertyHandler_Wave
},
{
&KSPROPSETID_Audio,
KSPROPERTY_AUDIO_CPU_RESOURCES,
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
PropertyHandler_Wave
}
};
DEFINE_PCAUTOMATION_TABLE_PROP(AutomationSrc, PropertiesSrc);
//=============================================================================
static
PCPROPERTY_ITEM PropertiesSum[] =
{
{
&KSPROPSETID_Audio,
KSPROPERTY_AUDIO_CPU_RESOURCES,
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
PropertyHandler_Wave
}
};
DEFINE_PCAUTOMATION_TABLE_PROP(AutomationSum, PropertiesSum);
//=============================================================================
static
PCNODE_DESCRIPTOR MiniportNodes[] =
{
// KSNODE_WAVE_ADC
{
0, // Flags
NULL, // AutomationTable
&KSNODETYPE_ADC, // Type
NULL // Name
},
// KSNODE_WAVE_DAC
{
0, // Flags
NULL, // AutomationTable
&KSNODETYPE_DAC, // Type
NULL // Name
},
// KSNODE_WAVE_VOLUME1
{
0, // Flags
&AutomationVolume, // AutomationTable
&KSNODETYPE_VOLUME, // Type
NULL // Name
},
// KSNODE_WAVE_SUPERMIX
{
0, // Flags
&AutomationSuperMix, // AutomationTable
&KSNODETYPE_SUPERMIX, // Type
NULL // Name
},
// KSNODE_WAVE_VOLUME2
{
0, // Flags
&AutomationVolume, // AutomationTable
&KSNODETYPE_VOLUME, // Type
NULL // Name
},
// KSNODE_WAVE_SRC
{
0, // Flags
&AutomationSrc, // AutomationTable
&KSNODETYPE_SRC, // Type
NULL // Name
},
// KSNODE_WAVE_SUM
{
0, // Flags
&AutomationSum, // AutomationTable
&KSNODETYPE_SUM, // Type
NULL // Name
},
};
//=============================================================================
static
PCCONNECTION_DESCRIPTOR MiniportConnections[] =
{
{ PCFILTER_NODE, KSPIN_WAVE_CAPTURE_SOURCE, KSNODE_WAVE_ADC, 1 },
{ KSNODE_WAVE_ADC, 0, PCFILTER_NODE, KSPIN_WAVE_CAPTURE_SINK },
{ PCFILTER_NODE, KSPIN_WAVE_RENDER_SINK, KSNODE_WAVE_VOLUME1, 1 },
{ KSNODE_WAVE_VOLUME1, 0, KSNODE_WAVE_SUPERMIX,1 },
{ KSNODE_WAVE_SUPERMIX, 0, KSNODE_WAVE_VOLUME2, 1 },
{ KSNODE_WAVE_VOLUME2, 0, KSNODE_WAVE_SRC, 1 },
{ KSNODE_WAVE_SRC, 0, KSNODE_WAVE_SUM, 1 },
{ KSNODE_WAVE_SUM, 0, KSNODE_WAVE_DAC, 1 },
{ KSNODE_WAVE_DAC, 0, PCFILTER_NODE, KSPIN_WAVE_RENDER_SOURCE },
};
//=============================================================================
static
PCFILTER_DESCRIPTOR MiniportFilterDescriptor =
{
0, // Version
NULL, // AutomationTable
sizeof(PCPIN_DESCRIPTOR), // PinSize
SIZEOF_ARRAY(MiniportPins), // PinCount
MiniportPins, // Pins
sizeof(PCNODE_DESCRIPTOR), // NodeSize
SIZEOF_ARRAY(MiniportNodes), // NodeCount
MiniportNodes, // Nodes
SIZEOF_ARRAY(MiniportConnections), // ConnectionCount
MiniportConnections, // Connections
0, // CategoryCount
NULL // Categories - NULL->use defaults (AUDIO RENDER CAPTURE)
};
#endif