43 lines
995 B
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|