Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
    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;
    }
Esempio n. 4
0
        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);
              }
        }
Esempio n. 5
0
 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);
     }
   }
 }
Esempio n. 6
0
        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);
            }
        }
Esempio n. 7
0
        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;
              }
        }
Esempio n. 8
0
    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);
        }
      }
    }