mirror of
https://github.com/PredatH0r/ChanSort.git
synced 2026-05-09 00:47:10 +02:00
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:
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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(':');
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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"];
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -102,7 +102,7 @@ public class MedionSerializer : SerializerBase
|
||||
ch.SignalSource |= SignalSource.Analog;
|
||||
break;
|
||||
case 2:
|
||||
ch.SignalSource |= SignalSource.Digital;
|
||||
ch.SignalSource |= SignalSource.Dvb;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -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"]);
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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")
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 &&
|
||||
|
||||
@@ -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=">>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=">>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=">>cbDigital.Name" xml:space="preserve">
|
||||
<value>cbDigital</value>
|
||||
@@ -1127,7 +1127,4 @@ This step can be repeated as needed.</value>
|
||||
<data name=">>$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>
|
||||
@@ -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];
|
||||
|
||||
@@ -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 +
|
||||
|
||||
@@ -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 +
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user