private void addEntry(ExtendedTextTableEntry newEntry) { foreach (ExtendedTextTableEntry oldEntry in TextEntries) { if (oldEntry.SourceID == newEntry.SourceID) { if (oldEntry.EventID == newEntry.EventID) { return; } if (oldEntry.EventID > newEntry.EventID) { TextEntries.Insert(TextEntries.IndexOf(oldEntry), newEntry); return; } } else { if (oldEntry.SourceID > newEntry.SourceID) { TextEntries.Insert(TextEntries.IndexOf(oldEntry), newEntry); return; } } } TextEntries.Add(newEntry); }
/// <summary> /// Parse the section. /// </summary> /// <param name="byteData">The MPEG2 section containing the section.</param> /// <param name="mpeg2Header">The MPEG2 header that preceedes the section.</param> public void Process(byte[] byteData, Mpeg2ExtendedHeader mpeg2Header) { lastIndex = mpeg2Header.Index; protocolVersion = (int)byteData[lastIndex]; lastIndex++; extendedTextEntry = new ExtendedTextTableEntry(); extendedTextEntry.Process(byteData, lastIndex); addEntry(extendedTextEntry); lastIndex += extendedTextEntry.Index; Validate(); }
private void processEvent(int frequency, int sourceID, EventInformationTableEntry eventEntry) { VirtualChannel channel = VirtualChannelTable.FindChannel(frequency, sourceID); if (channel == null) { return; } EPGEntry epgEntry = new EPGEntry(); epgEntry.EventID = eventEntry.EventID; if (eventEntry.EventName != null) { epgEntry.EventName = eventEntry.EventName.ToString().Replace("\0", ""); } else { epgEntry.EventName = "No Event Name"; } if (eventEntry.ETMLocation == 1 || eventEntry.ETMLocation == 2) { ExtendedTextTableEntry textEntry = ExtendedTextTable.FindEntry(sourceID, eventEntry.EventID); if (textEntry != null) { epgEntry.ShortDescription = textEntry.Text.ToString().Replace("\0", ""); } } epgEntry.StartTime = Utils.RoundTime(TimeOffsetEntry.GetAdjustedTime(eventEntry.StartTime)); epgEntry.Duration = Utils.RoundTime(eventEntry.Duration); epgEntry.EventCategory = getEventCategory(epgEntry.EventName, epgEntry.ShortDescription, eventEntry); epgEntry.ParentalRating = eventEntry.ParentalRating; epgEntry.ParentalRatingSystem = "VCHIP"; epgEntry.AudioQuality = eventEntry.AudioQuality; epgEntry.EPGSource = EPGSource.PSIP; channel.AddEPGEntry(epgEntry); }
private void addEntry(ExtendedTextTableEntry newEntry) { foreach (ExtendedTextTableEntry oldEntry in TextEntries) { if (oldEntry.SourceID == newEntry.SourceID) { if (oldEntry.EventID == newEntry.EventID) return; if (oldEntry.EventID > newEntry.EventID) { TextEntries.Insert(TextEntries.IndexOf(oldEntry), newEntry); return; } } else { if (oldEntry.SourceID > newEntry.SourceID) { TextEntries.Insert(TextEntries.IndexOf(oldEntry), newEntry); return; } } } TextEntries.Add(newEntry); }
/// <summary> /// Parse the section. /// </summary> /// <param name="byteData">The MPEG2 section containing the section.</param> /// <param name="mpeg2Header">The MPEG2 header that preceedes the section.</param> public void Process(byte[] byteData, Mpeg2ExtendedHeader mpeg2Header) { lastIndex = mpeg2Header.Index; protocolVersion = (int)byteData[lastIndex]; lastIndex++; extendedTextEntry = new ExtendedTextTableEntry(); extendedTextEntry.Process(byteData, lastIndex); addEntry(extendedTextEntry); lastIndex+= extendedTextEntry.Index; Validate(); }