From e2c24b484761f5f567fbfb38349da0973a15e95e Mon Sep 17 00:00:00 2001 From: hbeham Date: Mon, 5 May 2014 14:19:01 +0200 Subject: [PATCH] - fixed wrong file name when saving reference channel list - added support for map-DigitalPlusD (Canal+ Digital) channel list - improved file format detection --- ChanSort.Api/Model/Enums.cs | 4 +++- ChanSort.Loader.Samsung/ScmSerializer.cs | 27 +++++++++++++++--------- ChanSort/MainForm.cs | 4 ++-- readme.txt | 12 ++++++++--- 4 files changed, 31 insertions(+), 16 deletions(-) diff --git a/ChanSort.Api/Model/Enums.cs b/ChanSort.Api/Model/Enums.cs index 0c229e1..4ba072e 100644 --- a/ChanSort.Api/Model/Enums.cs +++ b/ChanSort.Api/Model/Enums.cs @@ -35,6 +35,7 @@ namespace ChanSort.Api Freesat = 2 << 12, TivuSat = 3 << 12, CanalDigital = 4 << 12, + DigitalPlus = 5 << 12, StandardCable = 0 << 12, CablePrime = 1 << 12, @@ -51,7 +52,8 @@ namespace ChanSort.Api HdPlusD = Digital + Sat + AstraHdPlus, FreesatD = Digital + Sat + Freesat, TivuSatD = Digital + Sat + TivuSat, - CanalDigitalSatD = Digital + Sat + CanalDigital + CanalDigitalSatD = Digital + Sat + CanalDigital, + DigitalPlusD = Digital + Sat + DigitalPlus } #endregion diff --git a/ChanSort.Loader.Samsung/ScmSerializer.cs b/ChanSort.Loader.Samsung/ScmSerializer.cs index faae151..088a48b 100644 --- a/ChanSort.Loader.Samsung/ScmSerializer.cs +++ b/ChanSort.Loader.Samsung/ScmSerializer.cs @@ -30,6 +30,7 @@ namespace ChanSort.Loader.Samsung private readonly ChannelList freesatChannels = new ChannelList(SignalSource.FreesatD | SignalSource.TvAndRadio, "Freesat"); private readonly ChannelList tivusatChannels = new ChannelList(SignalSource.TivuSatD | SignalSource.TvAndRadio, "TivuSat"); private readonly ChannelList canalDigitalChannels = new ChannelList(SignalSource.CanalDigitalSatD | SignalSource.TvAndRadio, "Canal Digital Sat"); + private readonly ChannelList digitalPlusChannels = new ChannelList(SignalSource.DigitalPlusD | SignalSource.TvAndRadio, "Canal+ Digital"); private readonly Dictionary avbtFrequency = new Dictionary(); private readonly Dictionary avbcFrequency = new Dictionary(); @@ -46,6 +47,7 @@ namespace ChanSort.Loader.Samsung private byte[] freesatFileContent; private byte[] tivusatFileContent; private byte[] canalDigitalFileContent; + private byte[] digitalPlusFileContent; private ModelConstants c; private Dictionary serviceProviderNames; @@ -117,6 +119,7 @@ namespace ChanSort.Loader.Samsung ReadDvbctChannels(zip, "map-FreesatD", this.freesatChannels, out this.freesatFileContent, this.dvbcFrequency); ReadDvbctChannels(zip, "map-TivusatD", this.tivusatChannels, out this.tivusatFileContent, this.dvbcFrequency); ReadDvbctChannels(zip, "map-CanalDigitalSatD", this.canalDigitalChannels, out this.canalDigitalFileContent, this.dvbcFrequency); + ReadDvbctChannels(zip, "map-DigitalPlusD", this.digitalPlusChannels, out this.digitalPlusFileContent, this.dvbcFrequency); ReadSatellites(zip); ReadTransponder(zip, "TransponderDataBase.dat"); ReadTransponder(zip, "UserTransponderDataBase.dat"); @@ -189,14 +192,13 @@ namespace ChanSort.Loader.Samsung #region DetectModelFromContentFileLengths() private bool DetectModelFromContentFileLengths(ZipFile zip) { - string[] candidates = new[] - { - DetectModelFromAirAOrCableA(zip), - DetectModelFromAirDOrCableD(zip), - DetectModelFromSateD(zip), - DetectModelFromTranspoderDatabase(zip), - DetectModelFromAstraHdPlusD(zip) - }; + string[] candidates = { + DetectModelFromAirAOrCableA(zip), + DetectModelFromAirDOrCableD(zip), + DetectModelFromSateD(zip), + DetectModelFromTranspoderDatabase(zip), + DetectModelFromAstraHdPlusD(zip) + }; // note: E, F and B(2013) series use an identical format, so we only care about E here string validCandidates = "BCDE"; @@ -243,7 +245,8 @@ namespace ChanSort.Loader.Samsung #region DetectModelFromAirDOrCableD() private string DetectModelFromAirDOrCableD(ZipFile zip) { - var entry = zip.GetEntry("map-AirD") ?? zip.GetEntry("map-CableD") ?? zip.GetEntry("map-CablePrime_D"); + var entry = zip.GetEntry("map-AirD") ?? zip.GetEntry("map-CableD") ?? zip.GetEntry("map-CablePrime_D") ?? zip.GetEntry("map-FreesatD") + ?? zip.GetEntry("map-TivusatD") ?? zip.GetEntry("map-CanalDigitalSatD") ?? zip.GetEntry("map-DigitalPlusD"); if (entry == null) return null; @@ -595,6 +598,7 @@ namespace ChanSort.Loader.Samsung this.SaveChannels(zip, "map-FreesatD", this.freesatChannels, this.freesatFileContent); this.SaveChannels(zip, "map-TivusatD", this.tivusatChannels, this.tivusatFileContent); this.SaveChannels(zip, "map-CanalDigitalSatD", this.canalDigitalChannels, this.canalDigitalFileContent); + this.SaveChannels(zip, "map-DigitalPlusD", this.digitalPlusChannels, this.digitalPlusFileContent); zip.CommitUpdate(); } } @@ -648,8 +652,11 @@ namespace ChanSort.Loader.Samsung if ((list.SignalSource & SignalSource.Digital) == 0) continue; var listOfChannels = new List(list.Channels); - foreach (ScmChannelBase channel in listOfChannels) + foreach (var chan in listOfChannels) { + ScmChannelBase channel = chan as ScmChannelBase; + if (channel == null) // ignore proxy channels (which only exist in loaded reference list) + continue; if (channel.ServiceType == 0) { channel.EraseRawData(); diff --git a/ChanSort/MainForm.cs b/ChanSort/MainForm.cs index c9c7245..493529a 100644 --- a/ChanSort/MainForm.cs +++ b/ChanSort/MainForm.cs @@ -25,7 +25,7 @@ namespace ChanSort.Ui { public partial class MainForm : XtraForm { - public const string AppVersion = "v2014-05-05"; + public const string AppVersion = "v2014-05-06"; private const int MaxMruEntries = 10; @@ -697,7 +697,7 @@ namespace ChanSort.Ui string ext = (Path.GetExtension(fileName)??"").ToLower(); if (ext == ".csv") - new CsvFileSerializer(this.currentCsvFile, this.dataRoot, false).Save(); + new CsvFileSerializer(fileName, this.dataRoot, false).Save(); else if (ext == ".chl") new ChlFileSerializer().Save(fileName, this.currentChannelList); } diff --git a/readme.txt b/readme.txt index 7d82790..80bbc8c 100644 --- a/readme.txt +++ b/readme.txt @@ -1,8 +1,9 @@ -Version v2014-05-05 ======================================================= +Version v2014-05-06 ======================================================= Changes: -- Added support for VDR *.conf channel list format - (Thanks to TCr82 for providing this code patch!) +- Added support for Canal+ Digital channel list (map-DigitalPlusD) +- Fixed: "Save reference file" ignored the entered filename for .csv lists +- Improved file format detection for Freesat, Tivusat, Canal Digital Sat The complete change log can be found at the end of this document @@ -116,6 +117,11 @@ OTHER DEALINGS IN THE SOFTWARE. Change log ================================================================ +2014-05-06 +- Added support for Canal+ Digital channel list (map-DigitalPlusD) +- Fixed: "Save reference file" ignored the entered filename for .csv lists +- Improved file format detection for Freesat, Tivusat, Canal Digital Sat + 2014-05-05 - Added support for VDR *.conf channel list format (Thanks to TCr82 for providing this code patch!)