public virtual void AddTransponder(Satellite sat, Transponder trans) { trans.Satellite = sat; if (this.Transponder.ContainsKey(trans.Id)) { this.Warnings.AppendFormat("Duplicate transponder data record for satellite #{0} with id {1}\r\n", sat?.Id, trans.Id); return; } sat?.Transponder.Add(trans.Id, trans); this.Transponder.Add(trans.Id, trans); }
public virtual void AddTransponder(Satellite sat, Transponder trans) { trans.Satellite = sat; if (this.transponder.ContainsKey(trans.Id)) { this.warnings.AppendFormat("Duplicate transponder data record for satellite #{0} with id {1}\r\n", sat?.Id, trans.Id); return; } if (sat != null) sat.Transponder.Add(trans.Id, trans); this.transponder.Add(trans.Id, trans); }
internal DbChannel(SQLiteDataReader r, IDictionary<string, int> field, DataRoot dataRoot, Dictionary<long, string> providers, Satellite sat, Transponder tp) { var chType = r.GetInt32(field["chType"]); this.SignalSource = DbSerializer.ChTypeToSignalSource(chType); this.RecordIndex = r.GetInt64(field["SRV.srvId"]); this.OldProgramNr = r.GetInt32(field["major"]); this.FreqInMhz = (decimal)r.GetInt32(field["freq"]) / 1000; this.ChannelOrTransponder = (this.SignalSource & SignalSource.DvbT) == SignalSource.DvbT ? LookupData.Instance.GetDvbtTransponder(this.FreqInMhz).ToString() : (this.SignalSource & SignalSource.DvbC) == SignalSource.DvbC ? LookupData.Instance.GetDvbcTransponder(this.FreqInMhz).ToString() : (this.SignalSource & SignalSource.Sat) == SignalSource.DvbS ? LookupData.Instance.GetAstraTransponder((int)this.FreqInMhz).ToString() : ""; this.Name = DbSerializer.ReadUtf16(r, 6); this.Hidden = r.GetBoolean(field["hidden"]); this.Encrypted = r.GetBoolean(field["scrambled"]); this.Lock = r.GetBoolean(field["lockMode"]); this.Skip = !r.GetBoolean(field["numSel"]); if (sat != null) { this.Satellite = sat.Name; this.SatPosition = sat.OrbitalPosition; } if (tp != null) { this.Transponder = tp; this.SymbolRate = tp.SymbolRate; } if ((this.SignalSource & SignalSource.Digital) != 0) this.ReadDvbData(r, field, dataRoot, providers); else this.ReadAnalogData(r, field); base.IsDeleted = this.OldProgramNr == -1; }
private void ReadTransponder(ZipFile zip, string fileName) { byte[] data = ReadFileContent(zip, fileName); if (data == null) return; int count = (data.Length-4)/c.dvbsTransponderLength; var mapping = this.transponderMappings.GetMapping(c.dvbsTransponderLength); for (int i=0; i<count; i++) { mapping.SetDataPtr(data, 4 + i * c.dvbsTransponderLength); if (mapping.GetByte("offMagicByte") == 0) continue; int transponderNr = (int)mapping.GetDword("offTransponderIndex"); if (transponderNr == 0) continue; int satelliteNr = (int)mapping.GetDword("offSatelliteIndex"); var sat = this.DataRoot.Satellites.TryGet(satelliteNr); if (sat == null) { DataRoot.Warnings.Append(string.Format("Transponder #{0} references invalid satellite #{1}", transponderNr, satelliteNr)); continue; } Transponder transponder = new Transponder(transponderNr); transponder.FrequencyInMhz = (uint)(mapping.GetDword("offFrequency")/1000); transponder.SymbolRate = (int) (mapping.GetDword("offSymbolRate")/1000); this.DataRoot.AddTransponder(sat, transponder); } }
private void ReadTransponders(SQLiteCommand cmd) { cmd.CommandText = "select satId, tpFreq, tpPol, tpSr, tpId from SAT_TP"; using (var r = cmd.ExecuteReader()) { while (r.Read()) { int satId = r.GetInt32(0); int freq = r.GetInt32(1); int id = satId * 1000000 + freq / 1000; if (this.DataRoot.Transponder.TryGet(id) != null) continue; Transponder tp = new Transponder(id); tp.FrequencyInMhz = (decimal)freq / 1000; tp.Number = r.GetInt32(4); tp.Polarity = r.GetInt32(2) == 0 ? 'H' : 'V'; tp.Satellite = this.DataRoot.Satellites.TryGet(satId); tp.SymbolRate = r.GetInt32(3); this.DataRoot.AddTransponder(tp.Satellite, tp); } } }
private void ParseChannel(string line) { var parts = line.Split(Separators); if (parts.Length < 2) { return; } int progNr; Transponder transponder = null; if (!int.TryParse(parts[0], out progNr)) { return; } if (parts.Length >= 3) { int transponderIndex; if (int.TryParse(parts[2], out transponderIndex)) { transponder = this.dataRoot.Transponder.TryGet(transponderIndex); if (transponder == null) { warnings.AppendFormat("Line #{0,4}: invalid transponder index {1}\r\n", this.lineNumber, transponderIndex); } } } string name = parts[1].Replace("\"", ""); if (name.Trim().Length == 0) { return; } int found = 0; var channels = channelList.GetChannelByName(name); if (transponder != null) { channels = channels.Where(chan => chan.Transponder == transponder); } foreach (var channel in channels) { if (channel.NewProgramNr != -1) { continue; } ++found; if (found > 1) { break; } channel.NewProgramNr = progNr; } if (found == 0) { this.warnings.AppendFormat("Line {0,4}: Pr# {1,4}, channel '{2}' could not be found\r\n", this.lineNumber, progNr, name); } if (found > 1) { this.warnings.AppendFormat("Line {0,4}: Pr# {1,4}, channel '{2}' found multiple times\r\n", this.lineNumber, progNr, name); } }
private void ReadTransponder(ref int off, int size, int table, int freqFactor) { int recordSize = tslMapping.Settings.GetInt("RecordSize"); if (size % recordSize != 0) throw new FileLoadException(ERR_badFileFormat); int count = size / recordSize; if (count == 0) return; for (int i = 0; i < count; i++) { tslMapping.SetDataPtr(tslFileContent, off); var id = (table << 16) + tslMapping.GetWord("ID"); var trans = new Transponder(id); trans.FrequencyInMhz = (decimal)tslMapping.GetDword("Frequency") / freqFactor; trans.SymbolRate = tslMapping.GetWord("SymbolRate"); this.transponder.Add(id, trans); off += recordSize; } }
private void LoadTslData(SQLiteCommand cmd, int tableNr, string joinTable, string joinFields, Action<Transponder, SQLiteDataReader, int> enhanceTransponderInfo) { if (!this.tableNames.Contains(joinTable.Replace("#", tableNr.ToString()))) return; cmd.CommandText = $"select tsl_#.tsl_rec_id, `t_desc.on_id`, `t_desc.ts_id`, `t_ref.satl_rec_id`, `t_desc.e_bcst_medium` {joinFields} " + $" from tsl_# inner join {joinTable} on {joinTable}.tsl_rec_id=tsl_#.tsl_rec_id"; cmd.CommandText = cmd.CommandText.Replace("#", tableNr.ToString()); using (var r = cmd.ExecuteReader()) { while (r.Read()) { var trans = new Transponder(r.GetInt32(0)); trans.OriginalNetworkId = r.GetInt32(1); trans.TransportStreamId = r.GetInt32(2); trans.Satellite = this.DataRoot.Satellites.TryGet(r.GetInt32(3)); enhanceTransponderInfo(trans, r, 5); this.DataRoot.AddTransponder(trans.Satellite, trans); } } }