Exemplo n.º 1
0
    public SatChannel(int slot, SignalSource presetList, DataMapping data, DataRoot dataRoot, FavoritesIndexMode sortedFavorites, IDictionary<int,string> providerNames) :
      base(data, sortedFavorites)
    {
      this.InitCommonData(slot, SignalSource.DvbS | presetList, data);
      if (!this.InUse)
        return;

      this.InitDvbData(data, providerNames);

      int transponderIndex = data.GetWord(_TransponderIndex);
      Transponder transponder = dataRoot.Transponder.TryGet(transponderIndex);
      if (transponder == null)
      {
        var list = dataRoot.GetChannelList(this.SignalSource|SignalSource.Tv);
        dataRoot.Warnings.AppendFormat("{0} channel record #{1} (Pr# {2} \"{3}\") contains invalid transponder index {4}\r\n",
          list.ShortCaption, slot, this.OldProgramNr, this.Name, transponderIndex);
        return;
      }

      Satellite sat = transponder.Satellite;
      this.Satellite = sat.Name;
      this.SatPosition = sat.OrbitalPosition;
      this.Polarity = transponder.Polarity;
      this.SymbolRate = transponder.SymbolRate;
      this.FreqInMhz = transponder.FrequencyInMhz;
      this.ChannelOrTransponder = "";
    }
Exemplo n.º 2
0
        public DigitalChannel(int slot, SignalSource signalSource, DataMapping data,
                              IDictionary <int, decimal> transpFreq, FavoritesIndexMode sortedFavorites, IDictionary <int, string> providerNames) :
            base(data, sortedFavorites)
        {
            this.InitCommonData(slot, (SignalSource)((int)signalSource & ~(int)(SignalSource.TvAndRadio)), data);

            if (!this.InUse || this.OldProgramNr == 0)
            {
                return;
            }

            this.InitDvbData(data, providerNames);

            int     transp = data.GetByte(_ChannelOrTransponder);
            decimal freq   = transpFreq.TryGet(transp);

            if (freq == 0)
            {
                if ((this.SignalSource & SignalSource.Antenna) != 0)
                {
                    freq = transp * 8 + 306;
                }
                else if ((this.SignalSource & SignalSource.Cable) != 0)
                {
                    freq = transp * 8 + 106;
                }
            }

            this.ChannelOrTransponder = transp.ToString();
            this.FreqInMhz            = freq;
        }
Exemplo n.º 3
0
 protected ScmChannelBase(DataMapping data, FavoritesIndexMode sortedFavorites)
 {
     this.mapping    = data;
     this.rawData    = data.Data;
     this.baseOffset = data.BaseOffset;
     this.mapping.DefaultEncoding = Utf16BigEndian;
     this.sortedFavorites         = sortedFavorites;
 }
Exemplo n.º 4
0
 protected ScmChannelBase(DataMapping data, FavoritesIndexMode sortedFavorites)
 {
   this.mapping = data;
   this.rawData = data.Data;
   this.baseOffset = data.BaseOffset;
   this.mapping.DefaultEncoding = Utf16BigEndian;
   this.sortedFavorites = sortedFavorites;
 }
Exemplo n.º 5
0
        public DigitalChannel(int slot, SignalSource signalSource, DataMapping data, DataRoot dataRoot,
                              IDictionary <int, decimal> transpFreq, FavoritesIndexMode sortedFavorites, IDictionary <int, string> providerNames) :
            base(data, sortedFavorites)
        {
            // ToDo - ShiT
            this.InitCommonData(slot, signalSource & ~SignalSource.TVAndRadioAndData, data);

            if (!this.InUse)
            {
                return;
            }

            // "InUse" and "IsDeleted" are not always guessed correctly. If PrNr=0, the channel contains garbage
            if (this.OldProgramNr == 0)
            {
                this.InUse = false;
                return;
            }

            this.InitDvbData(data, providerNames);

            decimal freq   = 0;
            int     transp = data.GetByte(_ChannelOrTransponder);

            if (dataRoot.Transponder.TryGetValue(transp, out var tp))
            {
                this.Polarity = tp.Polarity;
            }
            freq = transpFreq.TryGet(transp);
            if (freq == 0 && tp != null)
            {
                freq = tp.FrequencyInMhz;
            }
            if (freq == 0)
            {
                if ((this.SignalSource & SignalSource.Antenna) != 0)
                {
                    freq = transp * 8 + 306;
                }
                else if ((this.SignalSource & SignalSource.Cable) != 0)
                {
                    freq = transp * 8 + 106;
                }
            }

            this.ChannelOrTransponder = transp.ToString();
            this.FreqInMhz            = freq;
        }
