2025-07-17 17:08:19 +02:00

43 lines
995 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DVBServices;
using skyscraper5.Mpeg2;
namespace skyscraper8.EPGCollectorPort.SkyscraperSide.OpenTV
{
internal class OpenTvTitleParser : IPsiProcessor
{
private readonly OpenTvHandler _handler;
public OpenTvTitleParser(OpenTvHandler handler)
{
_handler = handler;
}
public void GatherPsi(PsiSection section, int sourcePid)
{
if (section.TableId >= 0xa0 && section.TableId <= 0xa7)
{
OpenTVTitleSection titleSection = OpenTVTitleSection.ProcessOpenTVTitleTable(section.GetData(),sourcePid,section.TableId);
if (titleSection != null)
{
_handler.OnTitles(sourcePid, section.TableId, titleSection);
}
}
else
{
if (section.TableId >= 0xa8 && section.TableId <= 0xab)
{
//Summaries.
return;
}
_handler.OnNonOpenTvTraffic(sourcePid,OpenTvExpectedDataType.Titles, section.TableId);
}
}
}
}