protected void AddNetworkProviderFilter(ITuningSpace tuningSpace)
{
int hr = 0;
Guid genProviderClsId = new Guid("{B2F3A67C-29DA-4C78-8831-091ED509A475}");
Guid networkProviderClsId;
// First test if the Generic Network Provider is available (only on MCE 2005 + Update Rollup 2)
//if (FilterGraphTools.IsThisComObjectInstalled(genProviderClsId))
//{
// this.networkProvider = FilterGraphTools.AddFilterFromClsid(this.graphBuilder, genProviderClsId, "Generic Network Provider");
// hr = (this.networkProvider as ITuner).put_TuningSpace(tuningSpace);
// return;
//}
// Get the network type of the requested Tuning Space
hr = tuningSpace.get__NetworkType(out networkProviderClsId);
// Get the network type of the requested Tuning Space
if (networkProviderClsId == typeof(DVBTNetworkProvider).GUID)
{
this.networkProvider = FilterGraphTools.AddFilterFromClsid(this.graphBuilder, networkProviderClsId, "DVBT Network Provider");
}
else if (networkProviderClsId == typeof(DVBSNetworkProvider).GUID)
{
this.networkProvider = FilterGraphTools.AddFilterFromClsid(this.graphBuilder, networkProviderClsId, "DVBS Network Provider");
}
else if (networkProviderClsId == typeof(ATSCNetworkProvider).GUID)
{
this.networkProvider = FilterGraphTools.AddFilterFromClsid(this.graphBuilder, networkProviderClsId, "ATSC Network Provider");
}
else if (networkProviderClsId == typeof(DVBCNetworkProvider).GUID)
{
this.networkProvider = FilterGraphTools.AddFilterFromClsid(this.graphBuilder, networkProviderClsId, "DVBC Network Provider");
}
else
// Tuning Space can also describe Analog TV but this application don't support them
throw new ArgumentException("This application doesn't support this Tuning Space");
hr = (this.networkProvider as ITuner).put_TuningSpace(tuningSpace);
}