Exemplo n.º 6
0
 public ModelConstants(IniFile.Section iniSection)
 {
     this.series                = iniSection.Name.Substring(iniSection.Name.Length - 1);
     this.avbtChannelLength     = iniSection.GetInt("map-AirA");
     this.dvbtChannelLength     = iniSection.GetInt("map-AirD");
     this.dvbsChannelLength     = iniSection.GetInt("map-SateD");
     this.hdplusChannelLength   = iniSection.GetInt("map-AstraHDPlusD");
     this.cyfraPlusChannelSize  = iniSection.GetInt("map-CyfraPlusD");
     this.ptcLength             = iniSection.GetInt("PTC");
     this.dvbsSatelliteLength   = iniSection.GetInt("SatDataBase.dat");
     this.dvbsTransponderLength = iniSection.GetInt("TransponderDataBase.dat");
     this.avbtFineTuneLength    = iniSection.GetInt("FineTune");
     this.dvbtFineTuneLength    = iniSection.GetInt("FineTune_Digital");
     this.serviceProviderLength = iniSection.GetInt("ServiceProvider", 108);
     this.numFavorites          = iniSection.GetInt("Favorites");
     this.SortedFavorites       = (FavoritesIndexMode)iniSection.GetInt("SortedFavorites");
 }
Exemplo n.º 7
0
    public AnalogChannel(int slot, bool isCable, DataMapping mapping, decimal freq, FavoritesIndexMode sortedFavorites) :
      base(mapping, sortedFavorites)
    {
      var signalSource = SignalSource.Analog | SignalSource.Tv;
      signalSource |= isCable ? SignalSource.Cable : SignalSource.Antenna;
      this.InitCommonData(slot, signalSource, mapping);

      var floatFreq = mapping.GetFloat(_Frequency);
      if (!float.IsNaN(floatFreq) && floatFreq > 100 && floatFreq < 2000) // some files seem to have a value way off scale
        this.FreqInMhz = (decimal)floatFreq; // C,D,E series have the value in the data record
      if (this.FreqInMhz == 0) // for B series take it from the Tuning table
        this.FreqInMhz = freq;
      if (this.FreqInMhz == 0) // fallback since Freq is part of the UID and requires a unique value
        this.FreqInMhz = slot;

      this.ChannelOrTransponder = "";
    }
Exemplo n.º 8
0
    public DigitalChannel(int slot, SignalSource signalSource, DataMapping data,
      IDictionary<int, decimal> transpFreq, FavoritesIndexMode sortedFavorites, IDictionary<int, string> providerNames) :
      base(data, sortedFavorites)
    {
      this.InitCommonData(slot, (SignalSource)((int)signalSource & ~(int)(SignalSource.TvAndRadio)), data);

      if (!this.InUse || this.OldProgramNr == 0)
        return;

      this.InitDvbData(data, providerNames);

      int transp = data.GetByte(_ChannelOrTransponder);
      decimal freq = transpFreq.TryGet(transp);
      if (freq == 0)
        freq = LookupData.Instance.GetDvbtFrequeny(transp); // transp*8 + 106); // (106 = DVB-C; DVB-T=306?)

      this.ChannelOrTransponder = transp.ToString();
      this.FreqInMhz = freq;
    }
