Various changes and refactorings to integrate the suggested changes from pull-request https://github.com/PredatH0r/ChanSort/pull/358 to handle the distinction between IP-antenna, IP-cable, IP-sat and DVB-T, DVB-C, DVB-S for Panasonic TVs.

- SignalSource.IP is now treated as a broadcast system (distinguishing Analog/Dvb/Ip) and no longer a broadcast medium (like antenna/cable/sat).
- SignalSource.Digital was renamed to DVB
This commit is contained in:
Horst Beham
2023-06-03 10:38:11 +02:00
parent 68d3fc4963
commit 3139f3d9f4
45 changed files with 211 additions and 148 deletions

View File

@@ -121,12 +121,13 @@ namespace ChanSort.Api
SignalSource s = 0;
var code = parts[5];
if (code[0] == 'A') s |= SignalSource.Analog;
else if (code[0] == 'D') s |= SignalSource.Digital;
else if (code[0] == 'D') s |= SignalSource.Dvb;
else if (code[0] == 'I') s |= SignalSource.Ip;
if (code[1] == 'A') s |= SignalSource.Antenna;
else if (code[1] == 'C') s |= SignalSource.Cable;
else if (code[1] == 'S') s |= SignalSource.Sat;
else if (code[1] == 'I') s |= SignalSource.IP;
else if (code[1] == 'I') s |= SignalSource.IpSat; // legacy value with the assumption that IP was mutually exclusive to antenna/cable/sat
if (code[2] == 'T') s |= SignalSource.Tv;
else if (code[2] == 'R') s |= SignalSource.Radio;
@@ -189,10 +190,16 @@ namespace ChanSort.Api
sb.Append("DVB-C");
else if ((signalSource & SignalSource.DvbS) == SignalSource.DvbS)
sb.Append("DVB-S");
else if ((signalSource & SignalSource.IP) == SignalSource.IP)
sb.Append("IP");
else if ((signalSource & SignalSource.Digital) == SignalSource.Digital)
else if ((signalSource & SignalSource.IpAntenna) == SignalSource.IpAntenna)
sb.Append("IP-T");
else if ((signalSource & SignalSource.IpCable) == SignalSource.IpCable)
sb.Append("IP-C");
else if ((signalSource & SignalSource.IpSat) == SignalSource.IpSat)
sb.Append("IP-S");
else if ((signalSource & SignalSource.Dvb) == SignalSource.Dvb)
sb.Append("DVB");
else if ((signalSource & SignalSource.Ip) == SignalSource.Ip)
sb.Append("IP");
else if ((signalSource & SignalSource.Analog) == SignalSource.Analog)
sb.Append("Analog");
@@ -272,17 +279,20 @@ namespace ChanSort.Api
{
var sb = new StringBuilder();
if ((signalSource & SignalSource.Analog) != 0) sb.Append('A');
else sb.Append('D');
else if ((signalSource & SignalSource.Dvb) != 0) sb.Append('D');
else if ((signalSource & SignalSource.Ip) != 0) sb.Append('I');
else sb.Append(' ');
if ((signalSource & SignalSource.Antenna) != 0) sb.Append('A');
else if ((signalSource & SignalSource.Cable) != 0) sb.Append('C');
else if ((signalSource & SignalSource.Sat) != 0) sb.Append('S');
else sb.Append("I");
else sb.Append(' '); // "I" is no longer exported as it is now considered a broadcast system option rather than a broadcast medium
if ((signalSource & SignalSource.Radio) != 0) sb.Append('R');
else if ((signalSource & SignalSource.Data) != 0) sb.Append('D');
else sb.Append('T');
sb.Append((int) signalSource >> 12);
sb.Append((int) signalSource >> 12); // preset list (Astra HD+, FreeSat, ...)
return sb.ToString();
}

View File

