private void _pmtFactory_TableChangeDetected(object sender, TransportStreamEventArgs e) { string message; lock (this) { var fact = sender as ProgramMapTableFactory; if (fact == null) { return; } var selectedPmt = ProgramMapTables?.FirstOrDefault(t => t.Pid == e.TsPid); if (selectedPmt != null) { ProgramMapTables?.Remove(selectedPmt); message = $"PMT {e.TsPid} refreshed"; } else { message = $"PMT {e.TsPid} added"; } ProgramMapTables?.Add(fact.ProgramMapTable); } OnTableChangeDetected(new TableChangedEventArgs() { Message = message, TablePid = e.TsPid, TableType = TableType.Pmt }); }
private void _sdtFactory_TableChangeDetected(object sender, TransportStreamEventArgs e) { try { var name = GetServiceDescriptorForProgramNumber(ProgramMapTables.FirstOrDefault().ProgramNumber); if (name == null) { } else { var message = string.Format("SDT {0} Refreshed: {1} - {2} (Version {3}, Section {4})", e.TsPid, name.ServiceName, name.ServiceProviderName, _sdtFactory.ServiceDescriptionTable.VersionNumber, _sdtFactory.ServiceDescriptionTable.SectionNumber); OnTableChangeDetected(new TableChangedEventArgs() { Message = message, TablePid = e.TsPid, TableType = TableType.Sdt }); } } catch (Exception ex) { Debug.WriteLine("Problem reading service name: " + ex.Message); } }
private void _patFactory_TableChangeDetected(object sender, TransportStreamEventArgs e) { _pmtFactories = new List <ProgramMapTableFactory>(16); ProgramMapTables = new List <ProgramMapTable>(16); _sdtFactory = new ServiceDescriptionTableFactory(); _sdtFactory.TableChangeDetected += _sdtFactory_TableChangeDetected; OnTableChangeDetected(new TableChangedEventArgs() { Message = "PAT refreshed - resetting all factories", TablePid = e.TsPid, TableType = TableType.Pat }); }
private void _sdtFactory_TableChangeDetected(object sender, TransportStreamEventArgs e) { try { var name = GetServiceDescriptorForProgramNumber(ProgramMapTables.FirstOrDefault()?.ProgramNumber); var message = $"SDT {e.TsPid} Refreshed: {name?.ServiceName} - {name?.ServiceProviderName} (Version {ServiceDescriptionTable?.VersionNumber}, Section {ServiceDescriptionTable?.SectionNumber})"; OnTableChangeDetected(new TableChangedEventArgs() { Message = message, TablePid = e.TsPid, TableType = TableType.Sdt }); } catch (Exception ex) { Debug.WriteLine("Problem reading service name: " + ex.Message); } }
private void _nitFactory_TableChangeDetected(object sender, TransportStreamEventArgs e) { string message; lock (this) { var fact = sender as NetworkInformationTableFactory; if (fact == null) { return; } message = $"NIT {e.TsPid} Refreshed: (Version {NetworkInformationTable?.VersionNumber}, Section {NetworkInformationTable?.SectionNumber})"; } OnTableChangeDetected(new TableChangedEventArgs() { Message = message, TablePid = e.TsPid, TableType = TableType.Nit }); }
private void _eitFactory_TableChangeDetected(object sender, TransportStreamEventArgs e) { string message; lock (this) { var fact = sender as EventInformationTableFactory; if (fact == null) { return; } message = $"EIT {e.TsPid} Refreshed:"; } OnTableChangeDetected(new TableChangedEventArgs() { Message = message, TablePid = e.TsPid, TableType = TableType.Eit }); }