Exemplo n.º 9
0
 public ModelConstants(IniFile.Section iniSection)
 {
     this.series = iniSection.Name.Substring(iniSection.Name.Length - 1);
       this.avbtChannelLength = iniSection.GetInt("map-AirA");
       this.dvbtChannelLength = iniSection.GetInt("map-AirD");
       this.dvbsChannelLength = iniSection.GetInt("map-SateD");
       this.hdplusChannelLength = iniSection.GetInt("map-AstraHDPlusD");
       this.cyfraPlusChannelSize = iniSection.GetInt("map-CyfraPlusD");
       this.ptcLength = iniSection.GetInt("PTC");
       this.dvbsSatelliteLength = iniSection.GetInt("SatDataBase.dat");
       this.dvbsTransponderLength = iniSection.GetInt("TransponderDataBase.dat");
       this.avbtFineTuneLength = iniSection.GetInt("FineTune");
       this.dvbtFineTuneLength = iniSection.GetInt("FineTune_Digital");
       this.serviceProviderLength = iniSection.GetInt("ServiceProvider", 108);
       int numFavorites = iniSection.GetInt("Favorites");
       int mask = 0;
       for (int i = 0; i < numFavorites; i++)
     mask = (mask << 1) | 1;
       this.supportedFavorites = (Favorites)mask;
       this.SortedFavorites = (FavoritesIndexMode)iniSection.GetInt("SortedFavorites");
 }
Exemplo n.º 10
0
        public DigitalChannel(int slot, SignalSource signalSource, DataMapping data,
                              IDictionary <int, decimal> transpFreq, FavoritesIndexMode sortedFavorites, IDictionary <int, string> providerNames) :
            base(data, sortedFavorites)
        {
            this.InitCommonData(slot, (SignalSource)((int)signalSource & ~(int)(SignalSource.TvAndRadio)), data);

            if (!this.InUse || this.OldProgramNr == 0)
            {
                return;
            }

            this.InitDvbData(data, providerNames);

            int     transp = data.GetByte(_ChannelOrTransponder);
            decimal freq   = transpFreq.TryGet(transp);

            if (freq == 0)
            {
                freq = LookupData.Instance.GetDvbtFrequeny(transp); // transp*8 + 106); // (106 = DVB-C; DVB-T=306?)
            }
            this.ChannelOrTransponder = transp.ToString();
            this.FreqInMhz            = freq;
        }
Exemplo n.º 11
0
        public AnalogChannel(int slot, bool isCable, DataMapping mapping, decimal freq, FavoritesIndexMode sortedFavorites) :
            base(mapping, sortedFavorites)
        {
            var signalSource = SignalSource.Analog | SignalSource.TV;

            signalSource |= isCable ? SignalSource.Cable : SignalSource.Antenna;
            this.InitCommonData(slot, signalSource, mapping);

            var floatFreq = mapping.GetFloat(_Frequency);

            if (!float.IsNaN(floatFreq) && floatFreq > 100 && floatFreq < 2000) // some files seem to have a value way off scale
            {
                this.FreqInMhz = (decimal)floatFreq;                            // C,D,E series have the value in the data record
            }
            if (this.FreqInMhz == 0)                                            // for B series take it from the Tuning table
            {
                this.FreqInMhz = freq;
            }
            if (this.FreqInMhz == 0) // fallback since Freq is part of the UID and requires a unique value
            {
                this.FreqInMhz = slot;
            }

            this.ChannelOrTransponder = "";
        }
Exemplo n.º 12
0
        public SatChannel(int slot, SignalSource presetList, DataMapping data, DataRoot dataRoot, FavoritesIndexMode sortedFavorites, IDictionary <int, string> providerNames) :
            base(data, sortedFavorites)
        {
            this.InitCommonData(slot, SignalSource.DVBS | presetList, data);
            if (!this.InUse)
            {
                this.IsDeleted = true;
                return;
            }

            this.InitDvbData(data, providerNames);

            int         transponderIndex = data.GetWord(_TransponderIndex);
            Transponder transponder      = dataRoot.Transponder.TryGet(transponderIndex);

            if (transponder == null)
            {
                var list = dataRoot.GetChannelList(this.SignalSource | SignalSource.TV);
                dataRoot.Warnings.AppendFormat("{0} channel record #{1} (Pr# {2} \"{3}\") contains invalid transponder index {4}\r\n",
                                               list.ShortCaption, slot, this.OldProgramNr, this.Name, transponderIndex);
                return;
            }

            Satellite sat = transponder.Satellite;

            this.Satellite            = sat.Name;
            this.SatPosition          = sat.OrbitalPosition;
            this.Polarity             = transponder.Polarity;
            this.SymbolRate           = transponder.SymbolRate;
            this.FreqInMhz            = transponder.FrequencyInMhz;
            this.ChannelOrTransponder = "";
        }