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"); }
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; }
/* 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); }
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; }
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); }
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); }
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(','); }
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; }