private void TuneMosaicChannel(Channel channel)
{
//if (channel is ChannelDVBT)
//{
// ChannelDVBT channelDVBT = channel as ChannelDVBT;
// ClearGraph();
// this.currentGraphBuilder = new GraphBuilderBDA2(this.videoControl);
// DsDevice device;
// if (this.bdaTunerDevices.TryGetValue(channelDVBT.TunerDevice, out device))
// this.currentGraphBuilder.TunerDevice = device;
// if (this.bdaTunerDevices.TryGetValue(channelDVBT.CaptureDevice, out device))
// this.currentGraphBuilder.CaptureDevice = device;
// IDVBTuningSpace tuningSpace = (IDVBTuningSpace)new DVBTuningSpace();
// tuningSpace.put_UniqueName("DVBT TuningSpace");
// tuningSpace.put_FriendlyName("DVBT TuningSpace");
// tuningSpace.put_NetworkType(CLSID.DVBTNetworkProvider);
// tuningSpace.put_SystemType(DVBSystemType.Terrestrial);
// this.objTuningSpace = tuningSpace as ITuningSpace;
// this.objTuningSpace.CreateTuneRequest(out objTuneRequest);
// IDVBTuneRequest dvbTuneRequest = (IDVBTuneRequest)objTuneRequest;
// IDVBTLocator dvbtLocator = (IDVBTLocator)new DVBTLocator();
// dvbtLocator.put_CarrierFrequency((int)channelDVBT.Frequency);
// dvbTuneRequest.put_Locator(dvbtLocator as ILocator);
// dvbTuneRequest.put_ONID(channelDVBT.ONID);
// dvbTuneRequest.put_TSID(channelDVBT.TSID);
// dvbTuneRequest.put_SID(channelDVBT.SID);
// this.currentGraphBuilder.BuildGraphWithNoRenderer(this.objTuningSpace);
// this.epg.RegisterEvent(this.currentGraphBuilder.TransportInformationFilter as IConnectionPointContainer);
// this.currentGraphBuilder.SubmitTuneRequest(this.objTuneRequest);
// this.currentGraphBuilder.RunGraph();
// IMpeg2Data mpeg2Data = this.currentGraphBuilder.SectionsAndTables as IMpeg2Data;
// PSISection[] psis = PSISection.GetPSITable((int)PIDS.PAT, (int)TABLE_IDS.PAT, mpeg2Data);
// for (int i = 0; i < psis.Length; i++ )
// {
// ArrayList pmts = new ArrayList();
// PSISection psi = psis[i];
// if (psi != null && psi is PSIPAT)
// {
// PSIPAT pat = (PSIPAT)psi;
// Trace.WriteLineIf(trace.TraceVerbose, "PSI Table " + i + "/" + psis.Length + "\r\n");
// Trace.WriteLineIf(trace.TraceVerbose, pat.ToString());
// foreach (PSIPAT.Data program in pat.ProgramIds)
// {
// if (!program.IsNetworkPID)
// {
// PSISection[] psis2 = PSISection.GetPSITable(program.Pid, (int)TABLE_IDS.PMT, mpeg2Data);
// for (int i2 = 0; i2 < psis2.Length; i2++)
// {
// PSISection psi2 = psis2[i2];
// if (psi2 != null && psi2 is PSIPMT)
// {
// PSIPMT pmt = (PSIPMT)psi2;
// Trace.WriteLineIf(trace.TraceVerbose, "PSI Table " + i2 + "/" + psis2.Length + "\r\n");
// Trace.WriteLineIf(trace.TraceVerbose, pmt.ToString());
// PSIPMT.Data videoStream = pmt.GetStreamByType(STREAM_TYPES.STREAMTYPE_13818_VIDEO);
// if (videoStream != null)
// {
// if (channelDVBT.SID == pmt.TransportStreamId)
// pmts.Insert(0, pmt);
// else
// pmts.Add(pmt);
// }
// }
// }
// }
// //if (pmts.Count == 2) break;
// }
// }
// this.currentGraphBuilder.StopGraph();
// this.currentGraphBuilder.AddMosaicFilters(this.objTuningSpace, pmts);
// this.currentGraphBuilder.RunGraph();
// }
// this.currentChannel = channel;
// this.currentModeIsMosaic = true;
//}
}