From daeb9ffb1bec255554d162e38dc9cd6d8790815b Mon Sep 17 00:00:00 2001 From: hbeham Date: Sun, 14 Jul 2019 22:54:46 +0200 Subject: [PATCH] - fixed 200MHz offset for Samsung DVB-C channels - added support for Sony channel lists (read-only at the moment) - added option to disable check for updates --- source/ChanSort.Api/Lookup.csv | 63 +- source/ChanSort.Api/Model/LookupData.cs | 11 +- .../HisDbSerializer.cs | 2 + source/ChanSort.Loader.LG/DtvChannel.cs | 2 +- .../ChanSort.Loader.Samsung/DigitalChannel.cs | 7 +- .../ChanSort.Loader.Sony.csproj | 73 +++ source/ChanSort.Loader.Sony/Channel.cs | 22 + .../Properties/AssemblyInfo.cs | 36 ++ source/ChanSort.Loader.Sony/Serializer.cs | 572 ++++++++++++++++++ .../ChanSort.Loader.Sony/SerializerPlugin.cs | 16 + source/ChanSort.sln | 18 +- source/ChanSort/ChanSort.csproj | 4 + source/ChanSort/MainForm.Designer.cs | 18 +- source/ChanSort/MainForm.cs | 26 +- source/ChanSort/MainForm.de.resx | 6 + source/ChanSort/MainForm.resx | 15 +- .../ChanSort/Properties/Settings.Designer.cs | 12 + source/ChanSort/Properties/Settings.settings | 3 + source/ChanSort/app.config | 3 + source/Translation.xlsx | Bin 59038 -> 49310 bytes source/changelog.md | 5 + 21 files changed, 864 insertions(+), 50 deletions(-) create mode 100644 source/ChanSort.Loader.Sony/ChanSort.Loader.Sony.csproj create mode 100644 source/ChanSort.Loader.Sony/Channel.cs create mode 100644 source/ChanSort.Loader.Sony/Properties/AssemblyInfo.cs create mode 100644 source/ChanSort.Loader.Sony/Serializer.cs create mode 100644 source/ChanSort.Loader.Sony/SerializerPlugin.cs diff --git a/source/ChanSort.Api/Lookup.csv b/source/ChanSort.Api/Lookup.csv index b352789..47254ec 100644 --- a/source/ChanSort.Api/Lookup.csv +++ b/source/ChanSort.Api/Lookup.csv @@ -430,42 +430,33 @@ TRANSP;119;12722 TRANSP;120;12728 DVBC;kHz;Channel -DVBC;50500;2 -DVBC;57500;3 -DVBC;64500;4 -DVBC;71500;S 01 -DVBC;78500;S 02 -DVBC;85500;S 03 -DVBC;107500;SE 1 -DVBC;113000;SE 2 -DVBC;114500;SE 2 -DVBC;121000;SE 3 -DVBC;121500;SE 3 -DVBC;128500;SE 4 -DVBC;135500;SE 5 -DVBC;142500;SE 6 -DVBC;149500;SE 7 -DVBC;156500;SE 8 -DVBC;163500;SE 9 -DVBC;170500;SE 10 -DVBC;177500;5 -DVBC;184500;6 -DVBC;191500;7 -DVBC;198500;8 -DVBC;205500;9 -DVBC;212500;10 -DVBC;219500;11 -DVBC;226500;12 -DVBC;233500;SE 11 -DVBC;240500;SE 12 -DVBC;247500;SE 13 -DVBC;254500;SE 14 -DVBC;261500;SE 15 -DVBC;268500;SE 16 -DVBC;275500;SE 17 -DVBC;282500;SE 18 -DVBC;289500;SE 19 -DVBC;296500;SE 20 +DVBC;73000;D73 +DVBC;81000;D81 +DVBC;106000;SE 1 +DVBC;114000;SE 2 +DVBC;123000;SE 3 +DVBC;130000;SE 4 +DVBC;138000;SE 5 +DVBC;146000;SE 6 +DVBC;154000;SE 7 +DVBC;162000;SE 8 +DVBC;170000;SE 9 +DVBC;178000;5 +DVBC;186000;6 +DVBC;194000;7 +DVBC;202000;8 +DVBC;210000;9 +DVBC;218000;10 +DVBC;226000;11 +DVBC;234000;SE 11 +DVBC;242000;SE 12 +DVBC;250000;SE 13 +DVBC;258000;SE 14 +DVBC;266000;SE 15 +DVBC;274000;SE 16 +DVBC;282000;SE 17 +DVBC;290000;SE 18 +DVBC;298000;SE 19 DVBC;306000;S 21 DVBC;314000;S 22 DVBC;322000;S 23 diff --git a/source/ChanSort.Api/Model/LookupData.cs b/source/ChanSort.Api/Model/LookupData.cs index 0a2bac0..9f28f22 100644 --- a/source/ChanSort.Api/Model/LookupData.cs +++ b/source/ChanSort.Api/Model/LookupData.cs @@ -204,7 +204,7 @@ namespace ChanSort.Api #endregion #region GetDvbtFrequency() - public decimal GetDvbtFrequeny(int channelTransponder) + public decimal GetDvbtFrequency(int channelTransponder) { return channelTransponder * 8 + 306; } @@ -212,12 +212,17 @@ namespace ChanSort.Api public int GetDvbcTransponder(decimal freqInMhz) { - return GetDvbtTransponder(freqInMhz) + 25; // Samsung handles it like this + return (int)(freqInMhz - 106) / 8; + } + + public decimal GetDvbcFrequency(int channelTransponder) + { + return channelTransponder * 8 + 106; } public string GetDvbcChannelName(decimal freqInMhz) { - return dvbcChannels.TryGet((int)(freqInMhz * 1000)) ?? ""; + return dvbcChannels.TryGet((int)(freqInMhz * 1000)) ?? dvbcChannels.TryGet((int)((freqInMhz-1) * 1000)) ?? ""; } } } diff --git a/source/ChanSort.Loader.Hisense/HisDbSerializer.cs b/source/ChanSort.Loader.Hisense/HisDbSerializer.cs index 45b01ce..994a663 100644 --- a/source/ChanSort.Loader.Hisense/HisDbSerializer.cs +++ b/source/ChanSort.Loader.Hisense/HisDbSerializer.cs @@ -332,6 +332,8 @@ namespace ChanSort.Loader.Hisense if ((ci.SignalSource & SignalSource.DvbT) == SignalSource.DvbT) ci.ChannelOrTransponder = LookupData.Instance.GetDvbtTransponder(ci.FreqInMhz).ToString(); + else if ((ci.SignalSource & SignalSource.DvbC) == SignalSource.DvbC) + ci.ChannelOrTransponder = LookupData.Instance.GetDvbcTransponder(ci.FreqInMhz).ToString(); #if LOCK_LCN_LISTS // make the current list read-only if LCN is used diff --git a/source/ChanSort.Loader.LG/DtvChannel.cs b/source/ChanSort.Loader.LG/DtvChannel.cs index dae3f05..024db4a 100644 --- a/source/ChanSort.Loader.LG/DtvChannel.cs +++ b/source/ChanSort.Loader.LG/DtvChannel.cs @@ -26,7 +26,7 @@ namespace ChanSort.Loader.LG this.FreqInMhz = (data.GetDword(_FrequencyLong)+10) / 1000; // ReSharper restore PossibleLossOfFraction if (this.FreqInMhz == 0) - this.FreqInMhz = LookupData.Instance.GetDvbtFrequeny(channel); + this.FreqInMhz = LookupData.Instance.GetDvbtFrequency(channel); } } } diff --git a/source/ChanSort.Loader.Samsung/DigitalChannel.cs b/source/ChanSort.Loader.Samsung/DigitalChannel.cs index e5b2830..633926a 100644 --- a/source/ChanSort.Loader.Samsung/DigitalChannel.cs +++ b/source/ChanSort.Loader.Samsung/DigitalChannel.cs @@ -21,7 +21,12 @@ namespace ChanSort.Loader.Samsung int transp = data.GetByte(_ChannelOrTransponder); decimal freq = transpFreq.TryGet(transp); if (freq == 0) - freq = LookupData.Instance.GetDvbtFrequeny(transp); // transp*8 + 106); // (106 = DVB-C; DVB-T=306?) + { + if ((this.SignalSource & SignalSource.Antenna) != 0) + freq = transp * 8 + 306; + else if ((this.SignalSource & SignalSource.Cable) != 0) + freq = transp * 8 + 106; + } this.ChannelOrTransponder = transp.ToString(); this.FreqInMhz = freq; diff --git a/source/ChanSort.Loader.Sony/ChanSort.Loader.Sony.csproj b/source/ChanSort.Loader.Sony/ChanSort.Loader.Sony.csproj new file mode 100644 index 0000000..63c63f0 --- /dev/null +++ b/source/ChanSort.Loader.Sony/ChanSort.Loader.Sony.csproj @@ -0,0 +1,73 @@ + + + + + Debug + AnyCPU + {70E29C6B-B926-4859-9548-23375BF1E1B5} + Library + Properties + ChanSort.Loader.Sony + ChanSort.Loader.Sony + v4.0 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + true + bin\x86\Debug\ + DEBUG;TRACE + full + x86 + prompt + MinimumRecommendedRules.ruleset + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + + + + + + + + + + + + + + + + + + + {dccffa08-472b-4d17-bb90-8f513fc01392} + ChanSort.Api + + + + \ No newline at end of file diff --git a/source/ChanSort.Loader.Sony/Channel.cs b/source/ChanSort.Loader.Sony/Channel.cs new file mode 100644 index 0000000..f6d71ce --- /dev/null +++ b/source/ChanSort.Loader.Sony/Channel.cs @@ -0,0 +1,22 @@ +using System.Xml; +using ChanSort.Api; + +namespace ChanSort.Loader.Sony +{ + internal class Channel : ChannelInfo + { + internal int Index; + internal XmlNode XmlNode; + internal bool IsDisabled; + + #region ctor() + internal Channel(SignalSource source, int index, XmlNode node) + { + this.SignalSource = source; + this.Index = index; + this.XmlNode = node; + } + #endregion + + } +} diff --git a/source/ChanSort.Loader.Sony/Properties/AssemblyInfo.cs b/source/ChanSort.Loader.Sony/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..a87d2b9 --- /dev/null +++ b/source/ChanSort.Loader.Sony/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ChanSort.Loader.Sony")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ChanSort.Loader.Sony")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("70e29c6b-b926-4859-9548-23375bf1e1b5")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/source/ChanSort.Loader.Sony/Serializer.cs b/source/ChanSort.Loader.Sony/Serializer.cs new file mode 100644 index 0000000..5d04875 --- /dev/null +++ b/source/ChanSort.Loader.Sony/Serializer.cs @@ -0,0 +1,572 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Reflection; +using System.Text; +using System.Xml; +using System.Xml.Schema; +using ChanSort.Api; + +namespace ChanSort.Loader.Sony +{ + class Serializer : SerializerBase + { + private readonly ChannelList satChannels = new ChannelList(SignalSource.DvbS | SignalSource.Tv | SignalSource.Radio, "Sat"); + private XmlDocument doc; + private byte[] content; + private string textContent; + private XmlNode sdbXml; + private string format; + + #region Crc32Table + private static readonly uint[] Crc32Table = + { + 0, 79764919, 159529838, 222504665, 319059676, 398814059, 445009330, 507990021, 638119352, 583659535, 797628118, 726387553, 890018660, 835552979, 1015980042, 944750013, + 1276238704, 1221641927, 1167319070, 1095957929, 1595256236, 1540665371, 1452775106, 1381403509, 1780037320, 1859660671, 1671105958, 1733955601, 2031960084, 2111593891, 1889500026, 1952343757, + 2552477408, 2632100695, 2443283854, 2506133561, 2334638140, 2414271883, 2191915858, 2254759653, 3190512472, 3135915759, 3081330742, 3009969537, 2905550212, 2850959411, 2762807018, 2691435357, + 3560074640, 3505614887, 3719321342, 3648080713, 3342211916, 3287746299, 3467911202, 3396681109, 4063920168, 4143685023, 4223187782, 4286162673, 3779000052, 3858754371, 3904687514, 3967668269, + 881225847, 809987520, 1023691545, 969234094, 662832811, 591600412, 771767749, 717299826, 311336399, 374308984, 453813921, 533576470, 25881363, 88864420, 134795389, 214552010, + 2023205639, 2086057648, 1897238633, 1976864222, 1804852699, 1867694188, 1645340341, 1724971778, 1587496639, 1516133128, 1461550545, 1406951526, 1302016099, 1230646740, 1142491917, 1087903418, + 2896545431, 2825181984, 2770861561, 2716262478, 3215044683, 3143675388, 3055782693, 3001194130, 2326604591, 2389456536, 2200899649, 2280525302, 2578013683, 2640855108, 2418763421, 2498394922, + 3769900519, 3832873040, 3912640137, 3992402750, 4088425275, 4151408268, 4197601365, 4277358050, 3334271071, 3263032808, 3476998961, 3422541446, 3585640067, 3514407732, 3694837229, 3640369242, + 1762451694, 1842216281, 1619975040, 1682949687, 2047383090, 2127137669, 1938468188, 2001449195, 1325665622, 1271206113, 1183200824, 1111960463, 1543535498, 1489069629, 1434599652, 1363369299, + 622672798, 568075817, 748617968, 677256519, 907627842, 853037301, 1067152940, 995781531, 51762726, 131386257, 177728840, 240578815, 269590778, 349224269, 429104020, 491947555, + 4046411278, 4126034873, 4172115296, 4234965207, 3794477266, 3874110821, 3953728444, 4016571915, 3609705398, 3555108353, 3735388376, 3664026991, 3290680682, 3236090077, 3449943556, 3378572211, + 3174993278, 3120533705, 3032266256, 2961025959, 2923101090, 2868635157, 2813903052, 2742672763, 2604032198, 2683796849, 2461293480, 2524268063, 2284983834, 2364738477, 2175806836, 2238787779, + 1569362073, 1498123566, 1409854455, 1355396672, 1317987909, 1246755826, 1192025387, 1137557660, 2072149281, 2135122070, 1912620623, 1992383480, 1753615357, 1816598090, 1627664531, 1707420964, + 295390185, 358241886, 404320391, 483945776, 43990325, 106832002, 186451547, 266083308, 932423249, 861060070, 1041341759, 986742920, 613929101, 542559546, 756411363, 701822548, + 3316196985, 3244833742, 3425377559, 3370778784, 3601682597, 3530312978, 3744426955, 3689838204, 3819031489, 3881883254, 3928223919, 4007849240, 4037393693, 4100235434, 4180117107, 4259748804, + 2310601993, 2373574846, 2151335527, 2231098320, 2596047829, 2659030626, 2470359227, 2550115596, 2947551409, 2876312838, 2788305887, 2733848168, 3165939309, 3094707162, 3040238851, 2985771188 + }; + #endregion + + + #region ctor() + public Serializer(string inputFile) : base(inputFile) + { + this.Features.ChannelNameEdit = ChannelNameEditMode.All; + this.Features.CanDeleteChannels = true; + + satChannels.VisibleColumnFieldNames.Remove("PcrPid"); + satChannels.VisibleColumnFieldNames.Remove("VideoPid"); + satChannels.VisibleColumnFieldNames.Remove("AudioPid"); + satChannels.VisibleColumnFieldNames.Remove("Lock"); + satChannels.VisibleColumnFieldNames.Remove("Skip"); + satChannels.VisibleColumnFieldNames.Remove("Provider"); + + this.DataRoot.AddChannelList(this.satChannels); + } + #endregion + + #region DisplayName + public override string DisplayName => "Sony sdb.xml loader"; + + #endregion + + + #region Load() + + public override void Load() + { + bool fail = false; + try + { + this.doc = new XmlDocument(); + this.content = File.ReadAllBytes(this.FileName); + this.textContent = Encoding.UTF8.GetString(this.content); + var tc2 = ReplaceInvalidXmlCharacters(textContent); + if (tc2 != this.textContent) + this.textContent = tc2; + var settings = new XmlReaderSettings + { + CheckCharacters = false, + IgnoreProcessingInstructions = true, + ValidationFlags = XmlSchemaValidationFlags.None, + DtdProcessing = DtdProcessing.Ignore + }; + using (var reader = XmlReader.Create(new StringReader(textContent), settings)) + { + doc.Load(reader); + } + } + catch + { + fail = true; + } + + var root = doc.FirstChild; + if (root is XmlDeclaration) + root = root.NextSibling; + if (fail || root == null || root.LocalName != "SdbRoot") + throw new FileLoadException("\"" + this.FileName + "\" is not a supported Sony XML file"); + + foreach (XmlNode child in root.ChildNodes) + { + switch (child.LocalName) + { + case "SdbXml": + this.ReadSdbXml(child); + break; + case "CheckSum": + this.ReadChecksum(child); + break; + } + } + + this.Features.ChannelNameEdit = ChannelNameEditMode.All; + if (this.format != "1.1.0e") + { + satChannels.VisibleColumnFieldNames.Remove("Hidden"); + satChannels.VisibleColumnFieldNames.Remove("Satellite"); + } + } + #endregion + + #region ReadSdbXml() + private void ReadSdbXml(XmlNode node) + { + this.sdbXml = node; + + this.format = null; + var formatNode = node["FormatVer"]; + if (formatNode != null) + this.format = formatNode.InnerText; + else if ((formatNode = node["FormateVer"]) != null) + this.format = formatNode.InnerText + "e"; + + if (" 1.0.0 1.1.0e 1.1.0 1.2.0 ".IndexOf(" " + this.format + " ") < 0) + throw new FileLoadException("Unsupported file format version: " + this.format); + + foreach(XmlNode child in node.ChildNodes) + { + var name = child.LocalName.ToLowerInvariant(); + if (name == "sdbgs") + ReadSdb(child); + } + } + #endregion + + #region ReadSdb + private void ReadSdb(XmlNode node) + { + this.satChannels.ReadOnly = node["Editable"].InnerText != "T"; + + this.ReadSatellites(node); + this.ReadTransponder(node); + if (this.format == "1.1.0e") + this.ReadServices110e(node); + else + this.ReadServices(node); + } + #endregion + + #region ReadSatellites + private void ReadSatellites(XmlNode node) + { + var satlRec = node["SATL_REC"]; + if (satlRec == null) + return; + var data = this.SplitLines(satlRec); + var ids = data["ui2_satl_rec_id"]; + for (int i = 0, c = ids.Length; i < c; i++) + { + var sat = new Satellite(int.Parse(ids[i])); + sat.Name = data["ac_sat_name"][i]; + var pos = int.Parse(data["i2_orb_pos"][i]); + sat.OrbitalPosition = Math.Abs((decimal) pos / 10) + (pos < 0 ? "W" : "E"); + this.DataRoot.AddSatellite(sat); + } + } + #endregion + + #region ReadTransponder + private void ReadTransponder(XmlNode node) + { + var mux = node["Multiplex"] ?? throw new FileLoadException("Missing Multiplex XML element"); + + var muxData = SplitLines(mux); + var muxIds = this.format == "1.1.0e" ? muxData["MuxID"] : muxData["MuxRowId"]; + var rfParmData = this.format != "1.1.0e" ? SplitLines(mux["RfParam"]) : null; + var dvbsData = rfParmData != null ? SplitLines(mux["RfParam"]["DvbS"]) : null; + + for (int i = 0, c = muxIds.Length; i < c; i++) + { + Satellite sat = null; + var transp = new Transponder(int.Parse(muxIds[i])); + if (this.format == "1.1.0e") + { + var satId = int.Parse(muxData["ui2_satl_rec_id"][i]); + transp.FrequencyInMhz = int.Parse(muxData["SysFreq"][i]); + transp.SymbolRate = int.Parse(muxData["ui4_sym_rate"][i]); + transp.Polarity = muxData["e_pol"][i] == "1" ? 'H' : 'V'; + sat = DataRoot.Satellites[satId]; + } + else + { + transp.OriginalNetworkId = intParse(muxData["Onid"][i]); + transp.TransportStreamId = intParse(muxData["Tsid"][i]); + transp.FrequencyInMhz = int.Parse(rfParmData["Freq"][i]) / 1000; + transp.Polarity = dvbsData["Pola"][i] == "H_L" ? 'H' : 'V'; + transp.SymbolRate = int.Parse(dvbsData["SymbolRate"][i]) / 1000; + } + + this.DataRoot.AddTransponder(sat, transp); + } + } + #endregion + + #region ReadServices110e + private void ReadServices110e(XmlNode node) + { + var tsDescrNode = node["TS_Descr"] ?? throw new FileLoadException("Missing TS_Descr XML element"); + var tsData = SplitLines(tsDescrNode); + + var serviceNode = node["Service"] ?? throw new FileLoadException("Missing Service XML element"); + var svcData = SplitLines(serviceNode); + var dvbData = SplitLines(serviceNode["dvb_info"]); + + for (int i = 0, c = svcData["ui2_svl_rec_id"].Length; i < c; i++) + { + var chan = new Channel(SignalSource.DvbS, i, serviceNode.ChildNodes[i]); + chan.OldProgramNr = int.Parse(svcData["ui2_svl_rec_id"][i]); + chan.IsDeleted = svcData["b_deleted_by_user"][i] != "1"; + var nwMask = int.Parse(svcData["ui4_nw_mask"][i]); + chan.Hidden = (nwMask & 8) == 0; + chan.Encrypted = (nwMask & 2048) != 0; + chan.Encrypted = dvbData["t_free_ca_mode"][i] == "1"; + chan.Favorites = (Favorites) ((nwMask & 0xF0) >> 4); + chan.ServiceId = int.Parse(svcData["ui2_prog_id"][i]); + chan.Name = svcData["Name"][i]; + var muxId = int.Parse(svcData["MuxID"][i]); + var transp = this.DataRoot.Transponder[muxId]; + chan.Transponder = transp; + if (transp != null) + { + chan.FreqInMhz = transp.FrequencyInMhz; + chan.SymbolRate = transp.SymbolRate; + chan.Polarity = transp.Polarity; + chan.Satellite = transp.Satellite?.Name; + chan.SatPosition = transp.Satellite?.OrbitalPosition; + } + + var tsIdx = int.Parse(svcData["ui2_tsl_rec_id"][i]) - 1; + chan.TransportStreamId = int.Parse(tsData["Tsid"][tsIdx]); + chan.OriginalNetworkId = int.Parse(tsData["Onid"][tsIdx]); + + chan.ServiceType = int.Parse(dvbData["ui1_sdt_service_type"][i]); + chan.SignalSource |= LookupData.Instance.IsRadioOrTv(chan.ServiceType); + + this.DataRoot.AddChannel(this.satChannels, chan); + } + } + #endregion + + #region ReadServices + private void ReadServices(XmlNode node) + { + var serviceNode = node["Service"] ?? throw new FileLoadException("Missing Service XML element"); + var svcData = SplitLines(serviceNode); + + var progNode = node["Programme"] ?? throw new FileLoadException("Missing Programme XML element"); + var progData = SplitLines(progNode); + + var map = new Dictionary(); + for (int i = 0, c = svcData["ServiceRowId"].Length; i < c; i++) + { + var rowId = int.Parse(svcData["ServiceRowId"][i]); + var chan = new Channel(SignalSource.DvbS, rowId, serviceNode.ChildNodes[i]); + map[rowId] = chan; + chan.OldProgramNr = -1; + chan.IsDeleted = true; + chan.ServiceType = int.Parse(svcData["Type"][i]); + chan.OriginalNetworkId = intParse(svcData["Onid"][i]); + chan.TransportStreamId = intParse(svcData["Tsid"][i]); + chan.ServiceId = intParse(svcData["Sid"][i]); + chan.Name = svcData["Name"][i]; + var muxId = int.Parse(svcData["MuxRowId"][i]); + var transp = this.DataRoot.Transponder[muxId]; + chan.Transponder = transp; + if (transp != null) + { + chan.FreqInMhz = transp.FrequencyInMhz; + chan.SymbolRate = transp.SymbolRate; + chan.Polarity = transp.Polarity; + } + chan.SignalSource |= LookupData.Instance.IsRadioOrTv(chan.ServiceType); + var att = intParse(svcData["Attribute"][i]); + chan.Encrypted = (att & 8) != 0; + this.DataRoot.AddChannel(this.satChannels, chan); + } + + for (int i = 0, c = progData["ServiceRowId"].Length; i < c; i++) + { + var rowId = int.Parse(progData["ServiceRowId"][i]); + var chan = map.TryGet(rowId); + if (chan == null) + continue; + chan.IsDeleted = false; + chan.OldProgramNr = int.Parse(progData["No"][i]); + var flag = int.Parse(progData["Flag"][i]); + chan.Favorites = (Favorites)(flag & 0x0F); + } + } + #endregion + + + #region SplitLines + private Dictionary SplitLines(XmlNode parent) + { + var dict = new Dictionary(); + foreach (XmlNode node in parent.ChildNodes) + { + if (node.Attributes["loop"] == null) + continue; + var lines = node.InnerText.Trim('\n').Split('\n'); + dict[node.LocalName] = lines; + } + + return dict; + } + #endregion + + #region ReadChecksum() + + private void ReadChecksum(XmlNode node) + { + byte[] data; + int start; + int end; + uint expectedCrc; + + if (this.format == "1.1.0e") + { + // files with the typo-element "1.1.0" differ in several ways from all other files (including 1.1.0): + // "\n" after the closing Tag is included in the checksum, the checksum has no 0x prefix and the bytes are used as-is for the calculation, without any XML cleanup + data = this.content; + start = this.IndexOf(""); + end = this.IndexOf("") + 10; // including the \n at the end + expectedCrc = uint.Parse(node.InnerText, NumberStyles.HexNumber); // no 0x prefix + } + else + { + start = this.textContent.IndexOf(""); + end = this.textContent.IndexOf("") + 9; + var text = this.textContent.Substring(start, end - start); + text = text.Replace("\r\n", "\n"); + text = text.Replace(" />", "/>"); + text = text.Replace("<", "<"); + text = text.Replace(">", ">"); + text = text.Replace(""", """); + text = text.Replace("&", "&"); + text = text.Replace("'", "'"); + text = text.Replace("'", "'"); + data = Encoding.UTF8.GetBytes(text); + start = 0; + end = data.Length; + expectedCrc = uint.Parse(node.InnerText.Substring(2), NumberStyles.HexNumber); + } + + uint crc = 0xFFFFFFFF; + for (int i = start; i < end; i++) + { + var b = data[i]; + crc = (crc << 8) ^ Crc32Table[b ^ (crc >> 24)]; + } + crc = ~crc; + + if (crc != expectedCrc) + throw new FileLoadException($"Invalid checksum: expected 0x{expectedCrc:x8}, calculated 0x{crc:x8}"); + } + + private int IndexOf(string marker) + { + var bytes = Encoding.ASCII.GetBytes(marker); + var len = bytes.Length; + int i = -1, c = this.content.Length - len; + for (; ; ) + { + i = Array.IndexOf(this.content, bytes[0], i + 1); + if (i < 0) + return -1; + + int j; + for (j = 1; j < len; j++) + { + if (this.content[i + j] != bytes[j]) + break; + } + + if (j == len) + return i; + } + } + #endregion + + + + + #region Save() + public override void Save(string tvOutputFile) + { + throw new NotImplementedException("Sorry, but Sony lists are currently read-only. Support for writing is coming soon."); + foreach (var list in this.DataRoot.ChannelLists) + { + + foreach (var channel in list.Channels) + { + var ch = channel as Channel; + if (ch == null) continue; // ignore proxy channels from reference lists + var nameBytes = Encoding.UTF8.GetBytes(ch.Name); + bool nameNeedsEncoding = nameBytes.Length != ch.Name.Length; + string mapType = ""; + + foreach (XmlNode node in ch.XmlNode.ChildNodes) + { + switch (node.LocalName) + { + case "prNum": + var nr = ch.NewProgramNr; + if ((ch.SignalSource & SignalSource.Radio) != 0) + nr |= 0x4000; + node.InnerText = nr.ToString(); + break; + case "hexVchName": + if (channel.IsNameModified) + node.InnerText = (nameNeedsEncoding ? "15" : "") + Tools.HexEncode(nameBytes); // 0x15 = DVB encoding indicator for UTF-8 + break; + case "notConvertedLengthOfVchName": + if (channel.IsNameModified) + node.InnerText = ((nameNeedsEncoding ? 1 : 0) + ch.Name.Length).ToString(); + break; + case "vchName": + if (channel.IsNameModified) + node.InnerText = nameNeedsEncoding ? " " : ch.Name; + if (node.InnerText == "") // XmlTextReader removed the required space from empty channel names + node.InnerText = " "; + break; + case "isInvisable": + node.InnerText = ch.Hidden ? "1" : "0"; + break; + case "isBlocked": + node.InnerText = ch.Lock ? "1" : "0"; + break; + case "isSkipped": + node.InnerText = ch.Skip ? "1" : "0"; + break; + case "isNumUnSel": + // ? + break; + case "isDisabled": + node.InnerText = ch.IsDeleted || ch.IsDisabled ? "1" : "0"; + break; + case "isDeleted": + node.InnerText = ch.IsDeleted ? "1" : "0"; + break; + case "isUserSelCHNo": + if (ch.NewProgramNr != ch.OldProgramNr) + node.InnerText = "1"; + break; + case "mapType": + mapType = node.InnerText; + break; + case "mapAttr": + if (mapType == "1") + node.InnerText = ((int) ch.Favorites).ToString(); + break; + } + } + } + } + + // by default .NET reformats the whole XML. These settings produce the same format as the TV xml files use + var settings = new XmlWriterSettings(); + settings.Encoding = new UTF8Encoding(false); + settings.Indent = true; + settings.NewLineChars = "\r\n"; + settings.NewLineHandling = NewLineHandling.Replace; + settings.OmitXmlDeclaration = true; + settings.IndentChars = ""; + settings.CheckCharacters = false; + using (StringWriter sw = new StringWriter()) + using (XmlWriter xw = XmlWriter.Create(sw, settings)) + { + doc.Save(xw); + xw.Flush(); + string xml = RestoreInvalidXmlCharacters(sw.ToString()); + xml = "\r\n\r\n" + xml; + xml = xml.Replace("\r\n", "\r\n\r\n"); + xml = xml.Replace("\r\n", "\r\n\r\n"); + if (!xml.EndsWith("\r\n")) + xml += "\r\n"; + File.WriteAllText(tvOutputFile, xml, settings.Encoding); + } + } + #endregion + + + #region intParse + private int intParse(string input) + { + if (string.IsNullOrWhiteSpace(input)) + return 0; + if (input.StartsWith("0x")) + return int.Parse(input.Substring(2), NumberStyles.HexNumber); + if (int.TryParse(input, out var value)) + return value; + return 0; + } + #endregion + + #region ReplaceInvalidXmlCharacters() + private string ReplaceInvalidXmlCharacters(string input) + { + StringBuilder output = new StringBuilder(); + foreach (var c in input) + { + if (c >= ' ' || c == '\r' || c == '\n' || c == '\t') + output.Append(c); + else + output.AppendFormat("&#x{0:d}{1:d};", c >> 4, c & 0x0F); + } + return output.ToString(); + } + #endregion + + #region RestoreInvalidXmlCharacters() + private string RestoreInvalidXmlCharacters(string input) + { + StringBuilder output = new StringBuilder(); + int prevIdx = 0; + while(true) + { + int nextIdx = input.IndexOf("&#", prevIdx); + if (nextIdx < 0) + break; + output.Append(input, prevIdx, nextIdx - prevIdx); + + int numBase = 10; + char inChar; + int outChar = 0; + for (nextIdx += 2; (inChar=input[nextIdx]) != ';'; nextIdx++) + { + if (inChar == 'x' || inChar == 'X') + numBase = 16; + else + outChar = outChar*numBase + HexNibble(inChar); + } + var binChar = (char)outChar; + output.Append(binChar); + prevIdx = nextIdx + 1; + } + output.Append(input, prevIdx, input.Length - prevIdx); + return output.ToString(); + } + + private int HexNibble(char hexDigit) + { + return hexDigit >= '0' && hexDigit <= '9' ? hexDigit - '0' : (Char.ToUpper(hexDigit) - 'A') + 10; + } + #endregion + } +} diff --git a/source/ChanSort.Loader.Sony/SerializerPlugin.cs b/source/ChanSort.Loader.Sony/SerializerPlugin.cs new file mode 100644 index 0000000..82ef869 --- /dev/null +++ b/source/ChanSort.Loader.Sony/SerializerPlugin.cs @@ -0,0 +1,16 @@ +using ChanSort.Api; + +namespace ChanSort.Loader.Sony +{ + public class SerializerPlugin : ISerializerPlugin + { + public string DllName { get; set; } + public string PluginName => "Sony sdb.xml"; + public string FileFilter => "sdb*.xml"; + + public SerializerBase CreateSerializer(string inputFile) + { + return new Serializer(inputFile); + } + } +} diff --git a/source/ChanSort.sln b/source/ChanSort.sln index 2d85bca..fb494e8 100644 --- a/source/ChanSort.sln +++ b/source/ChanSort.sln @@ -50,6 +50,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.Hisense2017 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.SilvaSchneider", "ChanSort.Loader.SilvaSchneider\ChanSort.Loader.SilvaSchneider.csproj", "{E6279FF8-362A-41E6-AC0D-D0861D43F01C}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.Sony", "ChanSort.Loader.Sony\ChanSort.Loader.Sony.csproj", "{70E29C6B-B926-4859-9548-23375BF1E1B5}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -238,8 +240,20 @@ Global {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Release|Any CPU.Build.0 = Release|Any CPU {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Release|x86.ActiveCfg = Release|Any CPU - {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Release|x86.Build.0 = Release|Any CPU + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Release|x86.ActiveCfg = Release|x86 + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Release|x86.Build.0 = Release|x86 + {70E29C6B-B926-4859-9548-23375BF1E1B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.Debug|x86.ActiveCfg = Debug|x86 + {70E29C6B-B926-4859-9548-23375BF1E1B5}.Debug|x86.Build.0 = Debug|x86 + {70E29C6B-B926-4859-9548-23375BF1E1B5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.Release|Any CPU.Build.0 = Release|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.Release|x86.ActiveCfg = Release|x86 + {70E29C6B-B926-4859-9548-23375BF1E1B5}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/source/ChanSort/ChanSort.csproj b/source/ChanSort/ChanSort.csproj index a52f098..bf276a6 100644 --- a/source/ChanSort/ChanSort.csproj +++ b/source/ChanSort/ChanSort.csproj @@ -396,6 +396,10 @@ {e6279ff8-362a-41e6-ac0d-d0861d43f01c} ChanSort.Loader.SilvaSchneider + + {70e29c6b-b926-4859-9548-23375bf1e1b5} + ChanSort.Loader.Sony + {f6f02792-07f1-48d5-9af3-f945ca5e3931} ChanSort.Loader.Toshiba diff --git a/source/ChanSort/MainForm.Designer.cs b/source/ChanSort/MainForm.Designer.cs index 1da46e5..d3ba2d2 100644 --- a/source/ChanSort/MainForm.Designer.cs +++ b/source/ChanSort/MainForm.Designer.cs @@ -206,6 +206,7 @@ this.pageProgNr = new DevExpress.XtraTab.XtraTabPage(); this.popupInputSource = new DevExpress.XtraBars.PopupMenu(this.components); this.popupFavList = new DevExpress.XtraBars.PopupMenu(this.components); + this.miCheckUpdates = new DevExpress.XtraBars.BarButtonItem(); ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1)).BeginInit(); this.splitContainerControl1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.grpOutputList)).BeginInit(); @@ -1024,9 +1025,10 @@ this.miAllowEditPredefinedLists, this.miCzech, this.miRomanian, - this.miExplorerIntegration}); + this.miExplorerIntegration, + this.miCheckUpdates}); this.barManager1.MainMenu = this.bar1; - this.barManager1.MaxItemId = 98; + this.barManager1.MaxItemId = 99; this.barManager1.ShowFullMenus = true; // // bar1 @@ -1516,7 +1518,8 @@ new DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, this.mnuCharset, DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph), new DevExpress.XtraBars.LinkPersistInfo(this.miShowWarningsAfterLoad), new DevExpress.XtraBars.LinkPersistInfo(this.miAllowEditPredefinedLists), - new DevExpress.XtraBars.LinkPersistInfo(this.miExplorerIntegration)}); + new DevExpress.XtraBars.LinkPersistInfo(this.miExplorerIntegration), + new DevExpress.XtraBars.LinkPersistInfo(this.miCheckUpdates)}); this.mnuOptions.Name = "mnuOptions"; // // barSubItem1 @@ -2052,6 +2055,14 @@ this.popupFavList.Name = "popupFavList"; this.popupFavList.ShowCaption = true; // + // miCheckUpdates + // + this.miCheckUpdates.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; + resources.ApplyResources(this.miCheckUpdates, "miCheckUpdates"); + this.miCheckUpdates.Id = 98; + this.miCheckUpdates.Name = "miCheckUpdates"; + this.miCheckUpdates.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miCheckUpdates_ItemClick); + // // MainForm // this.AllowDrop = true; @@ -2292,6 +2303,7 @@ private DevExpress.XtraBars.BarButtonItem miRomanian; private DevExpress.XtraGrid.Columns.GridColumn colPcrPid; private DevExpress.XtraBars.BarButtonItem miExplorerIntegration; + private DevExpress.XtraBars.BarButtonItem miCheckUpdates; } } diff --git a/source/ChanSort/MainForm.cs b/source/ChanSort/MainForm.cs index 2241416..9a1f59b 100644 --- a/source/ChanSort/MainForm.cs +++ b/source/ChanSort/MainForm.cs @@ -152,7 +152,8 @@ namespace ChanSort.Ui } } - this.BeginInvoke((Action) UpdateCheck.CheckForNewVersion); + if (Settings.Default.CheckForUpdates) + this.BeginInvoke((Action) UpdateCheck.CheckForNewVersion); } #endregion @@ -1266,6 +1267,7 @@ namespace ChanSort.Ui this.UpdateMruMenu(); this.miExplorerIntegration.Down = Settings.Default.ExplorerIntegration; + this.miCheckUpdates.Down = Settings.Default.CheckForUpdates; } #endregion @@ -2607,6 +2609,7 @@ namespace ChanSort.Ui for (var i = 0; i < this.mruFiles.Count; i++) Settings.Default.GetType().GetProperty("MruFile" + i).SetValue(Settings.Default, this.mruFiles[i], null); Settings.Default.ExplorerIntegration = this.miExplorerIntegration.Down; + Settings.Default.CheckForUpdates = this.miCheckUpdates.Down; Settings.Default.Save(); } @@ -2951,6 +2954,9 @@ namespace ChanSort.Ui { try { + if (this.miExplorerIntegration.Down == Settings.Default.ExplorerIntegration) + return; + // get all file extensions from loader plugins var ext = new HashSet(); foreach (var loader in this.Plugins) @@ -2978,6 +2984,24 @@ namespace ChanSort.Ui } #endregion + #region miCheckUpdates_ItemClick + private void miCheckUpdates_ItemClick(object sender, ItemClickEventArgs e) + { + try + { + if (this.miCheckUpdates.Down == Settings.Default.CheckForUpdates) + return; + + if (this.miCheckUpdates.Down) + UpdateCheck.CheckForNewVersion(); + this.SaveSettings(); + } + catch (Exception ex) + { + HandleException(ex); + } + } + #endregion #region gview_MouseDown, gview_MouseUp, timerEditDelay_Tick, gview_ShowingEditor diff --git a/source/ChanSort/MainForm.de.resx b/source/ChanSort/MainForm.de.resx index 51d7ccc..0d186a6 100644 --- a/source/ChanSort/MainForm.de.resx +++ b/source/ChanSort/MainForm.de.resx @@ -628,4 +628,10 @@ speziellen Anbieter, Satelliten oder Länderlisten aus. Quelle + + Windows Explorer Integration + + + Nach Programmupdates suchen + \ No newline at end of file diff --git a/source/ChanSort/MainForm.resx b/source/ChanSort/MainForm.resx index 65bbfe5..5e3d81a 100644 --- a/source/ChanSort/MainForm.resx +++ b/source/ChanSort/MainForm.resx @@ -666,7 +666,10 @@ 37 - Windows Explorer Integration (handle file extensions) + Windows Explorer Integration + + + Check for updates &Accessibility @@ -1252,7 +1255,7 @@ globalImageCollection1 - ChanSort.Ui.GlobalImageCollection, ChanSort, Version=1.0.7133.39305, Culture=neutral, PublicKeyToken=null + ChanSort.Ui.GlobalImageCollection, ChanSort, Version=1.0.7134.23381, Culture=neutral, PublicKeyToken=null gviewRight @@ -1968,6 +1971,12 @@ DevExpress.XtraBars.PopupMenu, DevExpress.XtraBars.v19.1, Version=19.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + miCheckUpdates + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.1, Version=19.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + MainForm @@ -1975,7 +1984,7 @@ DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.1, Version=19.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - 07/13/2019 21:51:28 + 07/14/2019 13:16:32 16, 16 diff --git a/source/ChanSort/Properties/Settings.Designer.cs b/source/ChanSort/Properties/Settings.Designer.cs index f649572..17667cb 100644 --- a/source/ChanSort/Properties/Settings.Designer.cs +++ b/source/ChanSort/Properties/Settings.Designer.cs @@ -478,5 +478,17 @@ namespace ChanSort.Ui.Properties { this["ExplorerIntegration"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool CheckForUpdates { + get { + return ((bool)(this["CheckForUpdates"])); + } + set { + this["CheckForUpdates"] = value; + } + } } } diff --git a/source/ChanSort/Properties/Settings.settings b/source/ChanSort/Properties/Settings.settings index 0c66398..bc8ca8e 100644 --- a/source/ChanSort/Properties/Settings.settings +++ b/source/ChanSort/Properties/Settings.settings @@ -116,5 +116,8 @@ False + + True + \ No newline at end of file diff --git a/source/ChanSort/app.config b/source/ChanSort/app.config index 031a9a9..05b2ed6 100644 --- a/source/ChanSort/app.config +++ b/source/ChanSort/app.config @@ -122,6 +122,9 @@ False + + True + diff --git a/source/Translation.xlsx b/source/Translation.xlsx index c891a944e764fe195f57b8bc464aff609cde2330..c11c2ca349450f974628e16272d5607ff225ace9 100644 GIT binary patch literal 49310 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� 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 axc^Nm)fACYo^C^d{RY9hfY$N!?f(ER#J8US literal 59038 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 diff --git a/source/changelog.md b/source/changelog.md index 6347894..63f5df6 100644 --- a/source/changelog.md +++ b/source/changelog.md @@ -1,5 +1,10 @@ ChanSort Change Log =================== + +2019-07-xx +- added partial support for Sony sdb.xml channel list format (DVB-S only) +- added option to disable check for program updates + 2019-07-14 - added support for Silva-Schneider .sdx channel lists