private void processSummarySections(Collection <Mpeg2Section> sections) { OpenTVSummarySection.OpenTVSummarySections.Clear(); foreach (Mpeg2Section section in sections) { if (RunParameters.Instance.DebugIDs.Contains("DUMPOPENTVSUMMARYSECTIONS")) { Logger.Instance.Dump("Summary Section", section.Data, section.Length); } OpenTVSummarySection summarySection = OpenTVSummarySection.ProcessOpenTVSummaryTable(section.Data); if (summarySection != null) { if (summarySection.SummaryHeader.SummaryData != null) { OpenTVChannel channel = (OpenTVChannel)Channel.FindChannel(summarySection.SummaryHeader.ChannelID); if (channel != null) { foreach (OpenTVSummaryData summaryData in summarySection.SummaryHeader.SummaryData) { channel.AddSummaryData(summaryData); } } } /*OpenTVSummarySection.AddSection(summarySection);*/ /*summarySection.LogMessage();*/ } } }
private void processTitleSections(Collection <Mpeg2Section> sections) { foreach (Mpeg2Section section in sections) { /*Logger.Instance.Dump("Title Section", section.Data, section.Length);*/ OpenTVTitleSection titleSection = OpenTVTitleSection.ProcessOpenTVTitleTable(section.Data, section.PID, section.Table); if (titleSection != null) { if (titleSection.TitleHeader.TitleData != null) { OpenTVChannel channel = (OpenTVChannel)Channel.FindChannel(titleSection.TitleHeader.ChannelID); if (channel != null) { foreach (OpenTVTitleData titleData in titleSection.TitleHeader.TitleData) { channel.AddTitleData(titleData); } } } titleSection.LogMessage(); } } }
private void addByFlags(Collection <OpenTVChannel> sortedChannels, OpenTVChannel newChannel) { foreach (OpenTVChannel oldChannel in sortedChannels) { if (compareFlags(newChannel.Flags, oldChannel.Flags) < 0) { sortedChannels.Insert(sortedChannels.IndexOf(oldChannel), newChannel); return; } } sortedChannels.Add(newChannel); }
private void addByUserChannel(Collection <OpenTVChannel> sortedChannels, OpenTVChannel newChannel) { foreach (OpenTVChannel oldChannel in sortedChannels) { if (newChannel.UserChannel < oldChannel.UserChannel) { sortedChannels.Insert(sortedChannels.IndexOf(oldChannel), newChannel); return; } } sortedChannels.Add(newChannel); }
private void processOpenTVInfoDescriptor(OpenTVChannelInfoDescriptor openTVInfoDescriptor, int originalNetworkID, int transportStreamID, int bouquetID) { if (openTVInfoDescriptor.ChannelInfoEntries == null) { return; } if (eitChannels != 0) { OpenTVChannel.Channels.Clear(); eitChannels = 0; return; } foreach (OpenTVChannelInfoEntry channelInfoEntry in openTVInfoDescriptor.ChannelInfoEntries) { OpenTVChannel channel = new OpenTVChannel(); channel.OriginalNetworkID = originalNetworkID; channel.TransportStreamID = transportStreamID; channel.ServiceID = channelInfoEntry.ServiceID; channel.ChannelID = channelInfoEntry.ChannelID; channel.UserChannel = channelInfoEntry.UserNumber; channel.Type = channelInfoEntry.Type; channel.Flags = channelInfoEntry.Flags; channel.BouquetID = bouquetID; channel.Region = openTVInfoDescriptor.Region; OpenTVChannel.AddChannel(channel); openTVChannels++; Bouquet bouquet = Bouquet.FindBouquet(channel.BouquetID); if (bouquet == null) { bouquet = new Bouquet(channel.BouquetID, BouquetAssociationSection.FindBouquetName(channel.BouquetID)); Bouquet.AddBouquet(bouquet); } Region region = bouquet.FindRegion(channel.Region); if (region == null) { region = new Region(string.Empty, channel.Region); bouquet.AddRegion(region); } region.AddChannel(channel); } }
/// <summary> /// Process the bouquet data. /// </summary> /// <param name="sections">A collection of MPEG2 sections containing the bouquet data.</param> protected override void ProcessBouquetSections(Collection <Mpeg2Section> sections) { foreach (Mpeg2Section section in sections) { BouquetAssociationSection bouquetSection = BouquetAssociationSection.ProcessBouquetAssociationTable(section.Data); if (bouquetSection != null) { bool added = BouquetAssociationSection.AddSection(bouquetSection); if (added) { if (bouquetSection.TransportStreams != null) { foreach (TransportStream transportStream in bouquetSection.TransportStreams) { if (transportStream.Descriptors != null) { foreach (DescriptorBase descriptor in transportStream.Descriptors) { OpenTVChannelInfoDescriptor infoDescriptor = descriptor as OpenTVChannelInfoDescriptor; if (infoDescriptor != null) { if (infoDescriptor.ChannelInfoEntries != null) { foreach (OpenTVChannelInfoEntry channelInfoEntry in infoDescriptor.ChannelInfoEntries) { OpenTVChannel channel = new OpenTVChannel(); channel.OriginalNetworkID = transportStream.OriginalNetworkID; channel.TransportStreamID = transportStream.TransportStreamID; channel.ServiceID = channelInfoEntry.ServiceID; channel.ChannelID = channelInfoEntry.ChannelID; channel.UserChannel = channelInfoEntry.UserNumber; channel.Type = channelInfoEntry.Type; channel.Flags = channelInfoEntry.Flags; channel.BouquetID = bouquetSection.BouquetID; channel.Region = infoDescriptor.Region; OpenTVChannel.AddChannel(channel); Bouquet bouquet = Bouquet.FindBouquet(channel.BouquetID); if (bouquet == null) { bouquet = new Bouquet(channel.BouquetID, BouquetAssociationSection.FindBouquetName(channel.BouquetID)); Bouquet.AddBouquet(bouquet); } Region region = bouquet.FindRegion(channel.Region); if (region == null) { region = new Region(string.Empty, channel.Region); bouquet.AddRegion(region); } region.AddChannel(channel); } } } } } } } } } } }