diff --git a/skyscraper8/Skyscraper/Scraper/ISkyscraperUiJunction.cs b/skyscraper8/Skyscraper/Scraper/ISkyscraperUiJunction.cs index 3a8a306..9c1fade 100644 --- a/skyscraper8/Skyscraper/Scraper/ISkyscraperUiJunction.cs +++ b/skyscraper8/Skyscraper/Scraper/ISkyscraperUiJunction.cs @@ -18,9 +18,11 @@ using skyscraper5.Skyscraper.Equipment; using skyscraper5.Skyscraper.IO.CrazycatStreamReader; using skyscraper5.Skyscraper.Net; using skyscraper5.src.Skyscraper.FrequencyListGenerator; +using skyscraper5.T2MI.Packets; using skyscraper5.Teletext.Wss; using skyscraper8.DvbNip; using skyscraper8.DvbNip.UiIntegration; +using skyscraper8.DvbSis; using skyscraper8.GSE; using skyscraper8.GSE.GSE; using skyscraper8.Ietf.FLUTE; @@ -28,6 +30,7 @@ using skyscraper8.Ses; using skyscraper8.Skyscraper.Drawing; using skyscraper8.Skyscraper.FrequencyListGenerator; using skyscraper8.Skyscraper.Scraper; +using skyscraper8.T2MI.Packets; namespace skyscraper5.Skyscraper.Scraper { @@ -218,6 +221,12 @@ namespace skyscraper5.Skyscraper.Scraper void OnAstraSgtList(SgtList list); void OnAstraSgtService(SgtService child); void NotifyTransportStreamId(int tsid, int nid); + void OnDvbSisCat(int sourcePid, SisCatContainer catContainer); + void OnDvbSisEit(int sourcePid, SisEitContainer eitContainer); + void OnDvbSisFti(int relatedPid, _0xF0_FramingTimingInformation fti); + void OnDvbSisTimestamp(int pid, _0x20_DvbT2Timestamp t2Timestamp); + void OnDvbSisPat(int sourcePid, SisPatContainer patContainer); + void OnDvbSisSdt(int sourcePid, SisSdtContainer sdtContainer); TaskQueue Tasks { get; set; } diff --git a/skyscraper8/Skyscraper/Scraper/SkyscraperContext.cs b/skyscraper8/Skyscraper/Scraper/SkyscraperContext.cs index 5b6b5fe..5b29bbe 100644 --- a/skyscraper8/Skyscraper/Scraper/SkyscraperContext.cs +++ b/skyscraper8/Skyscraper/Scraper/SkyscraperContext.cs @@ -3399,6 +3399,7 @@ namespace skyscraper5.Skyscraper.Scraper public void OnSisCat(int sourcePid, ushort sourceProgram, SisCatContainer catContainer) { + UiJunction?.OnDvbSisCat(sourcePid, catContainer); if (catContainer.CaDescriptors.Count > 0) { SkyscraperContext skyscraperContext = GetSisContext(sourceProgram); @@ -3428,15 +3429,18 @@ namespace skyscraper5.Skyscraper.Scraper { dsaci = new GZipStream(dsaci, CompressionMode.Decompress); } + MemoryStream ms = new MemoryStream(); + dsaci.CopyTo(ms); LogEvent(SkyscraperContextEvent.DvbSisDaughterSiteAdapterConfiguration, String.Format("Group ID = {0}, Version = {1}", currentDsaGroupId, versionNumber)); - ObjectStorage.StoreSisDsaci(CurrentNetworkId.Value, CurrentTransportStreamId.Value, currentDsaGroupId, versionNumber, dsaci); + ObjectStorage.StoreSisDsaci(CurrentNetworkId.Value, CurrentTransportStreamId.Value, currentDsaGroupId, versionNumber, ms); dsaci.Dispose(); } } public void OnSisEit(int sourcePid, ushort sourceProgram, SisEitContainer eitContainer) { + UiJunction?.OnDvbSisEit(sourcePid, eitContainer); SkyscraperContext skyscraperContext = GetSisContext(sourceProgram); if (eitContainer.NetworkId.HasValue) skyscraperContext.SetNetworkId(eitContainer.NetworkId.Value); @@ -3453,6 +3457,7 @@ namespace skyscraper5.Skyscraper.Scraper private _0xF0_FramingTimingInformation.Plp[][] _sisFtiData; public void OnSisFti(int relatedPid, _0xF0_FramingTimingInformation fti) { + UiJunction?.OnDvbSisFti(relatedPid, fti); if (_sisFtiFlags == null) { _sisFtiFlags = new bool[0x1fff]; @@ -3485,6 +3490,8 @@ namespace skyscraper5.Skyscraper.Scraper public void OnSisPat(int sourcePid, ushort sourceProgram, SisPatContainer patContainer) { + UiJunction?.OnDvbSisPat(sourcePid, patContainer); + SkyscraperContext skyscraperContext = GetSisContext(sourceProgram); if (patContainer.NetworkPid.HasValue) skyscraperContext.NetworkPidFromPat(patContainer.NetworkPid.Value); @@ -3506,6 +3513,7 @@ namespace skyscraper5.Skyscraper.Scraper public void OnSisSdt(int sourcePid, ushort sourceProgram, SisSdtContainer sdtContainer) { + UiJunction?.OnDvbSisSdt(sourcePid, sdtContainer); SkyscraperContext context = GetSisContext(sourceProgram); if (sdtContainer.NetworkId.HasValue) @@ -3534,6 +3542,8 @@ namespace skyscraper5.Skyscraper.Scraper private bool[] _sisTimestampFlags; public void OnSisTimestamp(int pid, _0x20_DvbT2Timestamp t2Timestamp) { + UiJunction?.OnDvbSisTimestamp(pid, t2Timestamp); + if (!CurrentNetworkId.HasValue) return;