Exemple #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 = "";
    }
 protected ScmChannelBase(DataMapping data, FavoritesIndexMode sortedFavorites)
 {
   this.mapping = data;
   this.rawData = data.Data;
   this.baseOffset = data.BaseOffset;
   this.mapping.DefaultEncoding = Utf16BigEndian;
   this.sortedFavorites = sortedFavorites;
 }
    public AnalogChannel(int slot, DataMapping data) : base(data)
    {
      this.InitCommonData(slot, SignalSource.AnalogCT, data);

      this.FreqInMhz = (decimal)data.GetWord(_Freqency) / 20;
      int channelAndBand = data.GetWord(_FreqBand);
      this.ChannelOrTransponder = ((channelAndBand>>8) == 0 ? "E" : "S") + (channelAndBand&0xFF).ToString("d2");
    }
Exemple #4
0
 public LnbConfig(DataMapping mapping, DataRoot dataRoot)
 {
   this.Id = mapping.GetByte("SettingId");
   if (this.Id == 0)
     return;
   int satIndex = mapping.GetByte("SatIndex");
   this.Satellite = dataRoot.Satellites[satIndex];
 }
 protected void InitDvbData(DataMapping data)
 {
   this.ServiceId = data.GetWord(_ServiceId);
   //this.PcrPid = data.GetWord(_PcrPid);
   this.VideoPid = data.GetWord(_VideoPid);
   this.AudioPid = data.GetWord(_AudioPid);
   this.OriginalNetworkId = data.GetWord(_OriginalNetworkId);
   this.TransportStreamId = data.GetWord(_TransportStreamId);
   this.ServiceType = data.GetByte(_ServiceType);
   this.ProgramNrPreset = data.GetWord(_ProgramNrPreset);
 }
 protected void InitCommonData(int slot, SignalSource signalSource, DataMapping data)
 {
   this.InUse = data.GetFlag(_InUse, true);
   this.RecordIndex = slot;
   this.RecordOrder = slot;
   this.SignalSource = signalSource;
   this.OldProgramNr = (short)data.GetWord(_ProgramNr);
   this.Name = data.GetString(_Name, data.Settings.GetInt("lenName"));
   this.Favorites = this.ParseRawFavorites();
   this.Lock = data.GetFlag(_Lock);
   this.Encrypted = data.GetFlag(_Encrypted);
   this.IsDeleted = data.GetFlag(_Deleted, false) || !data.GetFlag(_IsActive, true);
   if (this.IsDeleted)
     this.OldProgramNr = -1;
 }
Exemple #7
0
    /*
    offFavorites2 = 134
    offAudioPid2 = 182
    */

    public DtvChannel(int slot, DataMapping data) : base(data)
    {
      var signalSource = SignalSource.Digital;
      signalSource |= data.GetByte(_SignalSource) == 1 ? SignalSource.Antenna : SignalSource.Cable;
      this.InitCommonData(slot, signalSource, data);
      this.InitDvbData(data);

      int channel = data.GetByte(_ChannelOrTransponder);
      this.ChannelOrTransponder = channel.ToString("d2");
// ReSharper disable PossibleLossOfFraction
      this.FreqInMhz = (data.GetDword(_FrequencyLong)+10) / 1000;
// ReSharper restore PossibleLossOfFraction
      if (this.FreqInMhz == 0)
        this.FreqInMhz = LookupData.Instance.GetDvbtFrequeny(channel);
    }
    protected void InitCommonData(int slot, SignalSource signalSource, DataMapping data)
    {
      this.RecordIndex = slot;
      var nr = data.GetWord(_ProgramNr);
      this.SignalSource = signalSource | ((nr & 0x4000) == 0 ? SignalSource.Tv : SignalSource.Radio);
      this.OldProgramNr = (nr & 0x3FFF);

      this.ParseNames();

      this.Favorites = (Favorites)((data.GetByte(_Favorites2) & 0x3C) >> 2);
      this.Lock = data.GetFlag(_Lock);
      this.Skip = data.GetFlag(_Skip);
      this.Hidden = data.GetFlag(_Hide);
      this.Encrypted = data.GetFlag(_Encrypted);
      this.IsDeleted = data.GetFlag(_Deleted);
    }
Exemple #9
0
    internal static SatChannel CreateFromProxy(ChannelInfo proxy, DataRoot dataRoot, DataMapping mapping, int rawSize)
    {
      if (proxy.Transponder == null || proxy.Transponder.Satellite == null || proxy.Transponder.Satellite.LnbConfig == null)
        return null;

      byte[] rawData = mapping.Settings.GetBytes("newRecordTemplate");
      if (rawData == null)
        return null;

      mapping.SetDataPtr(rawData, 0);
      mapping.SetWord(_SatConfigIndex, proxy.Transponder.Satellite.LnbConfig.Id);
      mapping.SetWord(_TransponderIndex, proxy.Transponder.Id);
      mapping.SetWord(_ServiceId, proxy.ServiceId);
      var channel = new SatChannel(0, proxy.NewProgramNr, mapping, dataRoot);
      channel.Name = proxy.Name;
      return channel;
    }   
