- fixed wrong file name when saving reference channel list

- added support for map-DigitalPlusD (Canal+ Digital) channel list
- improved file format detection
This commit is contained in:
hbeham
2014-05-05 14:19:01 +02:00
parent 7d2e679b7e
commit e2c24b4847
4 changed files with 31 additions and 16 deletions

View File

@@ -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

View File

@@ -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<int, decimal> avbtFrequency = new Dictionary<int, decimal>();
private readonly Dictionary<int, decimal> avbcFrequency = new Dictionary<int, decimal>();
@@ -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<int, string> 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<ChannelInfo>(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();

View File

@@ -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);
}

View File

@@ -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!)