@@ -156,9 +156,9 @@ namespace ChanSort.Api
{
if ((signalSource & SignalSource.Analog) != 0)
return "A-0-" + (int)(freqInMhz * 20) + "-0";
if ((signalSource & SignalSource.MaskAntennaCableSat) == SignalSource.Sat)
if ((signalSource & SignalSource.MaskBcastMedium) == SignalSource.Sat)
return "S" + /*this.SatPosition + */ "-" + onid + "-" + tsid + "-" + sid;
if ((signalSource & SignalSource.MaskAntennaCableSat) == SignalSource.Antenna || (signalSource & SignalSource.MaskAntennaCableSat) == SignalSource.Cable)
if ((signalSource & SignalSource.MaskBcastMedium) == SignalSource.Antenna || (signalSource & SignalSource.MaskBcastMedium) == SignalSource.Cable)
{
// ChannelOrTransponder is needed for DVB-T where the same ONID+TSID+SID can be received from 2 different radio transmitters, but on different frequencies/channels
if (string.IsNullOrEmpty(channelOrTransponder))

View File

@@ -18,16 +18,16 @@ namespace ChanSort.Api
public ChannelList(SignalSource source, string caption)
{
if ((source & SignalSource.MaskAnalogDigital) == 0)
source |= SignalSource.MaskAnalogDigital;
if ((source & SignalSource.MaskAntennaCableSat) == 0)
source |= SignalSource.MaskAntennaCableSat;
if ((source & SignalSource.MaskBcastSystem) == 0)
source |= SignalSource.MaskBcastSystem;
if ((source & SignalSource.MaskBcastMedium) == 0)
source |= SignalSource.MaskBcastMedium;
if ((source & SignalSource.MaskTvRadioData) == 0)
source |= SignalSource.MaskTvRadioData;
this.SignalSource = source;
this.ShortCaption = caption;
this.FirstProgramNumber = (source & SignalSource.Digital) != 0 ? 1 : 0;
this.FirstProgramNumber = (source & SignalSource.Dvb) != 0 ? 1 : 0;
this.VisibleColumnFieldNames = DefaultVisibleColumns.ToList(); // create copy of default list, so it can be modified
}

View File

@@ -94,9 +94,9 @@ namespace ChanSort.Api
{
var listMask = list.SignalSource;
if ((searchMask & SignalSource.MaskAnalogDigital) != 0 && (listMask & SignalSource.MaskAnalogDigital & searchMask) == 0) // digital/analog
if ((searchMask & SignalSource.MaskBcastSystem) != 0 && (listMask & SignalSource.MaskBcastSystem & searchMask) == 0) // analog/dvb/ip
continue;
if ((searchMask & SignalSource.MaskAntennaCableSat) != 0 && (listMask & SignalSource.MaskAntennaCableSat & searchMask) == 0) // air/cable/sat/ip
if ((searchMask & SignalSource.MaskBcastMedium) != 0 && (listMask & SignalSource.MaskBcastMedium & searchMask) == 0) // air/cable/sat
continue;
if ((searchMask & SignalSource.MaskTvRadioData) != 0 && (listMask & SignalSource.MaskTvRadioData & searchMask) == 0) // tv/radio/data
continue;

View File

@@ -13,27 +13,29 @@ namespace ChanSort.Api
{
Any = 0,
// bit 0-1: analog/digital
MaskAnalogDigital = 0x0003,
// bit 0-1, 7: analog/dvb/ip
Analog = 0x0001,
Digital = 0x0002,
Dvb = 0x0002,
Ip = 0x0080,
MaskBcastSystem = Analog | Dvb | Ip,
// bit 3-7: AvInput/Antenna/Cable/Sat/IP
MaskAntennaCableSat = 0x00F8,
// bit 3-6: AvInput/Antenna/Cable/Sat
AvInput = 0x0008,
Antenna = 0x0010,
Cable = 0x0020,
Sat = 0x0040,
IP = 0x0080,
MaskBcastMedium = AvInput | Antenna | Cable | Sat,
MaskBcast = MaskBcastSystem | MaskBcastMedium,
MaskAdInput = MaskAnalogDigital | MaskAntennaCableSat,
// bit 8-10: TV/Radio/Data
MaskTvRadioData = 0x0700,
Tv = 0x0100,
Radio = 0x0200,
Data = 0x0400,
TvAndData = Tv|Data,
MaskTvRadioData = Tv | Radio | Data,
TvAndData = Tv | Data,
// bit 12-15: Preset list selector (AstraHD+, Freesat, TivuSat, CanalDigitalSat, ... for Samsung)
MaskProvider = 0xF000,
@@ -54,24 +56,32 @@ namespace ChanSort.Api
StandardCable = 0 << 12,
CablePrime = 1 << 12,
AnalogC = Analog + Cable,
AnalogT = Analog + Antenna,
AnalogCT = Analog + Cable + Antenna,
DvbC = Digital + Cable,
DvbT = Digital + Antenna,
DvbCT = Digital + Cable + Antenna,
DvbS = Digital + Sat,
SatIP = Digital + IP, // must NOT add Sat
// some predefined combinations
CablePrimeD = Digital + Cable + CablePrime,
HdPlusD = Digital + Sat + AstraHdPlus,
FreesatD = Digital + Sat + Freesat,
TivuSatD = Digital + Sat + TivuSat,
CanalDigitalSatD = Digital + Sat + CanalDigital,
DigitalPlusD = Digital + Sat + DigitalPlus,
CyfraPlusD = Digital + Sat + CyfraPlus,
AnalogC = Analog | Cable,
AnalogT = Analog | Antenna,
AnalogCT = Analog | Cable | Antenna,
DvbC = Dvb | Cable,
DvbT = Dvb | Antenna,
DvbCT = Dvb | Cable | Antenna,
DvbS = Dvb | Sat,
All = MaskAnalogDigital | MaskAntennaCableSat | MaskTvRadioData
IpAntenna = Ip | Antenna,
IpCable = Ip | Cable,
IpSat = Ip | Sat,
IpAll = Ip | Antenna | Cable | Sat,
CablePrimeD = Dvb | Cable | CablePrime,
HdPlusD = Dvb | Sat | AstraHdPlus,
FreesatD = Dvb | Sat | Freesat,
TivuSatD = Dvb | Sat | TivuSat,
CanalDigitalSatD = Dvb | Sat | CanalDigital,
DigitalPlusD = Dvb | Sat | DigitalPlus,
CyfraPlusD = Dvb | Sat | CyfraPlus,
All = MaskBcastSystem | MaskBcastMedium | MaskTvRadioData
}
#endregion

View File

@@ -309,7 +309,7 @@ namespace ChanSort.Loader.CmdbBin
foreach (var list in this.DataRoot.ChannelLists)
{
if ((list.SignalSource & (SignalSource.MaskAnalogDigital | SignalSource.MaskAntennaCableSat)) != sourceMask)
if ((list.SignalSource & (SignalSource.MaskBcastSystem | SignalSource.MaskBcastMedium)) != sourceMask)
continue;
foreach (var chan in list.Channels)
{

View File

@@ -67,13 +67,13 @@ namespace ChanSort.Loader.DBM
if (isDvbS)
{
allChannels.ShortCaption = "DVB-S";
allChannels.SignalSource &= ~SignalSource.MaskAntennaCableSat;
allChannels.SignalSource &= ~SignalSource.MaskBcastMedium;
allChannels.SignalSource |= SignalSource.Sat;
}
else
{
allChannels.ShortCaption = "DVB-C";
allChannels.SignalSource &= ~SignalSource.MaskAntennaCableSat;
allChannels.SignalSource &= ~SignalSource.MaskBcastMedium;
allChannels.SignalSource |= SignalSource.Cable;
allChannels.VisibleColumnFieldNames.Remove(nameof(ChannelInfo.Satellite));
}
@@ -178,7 +178,7 @@ namespace ChanSort.Loader.DBM
{
var serviceType = mapping.GetByte("offServiceType");
var src = serviceType == 1 ? SignalSource.Tv : serviceType == 2 ? SignalSource.Radio : SignalSource.Data;
src |= SignalSource.Digital;
src |= SignalSource.Dvb;
src |= isDvbS ? SignalSource.Sat : SignalSource.Cable;
var c = new ChannelInfo(src, i, -1, null);
dec.GetChannelNames(data, mapping.BaseOffset + sec.GetInt("offName"), sec.GetInt("lenName"), out var longName, out var shortName);

View File

@@ -18,7 +18,7 @@ namespace ChanSort.Loader.Enigma2
{
private static readonly Encoding utf8WithoutBom = new UTF8Encoding(false);
private ChannelList channels = new ChannelList(SignalSource.Digital, "All Channels");
private ChannelList channels = new ChannelList(SignalSource.Dvb, "All Channels");
private readonly List<string> favListFileNames = new();
private readonly Dictionary<string, Transponder> transponderByLamedbId = new();
@@ -181,7 +181,7 @@ namespace ChanSort.Loader.Enigma2
return;
var ch = new Channel();
ch.SignalSource = SignalSource.Digital;
ch.SignalSource = SignalSource.Dvb;
// line 1: SID:DvbNamespace:TSID:ONID:ServiceType:ServiceNumber
var parts = line.Split(':');

View File

@@ -373,7 +373,7 @@ namespace ChanSort.Loader.Grundig
continue;
if (ch.NewProgramNr < 0)
{
if ((ch.SignalSource & SignalSource.Digital) != 0)
if ((ch.SignalSource & SignalSource.Dvb) != 0)
ch.IsDeleted = true;
else
{
@@ -406,7 +406,7 @@ namespace ChanSort.Loader.Grundig
att["f"+i].Value = Math.Max(0, ch.GetPosition(i)).ToString(); // convert -1 to 0
att["skp"].InnerText = ch.Skip ? "1" : "0";
att["lck"].InnerText = ch.Lock ? "1" : "0";
if ((ch.SignalSource & SignalSource.Digital) != 0)
if ((ch.SignalSource & SignalSource.Dvb) != 0)
att["vis"].InnerText = ch.Hidden ? "0" : "1";
else
att["hid"].InnerText = ch.Hidden ? "1" : "0";

View File

@@ -210,7 +210,7 @@ public class HisSvlBinSerializer : SerializerBase
var broadcastDataOffset = svlMapping.Settings.GetInt("BroadcastSystemData");
var nameLength = svlMapping.Settings.GetInt("NameLength");
var source = channels.SignalSource & (SignalSource.MaskAnalogDigital | SignalSource.MaskAntennaCableSat);
var source = channels.SignalSource & (SignalSource.MaskBcastSystem | SignalSource.MaskBcastMedium);
for (int i = 0; i < channelCount; i++)
{
svlMapping.SetDataPtr(svlFileContent, off);
@@ -317,7 +317,7 @@ public class HisSvlBinSerializer : SerializerBase
ci.ServiceId = dvbMapping.GetWord("Sid");
}
if ((ci.SignalSource & (SignalSource.MaskAnalogDigital | SignalSource.MaskAntennaCableSat)) == SignalSource.DvbC)
if ((ci.SignalSource & (SignalSource.MaskBcastSystem | SignalSource.MaskBcastMedium)) == SignalSource.DvbC)
{
ci.OriginalNetworkId = dvbMapping.GetWord("DvbcOnid");
ci.TransportStreamId = dvbMapping.GetWord("DvbcTsid");
@@ -575,7 +575,7 @@ public class HisSvlBinSerializer : SerializerBase
svlMapping.BaseOffset = chan.RawDataOffset;
chan.Name = ReadString(svlMapping, "Name", nameLength);
if ((chan.SignalSource & SignalSource.Digital) == 0)
if ((chan.SignalSource & SignalSource.Dvb) == 0)
continue;
dvbMapping.BaseOffset = chan.RawDataOffset + dvbOffset;

View File

@@ -258,7 +258,7 @@ namespace ChanSort.Loader.Hisense.ServicelistDb
trans.Source = "DVB-T2";
break;
default:
trans.SignalSource = SignalSource.Digital;
trans.SignalSource = SignalSource.Dvb;
break;
}
@@ -425,7 +425,7 @@ left outer join {dbSchema.DvbServiceTable} digs on digs.ServiceId=s.Pid
ci.Source = list.ShortCaption;
if (ci.IsDeleted)
ci.OldProgramNr = -1;
if ((ci.SignalSource & (SignalSource.MaskAntennaCableSat | SignalSource.MaskAnalogDigital)) == SignalSource.DvbS)
if ((ci.SignalSource & (SignalSource.MaskBcastMedium | SignalSource.MaskBcastSystem)) == SignalSource.DvbS)
ci.Satellite = list.ShortCaption;
DataRoot.AddChannel(list, ci);

View File

@@ -15,7 +15,7 @@ namespace ChanSort.Loader.LG.Binary
public DtvChannel(int slot, DataMapping data) : base(data)
{
var signalSource = SignalSource.Digital;
var signalSource = SignalSource.Dvb;
signalSource |= data.GetByte(_SignalSource) == 1 ? SignalSource.Antenna : SignalSource.Cable;
this.InitCommonData(slot, signalSource, data);
this.InitDvbData(data);

View File

@@ -110,7 +110,7 @@ namespace ChanSort.Loader.LG.Binary
mapping.SetFlag(_Deleted, true);
mapping.SetByte("off" + _Moved, 0); //skip,lock,hide,moved
}
else if ((this.SignalSource&SignalSource.Digital) != 0)
else if ((this.SignalSource&SignalSource.Dvb) != 0)
{
mapping.SetFlag(_Moved, true);
}

View File

@@ -238,7 +238,7 @@ namespace ChanSort.Loader.GlobalClone
ch.TransportStreamId = (int)node["TSID"];
if ((ch.SignalSource & SignalSource.Digital) != 0)
if ((ch.SignalSource & SignalSource.Dvb) != 0)
{
var transSystem = (string) node["transSystem"];

View File

@@ -215,7 +215,7 @@ namespace ChanSort.Loader.GlobalClone
if (itemNode.LocalName != "ITEM")
continue;
++i;
var ch = new GcChannel<XmlNode>(analog ? SignalSource.AnalogCT | SignalSource.Tv : SignalSource.Digital, i, itemNode);
var ch = new GcChannel<XmlNode>(analog ? SignalSource.AnalogCT | SignalSource.Tv : SignalSource.Dvb, i, itemNode);
this.ParseChannelInfoNodes(itemNode, ch);
var list = this.DataRoot.GetChannelList(ch.SignalSource);

View File

@@ -261,7 +261,7 @@ class Serializer : SerializerBase
if (!this.channelsById.TryGetValue(id, out var c))
return;
c.ServiceId = int.Parse(a["Sid"].InnerText);
c.SignalSource |= SignalSource.Digital;
c.SignalSource |= SignalSource.Dvb;
var transponderId = int.Parse(a["TunerId"].InnerText);
var t = DataRoot.Transponder.TryGet(transponderId);

View File

@@ -9,7 +9,7 @@ namespace ChanSort.Loader.M3u
public int ExtInfTrackNameIndex { get; set; }
public int ExtInfParamIndex { get; set; }
public Channel(int index, int progNr, string name, List<string> lines) : base(SignalSource.IP, index, progNr, name)
public Channel(int index, int progNr, string name, List<string> lines) : base(SignalSource.IpAll, index, progNr, name)
{
this.Lines = lines;
}

View File

@@ -16,7 +16,7 @@ namespace ChanSort.Loader.M3u
class Serializer : SerializerBase
{
private static readonly Regex ExtInfTrackName = new Regex(@"^(?:(\d+). )?(.*)$");
private readonly ChannelList allChannels = new ChannelList(SignalSource.IP, "All");
private readonly ChannelList allChannels = new ChannelList(SignalSource.IpAll, "All");
private Encoding overrideEncoding;
private string newLine = "\r\n";

View File

@@ -102,7 +102,7 @@ public class MedionSerializer : SerializerBase
ch.SignalSource |= SignalSource.Analog;
break;
case 2:
ch.SignalSource |= SignalSource.Digital;
ch.SignalSource |= SignalSource.Dvb;
break;
}

View File

@@ -14,6 +14,14 @@ namespace ChanSort.Loader.Panasonic
internal int InternalProviderFlag2;
public int PhysicalChannel { get; set; }
/// <summary>
/// delivery number to seperate dvbc/dvbt/dvbs from cableip/antennaip/satip
/// </summary>
public int DeliveryType { get; set; }
#region ctor(IDataReader, ...)
internal DbChannel(IDataReader r, IDictionary<string, int> field, DataRoot dataRoot, Encoding encoding)
{
@@ -24,6 +32,7 @@ namespace ChanSort.Loader.Panasonic
{
}
int ntype = r.GetInt32(field["ntype"]);
this.DeliveryType = r.GetInt32(field["delivery_type"]);
if (ntype == 1)
{
this.SignalSource |= SignalSource.DvbS;
@@ -39,7 +48,16 @@ namespace ChanSort.Loader.Panasonic
else if (ntype == 14)
this.SignalSource |= SignalSource.AnalogC | SignalSource.Tv;
else if (ntype == 15)
this.SignalSource |= SignalSource.SatIP;
{
if (this.DeliveryType == 15)
this.SignalSource |= SignalSource.IpSat;
// else if (this.DeliveryType == 0) // currently no sample for IpAntenna found
// this.SignalSource |= SignalSource.IpAntenna;
else if (this.DeliveryType == 18)
this.SignalSource |= SignalSource.IpCable;
else
this.SignalSource |= SignalSource.IpSat;
}
byte[] buffer = new byte[1000];
int len = 0;
@@ -89,6 +107,11 @@ namespace ChanSort.Loader.Panasonic
{
this.FreqInMhz = r.IsDBNull(field["freq"]) ? 0 : (decimal)r.GetInt32(field["freq"]) / 1000;
this.ChannelOrTransponder = Tools.GetAnalogChannelNumber((int)this.FreqInMhz);
this.PhysicalChannel = r.GetInt32(field["physical_ch"]);
this.OriginalNetworkId = r.GetInt32(field["onid"]);
this.TransportStreamId = r.GetInt32(field["tsid"]);
this.ServiceId = r.GetInt32(field["sid"]);
}
#endregion
@@ -99,11 +122,14 @@ namespace ChanSort.Loader.Panasonic
this.SignalSource |= LookupData.Instance.IsRadioTvOrData(stype);
this.ServiceType = stype;
int freq = r.IsDBNull(field["freq"]) ? 0 : r.GetInt32(field["freq"]);
decimal freq = r.IsDBNull(field["freq"]) ? 0 : r.GetInt32(field["freq"]);
if ((this.SignalSource & SignalSource.Sat) != 0)
{
// SAT>IP has the freq value in units of 100Hz (so divide by 10k to get MHz), DVB>S has the value already in MHz
// ReSharper disable PossibleLossOfFraction
this.FreqInMhz = freq/10;
this.FreqInMhz = (int)(freq/10);
if (this.FreqInMhz > 15000) // must be some satellite frequency in kHz instead of MHz, so convert
this.FreqInMhz /= 1000;
// ReSharper restore PossibleLossOfFraction
if (deliveryLength >= 12)
@@ -161,6 +187,7 @@ namespace ChanSort.Loader.Panasonic
this.Source = (this.SignalSource & SignalSource.Antenna) != 0 ? "DVB-T" : "DVB-C";
}
this.PhysicalChannel = r.GetInt32(field["physical_ch"]);
this.OriginalNetworkId = r.GetInt32(field["onid"]);
this.TransportStreamId = r.GetInt32(field["tsid"]);
this.ServiceId = r.GetInt32(field["sid"]);

View File

@@ -5,6 +5,7 @@ using System.IO;
using System.Text;
using Microsoft.Data.Sqlite;
using ChanSort.Api;
using System.Runtime.Remoting.Channels;
namespace ChanSort.Loader.Panasonic
{
@@ -12,13 +13,15 @@ namespace ChanSort.Loader.Panasonic
class SvlSerializer : SerializerBase
{
private readonly ChannelList avbtChannels = new ChannelList(SignalSource.AnalogT, "Analog Antenna");
private readonly ChannelList avbcChannels = new ChannelList(SignalSource.AnalogC, "Analog Cable");
private readonly ChannelList dvbtChannels = new ChannelList(SignalSource.DvbT, "DVB-T");
private readonly ChannelList dvbcChannels = new ChannelList(SignalSource.DvbC, "DVB-C");
private readonly ChannelList dvbsChannels = new ChannelList(SignalSource.DvbS, "DVB-S");
private readonly ChannelList satipChannels = new ChannelList(SignalSource.SatIP, "SAT>IP");
private readonly ChannelList freesatChannels = new ChannelList(SignalSource.DvbS | SignalSource.Freesat, "Freesat");
private readonly ChannelList avbtChannels = new (SignalSource.AnalogT, "Analog Antenna");
private readonly ChannelList avbcChannels = new (SignalSource.AnalogC, "Analog Cable");
private readonly ChannelList dvbtChannels = new (SignalSource.DvbT, "DVB-T");
private readonly ChannelList dvbcChannels = new (SignalSource.DvbC, "DVB-C");
private readonly ChannelList dvbsChannels = new (SignalSource.DvbS, "DVB-S");
private readonly ChannelList antIpChannels = new(SignalSource.IpAntenna, "Antenna>IP");
private readonly ChannelList cabIpChannels = new(SignalSource.IpCable, "Cable>IP");
private readonly ChannelList satIpChannels = new (SignalSource.IpSat, "SAT>IP");
private readonly ChannelList freesatChannels = new (SignalSource.DvbS | SignalSource.Freesat, "Freesat");
private string workFile;
private CypherMode cypherMode;
@@ -54,7 +57,9 @@ namespace ChanSort.Loader.Panasonic
this.DataRoot.AddChannelList(this.dvbtChannels);
this.DataRoot.AddChannelList(this.dvbcChannels);
this.DataRoot.AddChannelList(this.dvbsChannels);
this.DataRoot.AddChannelList(this.satipChannels);
this.DataRoot.AddChannelList(this.antIpChannels);
this.DataRoot.AddChannelList(this.cabIpChannels);
this.DataRoot.AddChannelList(this.satIpChannels);
this.DataRoot.AddChannelList(this.freesatChannels);
// hide columns for fields that don't exist in Panasonic channel list
@@ -231,11 +236,11 @@ namespace ChanSort.Loader.Panasonic
private void ReadChannels(SqliteCommand cmd)
{
string[] fieldNames = { "rowid", "major_channel", "physical_ch","sname", "freq", "skip", "running_status","free_CA_mode","child_lock",
"profile1index","profile2index","profile3index","profile4index","stype", "onid", "tsid", "sid", "ntype", "ya_svcid", "delivery" };
"profile1index","profile2index","profile3index","profile4index","stype", "onid", "tsid", "sid", "ntype", "ya_svcid", "delivery", "delivery_type" };
const string sql = @"
select s.rowid,s.major_channel,s.physical_ch,cast(s.sname as blob),t.freq,s.skip,s.running_status,s.free_CA_mode,s.child_lock,
profile1index,profile2index,profile3index,profile4index,s.stype,s.onid,s.tsid,s.svcid,s.ntype,s.ya_svcid,delivery
profile1index,profile2index,profile3index,profile4index,s.stype,s.onid,s.tsid,s.svcid,s.ntype,s.ya_svcid,delivery,ifnull(t.delivery_type, 0)
from SVL s
left outer join TSL t on s.ntype=t.ntype and s.physical_ch=t.physical_ch and s.tsid=t.tsid
order by s.ntype,major_channel
@@ -309,7 +314,9 @@ order by s.ntype,major_channel
this.WriteChannels(cmd, this.dvbtChannels);
this.WriteChannels(cmd, this.dvbcChannels);
this.WriteChannels(cmd, this.dvbsChannels);
this.WriteChannels(cmd, this.satipChannels);
this.WriteChannels(cmd, this.antIpChannels);
this.WriteChannels(cmd, this.cabIpChannels);
this.WriteChannels(cmd, this.satIpChannels);
this.WriteChannels(cmd, this.freesatChannels);
trans.Commit();
@@ -327,7 +334,8 @@ order by s.ntype,major_channel
if (channelList.Channels.Count == 0)
return;
cmd.CommandText = "update SVL set major_channel=@progNr, sname=@sname, profile1index=@fav1, profile2index=@fav2, profile3index=@fav3, profile4index=@fav4, child_lock=@lock, skip=@skip where rowid=@rowid";
cmd.CommandText = "update SVL set major_channel=@progNr, sname=@sname, profile1index=@fav1, profile2index=@fav2, profile3index=@fav3, profile4index=@fav4, " +
"child_lock=@lock, skip=@skip, free_CA_mode=@encr where rowid=@rowid";
cmd.Parameters.Clear();
cmd.Parameters.Add("@rowid", SqliteType.Integer);
cmd.Parameters.Add("@progNr", SqliteType.Integer);
@@ -338,6 +346,7 @@ order by s.ntype,major_channel
cmd.Parameters.Add("@fav4", SqliteType.Integer);
cmd.Parameters.Add("@lock", SqliteType.Integer);
cmd.Parameters.Add("@skip", SqliteType.Integer);
cmd.Parameters.Add("@encr", SqliteType.Integer);
cmd.Prepare();
foreach (ChannelInfo channelInfo in channelList.Channels)
{
@@ -354,6 +363,7 @@ order by s.ntype,major_channel
cmd.Parameters["@fav" + (fav + 1)].Value = Math.Max(0, channel.GetPosition(fav+1));
cmd.Parameters["@lock"].Value = channel.Lock;
cmd.Parameters["@skip"].Value = channel.Skip;
cmd.Parameters["@encr"].Value = channel.Encrypted;
cmd.ExecuteNonQuery();
}
@@ -369,6 +379,13 @@ order by s.ntype,major_channel
cmd.ExecuteNonQuery();
}
}
// remove unassigned/deleted transponders from TSL table
// add. info: only digital transponders should be deleted as import
// generates error when no analog transponders are found
cmd.CommandText = "delete from TSL where onid<>0 and physical_ch not in (select physical_ch from SVL where physical_ch is not null)";
cmd.Parameters.Clear();
cmd.ExecuteNonQuery();
}
#endregion

View File

@@ -236,7 +236,7 @@ namespace ChanSort.Loader.Philips
throw LoaderException.Fail($"Invalid CRC in record {i} in {path}");
}
var ch = new Channel(list.SignalSource & SignalSource.MaskAntennaCableSat, i, progNr, channelName);
var ch = new Channel(list.SignalSource & SignalSource.MaskBcastMedium, i, progNr, channelName);
ch.Id = mapping.GetWord("offId"); // only relevant for ChannelMap45
if (chanLstBin.VersionMajor <= 11)
ch.FreqInMhz = (decimal) mapping.GetWord("offFreqTimes16") / 16;
@@ -244,7 +244,7 @@ namespace ChanSort.Loader.Philips
{
ch.FreqInMhz = mapping.GetDword("offFreq") / 1000;
ch.Encrypted = mapping.GetDword("offEncrypted") != 0;
ch.SignalSource |= mapping.GetDword("offIsDigital") == 0 ? SignalSource.Analog : SignalSource.Digital;
ch.SignalSource |= mapping.GetDword("offIsDigital") == 0 ? SignalSource.Analog : SignalSource.Dvb;
if (mapping.GetDword("offServiceType") == 2)
{
ch.SignalSource |= SignalSource.Radio;
@@ -477,7 +477,7 @@ namespace ChanSort.Loader.Philips
{
var transponderId = mapping.GetWord("offTransponderIndex");
var progNr = mapping.GetWord("offProgNr");
var ch = new Channel(list.SignalSource & SignalSource.MaskAntennaCableSat, recordIndex, progNr, "");
var ch = new Channel(list.SignalSource & SignalSource.MaskBcastMedium, recordIndex, progNr, "");
// deleted channels must be kept in the list because their records must also be physically reordered when saving the list
if (progNr == 0xFFFF || transponderId == 0xFFFF)
@@ -508,7 +508,7 @@ namespace ChanSort.Loader.Philips
}
else
{
ch.SignalSource |= mapping.GetWord("offIsDigital") == 0 ? SignalSource.Analog : SignalSource.Digital;
ch.SignalSource |= mapping.GetWord("offIsDigital") == 0 ? SignalSource.Analog : SignalSource.Dvb;
ch.Name = Encoding.Unicode.GetString(mapping.Data, mapping.BaseOffset + mapping.GetConst("offName", 0), mapping.GetConst("lenName", 0)).TrimEnd('\0');
ch.FreqInMhz = (decimal)mapping.GetDword("offFreq") / 1000;
ch.Encrypted = mapping.GetDword("offEncrypted") != 0;
@@ -603,9 +603,9 @@ namespace ChanSort.Loader.Philips
var queries = new[]
{
new Tuple<SignalSource,string,string>(SignalSource.Analog | (list.SignalSource & SignalSource.MaskAntennaCableSat), "AnalogTable",
new Tuple<SignalSource,string,string>(SignalSource.Analog | (list.SignalSource & SignalSource.MaskBcastMedium), "AnalogTable",
"select Dbindex, Frequency, 0, 0, 0, ChannelName, PresetNumber from AnalogTable order by Dbindex"),
new Tuple<SignalSource,string,string>(SignalSource.Digital | (list.SignalSource & SignalSource.MaskAntennaCableSat), "DigSrvTable",
new Tuple<SignalSource,string,string>(SignalSource.Dvb | (list.SignalSource & SignalSource.MaskBcastMedium), "DigSrvTable",
"select Dbindex, Frequency, OriginalNetworkId, Tsid, ServiceId, ChannelName, PresetNumber from DigSrvTable order by Dbindex")
};

View File

@@ -428,7 +428,7 @@ namespace ChanSort.Loader.Philips
if (!data.ContainsKey("UniqueID") || !int.TryParse(data["UniqueID"], out var uniqueId)) // UniqueId only exists in ChannelMap_105 and later
uniqueId = rowId;
var chan = new Channel(curList.SignalSource & SignalSource.MaskAdInput, rowId, uniqueId, setupNode);
var chan = new Channel(curList.SignalSource & SignalSource.MaskBcast, rowId, uniqueId, setupNode);
chan.OldProgramNr = -1;
chan.IsDeleted = false;
if (file.formatVersion == FormatVersion.RepairXml)
@@ -436,9 +436,9 @@ namespace ChanSort.Loader.Philips
else if (file.formatVersion == FormatVersion.ChannelMapXml)
this.ParseChannelMapXml(data, chan);
if ((chan.SignalSource & SignalSource.MaskAdInput) == SignalSource.DvbT)
if ((chan.SignalSource & SignalSource.MaskBcast) == SignalSource.DvbT)
chan.ChannelOrTransponder = LookupData.Instance.GetDvbtTransponder(chan.FreqInMhz).ToString();
else if ((chan.SignalSource & SignalSource.MaskAdInput) == SignalSource.DvbC)
else if ((chan.SignalSource & SignalSource.MaskBcast) == SignalSource.DvbC)
chan.ChannelOrTransponder = LookupData.Instance.GetDvbcChannelName(chan.FreqInMhz);
DataRoot.AddChannel(curList, chan);

View File

@@ -709,7 +709,7 @@ namespace ChanSort.Loader.Samsung.Scm
{
foreach (var list in this.DataRoot.ChannelLists)
{
if ((list.SignalSource & SignalSource.Digital) == 0)
if ((list.SignalSource & SignalSource.Dvb) == 0)
continue;
var listOfChannels = new List<ChannelInfo>(list.Channels);
foreach (var chan in listOfChannels)

View File

@@ -38,7 +38,7 @@ namespace ChanSort.Loader.Samsung.Zip
this.Polarity = tp.Polarity;
}
if ((this.SignalSource & SignalSource.Digital) != 0)
if ((this.SignalSource & SignalSource.Dvb) != 0)
this.ReadDvbData(r, field, loader, providers);
else
this.ReadAnalogData(r, field);

View File

@@ -299,7 +299,7 @@ namespace ChanSort.Loader.Samsung.Zip
private ChannelList CreateChannelList(SignalSource signalSource, string name)
{
var list = new ChannelList(signalSource, name);
if ((list.SignalSource & SignalSource.IP) != 0)
if ((list.SignalSource & SignalSource.Ip) != 0)
{
list.VisibleColumnFieldNames = new List<string>
{
@@ -314,8 +314,8 @@ namespace ChanSort.Loader.Samsung.Zip
private static SignalSource DetectSignalSource(IDbCommand cmd, FileType fileType)
{
if (fileType == FileType.ChannelDbIp)
return SignalSource.IP|SignalSource.Digital;
var signalSource = fileType == FileType.ChannelDbAnalog ? SignalSource.Analog : SignalSource.Digital;
return SignalSource.Ip;
var signalSource = fileType == FileType.ChannelDbAnalog ? SignalSource.Analog : SignalSource.Dvb;
cmd.CommandText = "select distinct chType from CHNL";
using var r = cmd.ExecuteReader();
if (r.Read())
@@ -538,7 +538,7 @@ namespace ChanSort.Loader.Samsung.Zip
using (var trans = conn.BeginTransaction())
{
using var cmdUpdateSrv = PrepareUpdateCommand(conn);
using var cmdDeleteSrv = PrepareDeleteCommand(conn, (channelList.SignalSource & SignalSource.Digital) != 0);
using var cmdDeleteSrv = PrepareDeleteCommand(conn, (channelList.SignalSource & SignalSource.Dvb) != 0);
using var cmdInsertFav = PrepareInsertFavCommand(conn);
using var cmdUpdateFav = PrepareUpdateFavCommand(conn);
using var cmdDeleteFav = PrepareDeleteFavCommand(conn);

View File

@@ -31,7 +31,7 @@ namespace ChanSort.Loader.SatcoDX
// 28: channel type
var type = line[28];
this.SignalSource = SignalSource.Digital | SignalSource.Sat | (type == 'T' ? SignalSource.Tv : type == 'R' ? SignalSource.Radio : 0);
this.SignalSource = SignalSource.Dvb | SignalSource.Sat | (type == 'T' ? SignalSource.Tv : type == 'R' ? SignalSource.Radio : 0);
this.ServiceTypeName = type == 'T' ? "TV" : type == 'R' ? "Radio" : type == 'D' ? "Data" : "Other";
// 29-32: broadcast system

View File

@@ -222,7 +222,7 @@ namespace ChanSort.Loader.Sony
{
foreach (var list in this.DataRoot.ChannelLists)
{
if ((list.SignalSource & (SignalSource.MaskAdInput | SignalSource.MaskProvider)) == signalSource)
if ((list.SignalSource & (SignalSource.MaskBcast | SignalSource.MaskProvider)) == signalSource)
list.ReadOnly = true;
}
}

View File

@@ -31,9 +31,9 @@ namespace ChanSort.Loader.TCL
AllKnown = Favorite|CustomProgNum|Hidden|Delete
}
private readonly ChannelList dvbT = new(SignalSource.Antenna | SignalSource.MaskTvRadioData|SignalSource.Digital, "DVB-T");
private readonly ChannelList dvbC = new(SignalSource.Cable | SignalSource.MaskTvRadioData | SignalSource.Digital, "DVB-C");
private readonly ChannelList dvbS = new(SignalSource.Sat | SignalSource.MaskTvRadioData | SignalSource.Digital, "DVB-S");
private readonly ChannelList dvbT = new(SignalSource.Antenna | SignalSource.MaskTvRadioData|SignalSource.Dvb, "DVB-T");
private readonly ChannelList dvbC = new(SignalSource.Cable | SignalSource.MaskTvRadioData | SignalSource.Dvb, "DVB-C");
private readonly ChannelList dvbS = new(SignalSource.Sat | SignalSource.MaskTvRadioData | SignalSource.Dvb, "DVB-S");
private string dbDir;
private string dtvFile;
private string satFile;
@@ -304,7 +304,7 @@ left outer join CurCIOPSerType c on c.u8DtvRoute=p.u8DtvRoute
oldProgNr = -1;
var name = r.GetString(2)?.TrimEnd(' ', '\0');
ChannelInfo channel = new ChannelInfo(SignalSource.Digital, handle, oldProgNr, name);
ChannelInfo channel = new ChannelInfo(SignalSource.Dvb, handle, oldProgNr, name);
channel.ShortName = r.GetString(3).TrimEnd(' ', '\0');
channel.ServiceId = r.GetInt32(4);
var vtype = r.GetInt32(5);

View File

@@ -108,7 +108,7 @@ namespace ChanSort.Loader.VisionEdge4K
sat.Name = r.GetString(1);
this.DataRoot.AddSatellite(sat);
var list = new ChannelList(SignalSource.Sat | SignalSource.Digital | SignalSource.MaskTvRadioData, sat.Name);
var list = new ChannelList(SignalSource.Sat | SignalSource.Dvb | SignalSource.MaskTvRadioData, sat.Name);
this.channels.Add(sat.Id, list);
this.DataRoot.AddChannelList(list);
}

View File

@@ -781,7 +781,7 @@ namespace ChanSort.Ui
if ((this.currentTvSerializer.Features.ChannelNameEdit & ChannelNameEditMode.Analog) != 0)
src |= SignalSource.Analog;
if ((this.currentTvSerializer.Features.ChannelNameEdit & ChannelNameEditMode.Digital) != 0)
src |= SignalSource.Digital;
src |= SignalSource.Dvb;
this.colName.OptionsColumn.AllowEdit = this.colOutName.OptionsColumn.AllowEdit = (channelList.SignalSource & src) != 0;
if (this.DataRoot.MixedSourceFavorites)
@@ -1654,30 +1654,30 @@ namespace ChanSort.Ui
if (col == this.colPrNr) return this.subListIndex > 0;
if (col == this.colChannelOrTransponder) return (source & SignalSource.Sat) == 0;
if (col == this.colShortName) return (source & SignalSource.Digital) != 0;
if (col == this.colEncrypted) return (source & SignalSource.Digital) != 0;
if (col == this.colServiceId) return (source & SignalSource.Digital) != 0;
if (col == this.colPcrPid) return (source & SignalSource.Digital) != 0;
if (col == this.colVideoPid) return (source & SignalSource.Digital) != 0;
if (col == this.colAudioPid) return (source & SignalSource.Digital) != 0;
if (col == this.colShortName) return (source & SignalSource.Dvb) != 0;
if (col == this.colEncrypted) return (source & SignalSource.Dvb) != 0;
if (col == this.colServiceId) return (source & SignalSource.Dvb) != 0;
if (col == this.colPcrPid) return (source & SignalSource.Dvb) != 0;
if (col == this.colVideoPid) return (source & SignalSource.Dvb) != 0;
if (col == this.colAudioPid) return (source & SignalSource.Dvb) != 0;
//if (col == this.colServiceType) return (source & SignalSource.Digital) != 0;
if (col == this.colServiceTypeName) return (source & SignalSource.Digital) != 0;
if (col == this.colTransportStreamId) return (source & SignalSource.Digital) != 0;
if (col == this.colNetworkName) return (source & SignalSource.Digital) != 0;
if (col == this.colNetworkOperator) return (source & SignalSource.Digital) != 0;
if (col == this.colProvider) return (source & SignalSource.Digital) != 0;
if (col == this.colServiceTypeName) return (source & SignalSource.Dvb) != 0;
if (col == this.colTransportStreamId) return (source & SignalSource.Dvb) != 0;
if (col == this.colNetworkName) return (source & SignalSource.Dvb) != 0;
if (col == this.colNetworkOperator) return (source & SignalSource.Dvb) != 0;
if (col == this.colProvider) return (source & SignalSource.Dvb) != 0;
if (col == this.colSatellite) return (source & SignalSource.Sat) != 0;
if (col == this.colNetworkId) return (source & SignalSource.Digital) != 0;
if (col == this.colSymbolRate) return (source & SignalSource.Digital) != 0;
if (col == this.colSkip) return (source & SignalSource.Digital) != 0 && this.DataRoot.CanSkip;
if (col == this.colLock) return (source & SignalSource.Digital) != 0 && this.DataRoot.CanLock;
if (col == this.colHidden) return (source & SignalSource.Digital) != 0 && this.DataRoot.CanHide;
if (col == this.colNetworkId) return (source & SignalSource.Dvb) != 0;
if (col == this.colSymbolRate) return (source & SignalSource.Dvb) != 0;
if (col == this.colSkip) return (source & SignalSource.Dvb) != 0 && this.DataRoot.CanSkip;
if (col == this.colLock) return (source & SignalSource.Dvb) != 0 && this.DataRoot.CanLock;
if (col == this.colHidden) return (source & SignalSource.Dvb) != 0 && this.DataRoot.CanHide;
if (col == this.colIndex) return col.Visible;
if (col == this.colUid) return col.Visible;
if (col == this.colDebug) return col.Visible;
if (col == this.colSignalSource) return col.Visible;
if (col == this.colLogicalIndex) return col.Visible;
if (col == this.colPolarity) return (source & SignalSource.Sat) != 0 || (source & SignalSource.IP) != 0;
if (col == this.colPolarity) return (source & SignalSource.Sat) != 0;
return true;
}

View File

@@ -269,7 +269,7 @@ Sollen die Programmnummern in fortlaufende Zahlen umgeändert werden?</value>
Mögliche Ursachen sind USB-Sticks, die mit NTFS formatiert sind (FAT32 sollte immer funktionieren) oder ein am TV durchgeführtes Firmwareupdate, ohne einen anschließenden neuen Suchlauf. Dabei kann dann unter Umständen die neue Firmware die alten Daten nicht korrekt exportieren.</value>
</data>
<data name="ReferenceListForm_AntennaCableSatIPAnalogDigitalTVRadio" xml:space="preserve">
<value>Antenne,Kabel,Sat,IP,Analog,Digital,TV,Radio,Daten</value>
<value>Antenne,Kabel,Sat,IP,Analog,DVB,TV,Radio,Daten</value>
</data>
<data name="ReferenceListForm_btnApply_ConflictHandling" xml:space="preserve">
<value>Wie soll vorgegangen werden, wenn eine Pr# bereits vergeben ist?</value>

View File

@@ -250,7 +250,7 @@ o bien se ha actualizado el firmware sin hacer una nueva búsqueda de canales.
(El nuevo firmware de la TV puede ser incapáz de procesar los datos existentes de canales durante la exportación.)</value>
</data>
<data name="ReferenceListForm_AntennaCableSatIPAnalogDigitalTVRadio" xml:space="preserve">
<value>Antena,Cable,Sat,IP,Analógico,Digital,TV,Radio,Data</value>
<value>Antena,Cable,Sat,IP,Analógico,DVB,TV,Radio,Data</value>
</data>
<data name="ReferenceListForm_btnApply_ConflictHandling" xml:space="preserve">
<value>¿Cómo desea proceder cuando un Pr# ya exista en la lista de destino?</value>

View File

@@ -259,7 +259,7 @@ A tipikus ok, ha az USB memóriakártya NTFS fájlrendszerű (próbáljon inkáb
(Előfordulhat, hogy az új szoftver a TV-ben nem tudja feldolgozni a régi csatornaadatokat az exportálás során.)</value>
</data>
<data name="ReferenceListForm_AntennaCableSatIPAnalogDigitalTVRadio" xml:space="preserve">
<value>Antenna,Kábel,Műhold,IP,Analóg,Digitális,TV,Rádió,Adat</value>
<value>Antenna,Kábel,Műhold,IP,Analóg,DVB,TV,Rádió,Adat</value>
</data>
<data name="ReferenceListForm_btnApply_ConflictHandling" xml:space="preserve">
<value>Hogyan szeretné kezelni, ha egy Pr# már szerepel a céllistában?</value>

View File

@@ -252,7 +252,7 @@ lub aktualizacje oprogramowania układowego bez uruchamiania nowego skanowania k
(Nowe oprogramowanie w telewizorze może nie być w stanie przetworzyć danych starego kanału podczas eksportu.)</value>
</data>
<data name="ReferenceListForm_AntennaCableSatIPAnalogDigitalTVRadio" xml:space="preserve">
<value>Antena, telewizja kablowa, satelitarna, IP, analogowa, cyfrowa, TV, radio, dane</value>
<value>Antena, telewizja kablowa, satelitarna, IP, analogowa, DVB, TV, radio, dane</value>
</data>
<data name="ReferenceListForm_btnApply_ConflictHandling" xml:space="preserve">
<value>Jak chcesz sobie z tym poradzić, gdy Pr# jest już zajęty na liście docelowej?</value>

View File

@@ -267,7 +267,7 @@ or firmware upgrades without running a new channel scan.
(The new software in the TV might be unable to process the old channel data during the export.)</value>
</data>
<data name="ReferenceListForm_AntennaCableSatIPAnalogDigitalTVRadio" xml:space="preserve">
<value>Antenna,Cable,Sat,IP,Analog,Digital,TV,Radio,Data</value>
<value>Antenna,Cable,Sat,IP,Analog,DVB,TV,Radio,Data</value>
</data>
<data name="ReferenceListForm_btnApply_ConflictHandling" xml:space="preserve">
<value>How do you want to handle it when a Pr# is already taken in the target list?</value>

View File

@@ -261,7 +261,7 @@ sau actualizări ale firmware-ului fără a efectua o nouă scanare a canalelor.
(Noul software din televizor ar putea să nu poată procesa datele vechi ale canalului în timpul exportului.)</value>
</data>
<data name="ReferenceListForm_AntennaCableSatIPAnalogDigitalTVRadio" xml:space="preserve">
<value>Antenă, Cablu, Sat, IP, analog, digital, TV, radio, data</value>
<value>Antenă, Cablu, Sat, IP, analog, DVB, TV, radio, data</value>
</data>
<data name="ReferenceListForm_btnApply_ConflictHandling" xml:space="preserve">
<value>Cum doriți să o gestionați atunci când un Pr # este deja luat în lista țintă?</value>

View File

@@ -259,7 +259,7 @@ veya yeni bir kanal taraması yapmadan ürün yazılımını güncelleyin.
(TV'deki yeni yazılım dışa aktarma sırasında eski kanal verilerini işleyemeyebilir.)</value>
</data>
<data name="ReferenceListForm_AntennaCableSatIPAnalogDigitalTVRadio" xml:space="preserve">
<value>Anten,Kablo,Uydu,IP,Analog,Digital,TV,Radyo,Veri</value>
<value>Anten,Kablo,Uydu,IP,Analog,DVB,TV,Radyo,Veri</value>
</data>
<data name="ReferenceListForm_btnApply_ConflictHandling" xml:space="preserve">
<value>Hedef listesinden bir Pr# alındığında bunu nasıl ele almak istersiniz?</value>

View File

@@ -0,0 +1,3 @@
DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v22.2, Version=22.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v22.2, Version=22.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.2, Version=22.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@@ -223,8 +223,8 @@ namespace ChanSort.Ui
var src = list?.SignalSource ?? 0;
var sb = new StringBuilder();
var sigSource = new[] {SignalSource.Antenna, SignalSource.Cable, SignalSource.Sat, SignalSource.IP, SignalSource.Analog, SignalSource.Digital, SignalSource.Tv, SignalSource.Radio, SignalSource.Data};
var infoText = Resources.ReferenceListForm_AntennaCableSatIPAnalogDigitalTVRadio.Split(',');
var sigSource = new[] {SignalSource.Antenna, SignalSource.Cable, SignalSource.Sat, SignalSource.Ip, SignalSource.Analog, SignalSource.Dvb, SignalSource.Tv, SignalSource.Radio, SignalSource.Data};
var infoText = Resources.ReferenceListForm_AntennaCableSatIPAnalogDigitalTVRadio.Split(',').Select(txt => txt.Trim()).ToArray();
var controls = new[] {cbAntenna, cbCable, cbSat, cbIp, cbAnalog, cbDigital, cbTv, cbRadio, cbData };
for (int i = 0, c = sigSource.Length; i < c; i++)
@@ -252,14 +252,13 @@ namespace ChanSort.Ui
var ss = ch.SignalSource;
if (source)
{
if ((ss & SignalSource.MaskAntennaCableSat) != 0 &&
!(this.cbAntenna.Checked && (ss & SignalSource.Antenna) != 0 || this.cbCable.Checked && (ss & SignalSource.Cable) != 0 || this.cbSat.Checked && (ss & SignalSource.Sat) != 0 ||
this.cbIp.Checked && (ss & SignalSource.IP) != 0))
if ((ss & SignalSource.MaskBcastMedium) != 0 &&
!(this.cbAntenna.Checked && (ss & SignalSource.Antenna) != 0 || this.cbCable.Checked && (ss & SignalSource.Cable) != 0 || this.cbSat.Checked && (ss & SignalSource.Sat) != 0))
return false;
}
if ((ss & SignalSource.MaskAnalogDigital) != 0 &&
!(this.cbAnalog.Checked && (ss & SignalSource.Analog) != 0 || this.cbDigital.Checked && (ss & SignalSource.Digital) != 0))
if ((ss & SignalSource.MaskBcastSystem) != 0 &&
!(this.cbAnalog.Checked && (ss & SignalSource.Analog) != 0 || this.cbDigital.Checked && (ss & SignalSource.Dvb) != 0) || this.cbIp.Checked && (ss & SignalSource.Ip) != 0)
return false;
if ((ss & SignalSource.MaskTvRadioData) != 0 &&

View File

@@ -590,7 +590,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
<value>1</value>
</data>
<data name="cbIp.Location" type="System.Drawing.Point, System.Drawing">
<value>368, 59</value>
<value>284, 85</value>
</data>
<data name="cbIp.Properties.Caption" xml:space="preserve">
<value>IP (Network)</value>
@@ -599,7 +599,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
<value>82, 18</value>
</data>
<data name="cbIp.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
<value>13</value>
</data>
<data name="&gt;&gt;cbIp.Name" xml:space="preserve">
<value>cbIp</value>
@@ -716,7 +716,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
<value>59, 13</value>
</data>
<data name="labelControl9.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
<value>10</value>
</data>
<data name="labelControl9.Text" xml:space="preserve">
<value>Signal Type:</value>
@@ -743,7 +743,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
<value>54, 18</value>
</data>
<data name="cbAnalog.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
<value>11</value>
</data>
<data name="&gt;&gt;cbAnalog.Name" xml:space="preserve">
<value>cbAnalog</value>
@@ -761,13 +761,13 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
<value>204, 84</value>
</data>
<data name="cbDigital.Properties.Caption" xml:space="preserve">
<value>Digital</value>
<value>DVB</value>
</data>
<data name="cbDigital.Size" type="System.Drawing.Size, System.Drawing">
<value>50, 18</value>
<value>40, 18</value>
</data>
<data name="cbDigital.TabIndex" type="System.Int32, mscorlib">
<value>13</value>
<value>12</value>
</data>
<data name="&gt;&gt;cbDigital.Name" xml:space="preserve">
<value>cbDigital</value>
@@ -1127,7 +1127,4 @@ This step can be repeated as needed.</value>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.2, Version=22.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="checkEdit1.Properties.Caption" xml:space="preserve">
<value>Data/Other</value>
</data>
</root>

View File

@@ -68,7 +68,7 @@ namespace Spike.PhilipsXml
lastNr = c.OldProgramNr;
hasFav |= c.GetOldPosition(1) != -1;
var s = c.SignalSource;
var i0 = (s & SignalSource.Antenna) != 0 ? 1 : (s & SignalSource.Cable) != 0 ? 2 : (s & SignalSource.Sat) != 0 ? 3 : (s & SignalSource.IP) != 0 ? 4 : 0;
var i0 = (s & SignalSource.Antenna) != 0 ? 1 : (s & SignalSource.Cable) != 0 ? 2 : (s & SignalSource.Sat) != 0 ? 3 : (s & SignalSource.Ip) != 0 ? 4 : 0;
var i1 = (s & SignalSource.Tv) != 0 ? 1 : (s & SignalSource.Radio) != 0 ? 2 : (s & SignalSource.Data) != 0 ? 3 : 0;
++chanCountBySrc[i0, i1];
++srcSum[i0];

View File

@@ -41,7 +41,7 @@ namespace Test.Loader.Samsung.Scm
SamsungPlugin plugin = new SamsungPlugin();
StringBuilder errors = new StringBuilder();
var list = LoaderTestBase.FindAllFiles("TestFiles_Samsung", "*.scm");
var list = LoaderTestBase.FindAllFiles("TestFiles\\TestFiles_Samsung", "*.scm");
var models = new Dictionary<string, string>();
foreach (var file in list)
{
@@ -67,7 +67,7 @@ namespace Test.Loader.Samsung.Scm
var hdplusChannelList = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.HdPlusD | ChanSort.Api.SignalSource.Tv);
var freesatChannelList = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.FreesatD | ChanSort.Api.SignalSource.Tv);
var tivusatChannelList = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.TivuSatD | ChanSort.Api.SignalSource.Tv);
var iptvChannelList = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.IP | SignalSource.Tv);
var iptvChannelList = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.Ip | SignalSource.Tv);
string key = serializer.Series +
"\t" + model +

View File

@@ -152,7 +152,7 @@ namespace Test.Loader.Samsung.Zip
TestUtils.DeploymentItem("ChanSort.Loader.Samsung\\ChanSort.Loader.Samsung.ini");
StringBuilder errors = new StringBuilder();
var list = LoaderTestBase.FindAllFiles("TestFiles_Samsung", "*.zip");
var list = LoaderTestBase.FindAllFiles("TestFiles\\TestFiles_Samsung", "*.zip");
var models = new Dictionary<string, string>();
foreach (var file in list)
{
@@ -179,7 +179,7 @@ namespace Test.Loader.Samsung.Zip
var hdplusChannelList = serializer.DataRoot.GetChannelList(SignalSource.HdPlusD | SignalSource.Tv);
var freesatChannelList = serializer.DataRoot.GetChannelList(SignalSource.FreesatD | SignalSource.Tv);
var tivusatChannelList = serializer.DataRoot.GetChannelList(SignalSource.TivuSatD | SignalSource.Tv);
var iptvChannelList = serializer.DataRoot.GetChannelList(SignalSource.IP | SignalSource.Tv);
var iptvChannelList = serializer.DataRoot.GetChannelList(SignalSource.Ip | SignalSource.Tv);
string key = serializer.FileFormatVersion +
"\t" + model +

View File

@@ -22,7 +22,7 @@ namespace Test.Loader
var plugin = new LgPlugin();
StringBuilder errors = new StringBuilder();
var list = FindAllFiles("TestFiles_LG", "*.tll");
var list = FindAllFiles("TestFiles\\TestFiles_LG", "*.tll");
var models = new Dictionary<string,string>();
var firmwareSize = new Dictionary<int, string>();
foreach(var file in list)