Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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();
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        /// <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();
        }