Exemple #10
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 = "";
    }
    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;
    }
    public SatTransponder(int index, DataMapping mapping, DataRoot dataRoot, int satIndexFactor) : base(index)
    {
      this.mapping = mapping;
      this.data = mapping.Data;
      this.offset = mapping.BaseOffset;

      this.firstChannelIndex = mapping.GetWord(_FirstChannelIndex);
      this.lastChannelIndex = mapping.GetWord(_LastChannelIndex);

      this.FrequencyInMhz = mapping.GetWord(_Frequency);
      this.OriginalNetworkId = mapping.GetWord(_OriginalNetworkId);
      this.TransportStreamId = mapping.GetWord(_TransportStreamId);
      this.symbolRate = mapping.GetWord(_SymbolRate);

      if (this.symbolRate%100 >= 95)
        this.symbolRate = (this.symbolRate/100 + 1)*100;
      // note: a correction factor is applied later after all transponders were loaded (*0.5, *1, *2)

      this.Satellite = dataRoot.Satellites.TryGet(mapping.GetByte(_SatIndex)/satIndexFactor);
    }
Exemple #13
0
    public SatChannel(int order, int slot, DataMapping data, DataRoot dataRoot) : base(data)
    {
      this.InUse = data.GetWord(_SatConfigIndex) != 0xFFFF;
      if (!InUse)
        return;

      this.InitCommonData(slot, SignalSource.DvbS, data);
      this.InitDvbData(data);

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

      this.Transponder = transponder;
      this.Satellite = sat.Name;
      this.SatPosition = sat.OrbitalPosition;
      this.RecordOrder = order;
      this.TransportStreamId = transponder.TransportStreamId;
      this.OriginalNetworkId = transponder.OriginalNetworkId;
      this.SymbolRate = transponder.SymbolRate;
      this.Polarity = transponder.Polarity;
      this.FreqInMhz = transponder.FrequencyInMhz;
    }
 protected void InitDvbData(DataMapping data, IDictionary<int, string> providerNames)
 {
   this.ShortName = data.GetString(_ShortName, data.Settings.GetInt("lenShortName"));
   this.ServiceId = data.GetWord(_ServiceId);
   //this.PcrPid = data.GetWord(_PcrPid);
   this.VideoPid = data.GetWord(_VideoPid);
   this.AudioPid = data.GetWord(_AudioPid);
   this.OriginalNetworkId = data.GetWord(_OriginalNetworkId);
   this.TransportStreamId = data.GetWord(_TransportStreamId);
   this.ServiceType = data.GetByte(_ServiceType);
   this.SymbolRate = data.GetWord(_SymbolRate);
   if (data.Settings.GetInt(_ServiceProviderId, -1) != -1)
   {
     int source = -1;
     if ((this.SignalSource & SignalSource.MaskProvider) == SignalSource.Freesat)
       source = 4;
     else if ((this.SignalSource & SignalSource.MaskProvider) == SignalSource.TivuSat)
       source = 6;
     else if ((this.SignalSource & SignalSource.Antenna) != 0)
       source = 0;
     else if ((this.SignalSource & SignalSource.Cable) != 0)
       source = 1;
     else if ((this.SignalSource & SignalSource.Sat) != 0)
       source = 3;
     int providerId = data.GetWord(_ServiceProviderId);
     this.Provider = providerNames.TryGet((source << 16) + providerId);
   }
   this.SignalSource |= LookupData.Instance.IsRadioOrTv(this.ServiceType);
 }
Exemple #15
0
        private void ReadConfigurationFromIniFile()
        {
            string iniFile = this.GetType().Assembly.Location.ToLower().Replace(".dll", ".ini");
              IniFile ini = new IniFile(iniFile);
              this.svlMapping = new DataMapping(ini.GetSection("SVL_Record"));
              this.svlMapping.DefaultEncoding = Encoding.UTF8;
              this.tslMapping = new DataMapping(ini.GetSection("TSL_Record"));
              this.tslMapping.DefaultEncoding = Encoding.UTF8;
              this.dvbMapping = new DataMapping(ini.GetSection("DVB_Data"));
              this.dvbMapping.DefaultEncoding = Encoding.UTF8;

              var sec = ini.GetSection("Columns");
              var fields = sec.GetString("DVB_T");
              if (fields != null)
            dvbtChannels.VisibleColumnFieldNames = fields.Trim().Split(',');
              fields = sec.GetString("DVB_C");
              if (fields != null)
            dvbcChannels.VisibleColumnFieldNames = fields.Trim().Split(',');
              fields = sec.GetString("DVB_S");
              if (fields != null)
            dvbsChannels.VisibleColumnFieldNames = fields.Trim().Split(',');
        }
Exemple #16
0
        private void MapAnalogChannel(DataMapping rawChannel, int slotIndex, ChannelList list, decimal freq)
        {
            bool isCable = (list.SignalSource & SignalSource.Cable) != 0;
              AnalogChannel ci = new AnalogChannel(slotIndex, isCable, rawChannel, freq, c.SortedFavorites);
              if (!ci.InUse)
            return;

              this.DataRoot.AddChannel(list, ci);
        }
 protected TllChannelBase(DataMapping data)
 {
   this.mapping = data;
   this.rawData = data.Data;
   this.baseOffset = data.BaseOffset;
 }