diff --git a/ChanSort.Plugin.ScmFile/AnalogChannel.cs b/ChanSort.Loader.ScmFile/AnalogChannel.cs
similarity index 100%
rename from ChanSort.Plugin.ScmFile/AnalogChannel.cs
rename to ChanSort.Loader.ScmFile/AnalogChannel.cs
diff --git a/ChanSort.Plugin.ScmFile/ChanSort.Loader.ScmFile.csproj b/ChanSort.Loader.ScmFile/ChanSort.Loader.ScmFile.csproj
similarity index 100%
rename from ChanSort.Plugin.ScmFile/ChanSort.Loader.ScmFile.csproj
rename to ChanSort.Loader.ScmFile/ChanSort.Loader.ScmFile.csproj
diff --git a/ChanSort.Plugin.ScmFile/ChanSort.Loader.ScmFile.ini b/ChanSort.Loader.ScmFile/ChanSort.Loader.ScmFile.ini
similarity index 84%
rename from ChanSort.Plugin.ScmFile/ChanSort.Loader.ScmFile.ini
rename to ChanSort.Loader.ScmFile/ChanSort.Loader.ScmFile.ini
index 4ec5f7b..51fd058 100644
--- a/ChanSort.Plugin.ScmFile/ChanSort.Loader.ScmFile.ini
+++ b/ChanSort.Loader.ScmFile/ChanSort.Loader.ScmFile.ini
@@ -48,10 +48,10 @@
offInUse = 0
maskInUse = 0x02
offProgramNr = 4
- offFavorites =
offNameLength =
offName = 12
lenName = 12
+ offFavorites = 26
offChecksum = 27
[Analog:40]
@@ -163,7 +163,7 @@
offShortName = 264
lenShortName = 18
offVideoFormat = 282
- offFavorites = 289
+ offFavorites = 290
offChecksum = 291
@@ -240,15 +240,6 @@
offBouquet = 138
offFavorites = 142
offChecksum = 143
- offCodec =
- offSymbolRate =
- offNetworkId =
- offServiceProviderId =
- offChannelTransponder =
- offLogicalProgramNr =
- offShortName =
- lenShortName =
- offVideoFormat =
[DvbS:172]
; map-SateD for D Series
@@ -274,15 +265,6 @@
offBouquet = 138
offFavorites = 140,144,148,152,156
offChecksum = 171
- offCodec =
- offSymbolRate =
- offNetworkId =
- offServiceProviderId =
- offChannelTransponder =
- offLogicalProgramNr =
- offShortName =
- lenShortName =
- offVideoFormat =
[DvbS:168]
; map-SateD for E Series
@@ -308,15 +290,6 @@
offBouquet = 138
offFavorites = 140,144,148,152,156
offChecksum = 167
- offCodec =
- offSymbolRate =
- offNetworkId =
- offServiceProviderId =
- offChannelTransponder =
- offLogicalProgramNr =
- offShortName =
- lenShortName =
- offVideoFormat =
[AstraHDPlusD:212]
; map-AstraHDPlusD for D and E Series
@@ -325,12 +298,12 @@
offPcrId=4
offInUse = 7
maskInUse = 0x01
- offLock =
+ offLock = 13
maskLock = 0x01
offServiceType = 14
offServiceId = 16
offTransponderIndex = 18
- ; satindex is just a guess
+ ; satindex is just a guess-pick of a field thats always 0001
offSatelliteIndex = 40
offTransportStreamId = 36
offOriginalNetworkId = 32
@@ -340,24 +313,3 @@
maskEncrypted = 0x01
offFavorites = 184,188,192,196,200
offChecksum = 211
-
-[AstraHDPlusD_BAK]
- ; map-AstraHDPlusD for D and E Series
- offProgramNr = 0,20
- offVideoPid=2
- offPcrId=4
- offInUse = 14
- maskInUse = 0xff
- maskLock = 0x01
- offServiceType = 14
- offServiceId = 16
- offTransponderIndex = 18
- offSatelliteIndex =
- offTransportStreamId = 36
- offOriginalNetworkId = 32
- offName = 48
- lenName = 100
- offEncrypted = 180
- maskEncrypted = 0x01
- offFavorites = 184,188,192,196,200
- offChecksum = 211
diff --git a/ChanSort.Plugin.ScmFile/DigitalChannel.cs b/ChanSort.Loader.ScmFile/DigitalChannel.cs
similarity index 100%
rename from ChanSort.Plugin.ScmFile/DigitalChannel.cs
rename to ChanSort.Loader.ScmFile/DigitalChannel.cs
diff --git a/ChanSort.Plugin.ScmFile/ModelConstants.cs b/ChanSort.Loader.ScmFile/ModelConstants.cs
similarity index 100%
rename from ChanSort.Plugin.ScmFile/ModelConstants.cs
rename to ChanSort.Loader.ScmFile/ModelConstants.cs
diff --git a/ChanSort.Plugin.ScmFile/Properties/AssemblyInfo.cs b/ChanSort.Loader.ScmFile/Properties/AssemblyInfo.cs
similarity index 100%
rename from ChanSort.Plugin.ScmFile/Properties/AssemblyInfo.cs
rename to ChanSort.Loader.ScmFile/Properties/AssemblyInfo.cs
diff --git a/ChanSort.Plugin.ScmFile/SatChannel.cs b/ChanSort.Loader.ScmFile/SatChannel.cs
similarity index 100%
rename from ChanSort.Plugin.ScmFile/SatChannel.cs
rename to ChanSort.Loader.ScmFile/SatChannel.cs
diff --git a/ChanSort.Plugin.ScmFile/SatelliteMapping.cs b/ChanSort.Loader.ScmFile/SatelliteMapping.cs
similarity index 83%
rename from ChanSort.Plugin.ScmFile/SatelliteMapping.cs
rename to ChanSort.Loader.ScmFile/SatelliteMapping.cs
index 9545ff7..5db030d 100644
--- a/ChanSort.Plugin.ScmFile/SatelliteMapping.cs
+++ b/ChanSort.Loader.ScmFile/SatelliteMapping.cs
@@ -18,8 +18,8 @@ namespace ChanSort.Loader.ScmFile
public byte MagicMarker { get { return data[BaseOffset]; } }
public int SatelliteNr { get { return BitConverter.ToInt32(data, BaseOffset + 1); } }
- public string Name { get { return utf16Encoding.GetString(data, BaseOffset + 9, 128); } }
+ public string Name { get { return utf16Encoding.GetString(data, BaseOffset + 9, 128).TrimEnd('\0'); } }
public bool IsEast { get { return BitConverter.ToInt32(data, BaseOffset + 137) != 0; } }
- public decimal Longitude { get { return (decimal)BitConverter.ToInt32(data, BaseOffset + 141) / 10; } }
+ public int Longitude { get { return BitConverter.ToInt32(data, BaseOffset + 141); } }
}
}
diff --git a/ChanSort.Plugin.ScmFile/ScmChannelBase.cs b/ChanSort.Loader.ScmFile/ScmChannelBase.cs
similarity index 92%
rename from ChanSort.Plugin.ScmFile/ScmChannelBase.cs
rename to ChanSort.Loader.ScmFile/ScmChannelBase.cs
index 90762b4..e407dd1 100644
--- a/ChanSort.Plugin.ScmFile/ScmChannelBase.cs
+++ b/ChanSort.Loader.ScmFile/ScmChannelBase.cs
@@ -112,7 +112,7 @@ namespace ChanSort.Loader.ScmFile
if (this.IsNameModified)
{
mapping.SetString(_Name, this.Name, mapping.Settings.GetInt("lenName"));
- mapping.SetByte(_NameLength, this.Name.Length);
+ mapping.SetByte(_NameLength, this.Name.Length * 2);
this.IsNameModified = false;
}
this.UpdateRawFavorites();
@@ -129,14 +129,20 @@ namespace ChanSort.Loader.ScmFile
{
var offsets = mapping.GetOffsets(_Favorites);
if (offsets.Length == 1) // series B,C
+ {
mapping.SetByte(_Favorites, (byte)this.Favorites & 0x0F);
+ return;
+ }
// series D,E
byte fav = (byte)this.Favorites;
byte mask = 0x01;
foreach (int off in offsets)
{
- this.rawData[baseOffset + off] = (byte)((fav & mask) == 0 ? 0 : 1);
+ this.rawData[baseOffset + off + 0] = (byte)((fav & mask) == 0 ? 0 : 1);
+ this.rawData[baseOffset + off + 1] = 0;
+ this.rawData[baseOffset + off + 2] = 0;
+ this.rawData[baseOffset + off + 3] = 0;
mask <<= 1;
}
}
@@ -145,7 +151,7 @@ namespace ChanSort.Loader.ScmFile
#region UpdateChecksum()
private void UpdateChecksum()
{
- var offChecksum = this.mapping.GetOffsets(_Checksum)[0];
+ var offChecksum = this.baseOffset + this.mapping.GetOffsets(_Checksum)[0];
byte crc = 0;
for (int i = this.baseOffset; i < offChecksum; i++)
crc += this.rawData[i];
diff --git a/ChanSort.Plugin.ScmFile/ScmSerializer.cs b/ChanSort.Loader.ScmFile/ScmSerializer.cs
similarity index 99%
rename from ChanSort.Plugin.ScmFile/ScmSerializer.cs
rename to ChanSort.Loader.ScmFile/ScmSerializer.cs
index 6ac98c3..d3d1974 100644
--- a/ChanSort.Plugin.ScmFile/ScmSerializer.cs
+++ b/ChanSort.Loader.ScmFile/ScmSerializer.cs
@@ -52,6 +52,7 @@ namespace ChanSort.Loader.ScmFile
public ScmSerializer(string inputFile) : base(inputFile)
{
this.ReadConfigurationFromIniFile();
+ this.Features.ChannelNameEdit = true;
}
#endregion
@@ -392,7 +393,8 @@ namespace ChanSort.Loader.ScmFile
{
if (satMapping.MagicMarker != 0x55)
throw new IOException("Unknown SatDataBase.dat format");
- string location = string.Format("{0}{1}", satMapping.Longitude, satMapping.IsEast ? "E" : "W");
+ string location = string.Format("{0}.{1}{2}",
+ satMapping.Longitude/10, satMapping.Longitude%10, satMapping.IsEast ? "E" : "W");
Satellite satellite = new Satellite(satMapping.SatelliteNr);
satellite.Name = satMapping.Name;
diff --git a/ChanSort.Plugin.ScmFile/ScmSerializerPlugin.cs b/ChanSort.Loader.ScmFile/ScmSerializerPlugin.cs
similarity index 100%
rename from ChanSort.Plugin.ScmFile/ScmSerializerPlugin.cs
rename to ChanSort.Loader.ScmFile/ScmSerializerPlugin.cs
diff --git a/ChanSort.Plugin.TllFile/AnalogChannel.cs b/ChanSort.Loader.TllFile/AnalogChannel.cs
similarity index 100%
rename from ChanSort.Plugin.TllFile/AnalogChannel.cs
rename to ChanSort.Loader.TllFile/AnalogChannel.cs
diff --git a/ChanSort.Plugin.TllFile/ChanSort.Loader.TllFile.csproj b/ChanSort.Loader.TllFile/ChanSort.Loader.TllFile.csproj
similarity index 100%
rename from ChanSort.Plugin.TllFile/ChanSort.Loader.TllFile.csproj
rename to ChanSort.Loader.TllFile/ChanSort.Loader.TllFile.csproj
diff --git a/ChanSort.Plugin.TllFile/ChanSort.Loader.TllFile.ini b/ChanSort.Loader.TllFile/ChanSort.Loader.TllFile.ini
similarity index 100%
rename from ChanSort.Plugin.TllFile/ChanSort.Loader.TllFile.ini
rename to ChanSort.Loader.TllFile/ChanSort.Loader.TllFile.ini
diff --git a/ChanSort.Plugin.TllFile/DtvChannel.cs b/ChanSort.Loader.TllFile/DtvChannel.cs
similarity index 100%
rename from ChanSort.Plugin.TllFile/DtvChannel.cs
rename to ChanSort.Loader.TllFile/DtvChannel.cs
diff --git a/ChanSort.Plugin.TllFile/DvbsDataLayout.cs b/ChanSort.Loader.TllFile/DvbsDataLayout.cs
similarity index 100%
rename from ChanSort.Plugin.TllFile/DvbsDataLayout.cs
rename to ChanSort.Loader.TllFile/DvbsDataLayout.cs
diff --git a/ChanSort.Plugin.TllFile/FirmwareData.cs b/ChanSort.Loader.TllFile/FirmwareData.cs
similarity index 100%
rename from ChanSort.Plugin.TllFile/FirmwareData.cs
rename to ChanSort.Loader.TllFile/FirmwareData.cs
diff --git a/ChanSort.Plugin.TllFile/Properties/AssemblyInfo.cs b/ChanSort.Loader.TllFile/Properties/AssemblyInfo.cs
similarity index 100%
rename from ChanSort.Plugin.TllFile/Properties/AssemblyInfo.cs
rename to ChanSort.Loader.TllFile/Properties/AssemblyInfo.cs
diff --git a/ChanSort.Plugin.TllFile/Properties/licenses.licx b/ChanSort.Loader.TllFile/Properties/licenses.licx
similarity index 100%
rename from ChanSort.Plugin.TllFile/Properties/licenses.licx
rename to ChanSort.Loader.TllFile/Properties/licenses.licx
diff --git a/ChanSort.Plugin.TllFile/Resource.Designer.cs b/ChanSort.Loader.TllFile/Resource.Designer.cs
similarity index 100%
rename from ChanSort.Plugin.TllFile/Resource.Designer.cs
rename to ChanSort.Loader.TllFile/Resource.Designer.cs
diff --git a/ChanSort.Plugin.TllFile/Resource.de.Designer.cs b/ChanSort.Loader.TllFile/Resource.de.Designer.cs
similarity index 100%
rename from ChanSort.Plugin.TllFile/Resource.de.Designer.cs
rename to ChanSort.Loader.TllFile/Resource.de.Designer.cs
diff --git a/ChanSort.Plugin.TllFile/Resource.de.resx b/ChanSort.Loader.TllFile/Resource.de.resx
similarity index 100%
rename from ChanSort.Plugin.TllFile/Resource.de.resx
rename to ChanSort.Loader.TllFile/Resource.de.resx
diff --git a/ChanSort.Plugin.TllFile/Resource.resx b/ChanSort.Loader.TllFile/Resource.resx
similarity index 100%
rename from ChanSort.Plugin.TllFile/Resource.resx
rename to ChanSort.Loader.TllFile/Resource.resx
diff --git a/ChanSort.Plugin.TllFile/SatChannel.cs b/ChanSort.Loader.TllFile/SatChannel.cs
similarity index 100%
rename from ChanSort.Plugin.TllFile/SatChannel.cs
rename to ChanSort.Loader.TllFile/SatChannel.cs
diff --git a/ChanSort.Plugin.TllFile/SatChannelListHeader.cs b/ChanSort.Loader.TllFile/SatChannelListHeader.cs
similarity index 100%
rename from ChanSort.Plugin.TllFile/SatChannelListHeader.cs
rename to ChanSort.Loader.TllFile/SatChannelListHeader.cs
diff --git a/ChanSort.Plugin.TllFile/SatTransponder.cs b/ChanSort.Loader.TllFile/SatTransponder.cs
similarity index 100%
rename from ChanSort.Plugin.TllFile/SatTransponder.cs
rename to ChanSort.Loader.TllFile/SatTransponder.cs
diff --git a/ChanSort.Plugin.TllFile/TllChannelBase.cs b/ChanSort.Loader.TllFile/TllChannelBase.cs
similarity index 100%
rename from ChanSort.Plugin.TllFile/TllChannelBase.cs
rename to ChanSort.Loader.TllFile/TllChannelBase.cs
diff --git a/ChanSort.Plugin.TllFile/TllFileSerializer.cs b/ChanSort.Loader.TllFile/TllFileSerializer.cs
similarity index 100%
rename from ChanSort.Plugin.TllFile/TllFileSerializer.cs
rename to ChanSort.Loader.TllFile/TllFileSerializer.cs
diff --git a/ChanSort.Plugin.TllFile/TllFileSerializer.sql.cs b/ChanSort.Loader.TllFile/TllFileSerializer.sql.cs
similarity index 100%
rename from ChanSort.Plugin.TllFile/TllFileSerializer.sql.cs
rename to ChanSort.Loader.TllFile/TllFileSerializer.sql.cs
diff --git a/ChanSort.Plugin.TllFile/TllFileSerializerPlugin.cs b/ChanSort.Loader.TllFile/TllFileSerializerPlugin.cs
similarity index 100%
rename from ChanSort.Plugin.TllFile/TllFileSerializerPlugin.cs
rename to ChanSort.Loader.TllFile/TllFileSerializerPlugin.cs
diff --git a/ChanSort.Plugin.TllFile/TvSettingsForm.Designer.cs b/ChanSort.Loader.TllFile/TvSettingsForm.Designer.cs
similarity index 100%
rename from ChanSort.Plugin.TllFile/TvSettingsForm.Designer.cs
rename to ChanSort.Loader.TllFile/TvSettingsForm.Designer.cs
diff --git a/ChanSort.Plugin.TllFile/TvSettingsForm.cs b/ChanSort.Loader.TllFile/TvSettingsForm.cs
similarity index 100%
rename from ChanSort.Plugin.TllFile/TvSettingsForm.cs
rename to ChanSort.Loader.TllFile/TvSettingsForm.cs
diff --git a/ChanSort.Plugin.TllFile/TvSettingsForm.de.resx b/ChanSort.Loader.TllFile/TvSettingsForm.de.resx
similarity index 100%
rename from ChanSort.Plugin.TllFile/TvSettingsForm.de.resx
rename to ChanSort.Loader.TllFile/TvSettingsForm.de.resx
diff --git a/ChanSort.Plugin.TllFile/TvSettingsForm.resx b/ChanSort.Loader.TllFile/TvSettingsForm.resx
similarity index 100%
rename from ChanSort.Plugin.TllFile/TvSettingsForm.resx
rename to ChanSort.Loader.TllFile/TvSettingsForm.resx
diff --git a/ChanSort.Plugin.TllFile2/AnalogChannel.cs b/ChanSort.Plugin.TllFile2/AnalogChannel.cs
deleted file mode 100644
index 58bd385..0000000
--- a/ChanSort.Plugin.TllFile2/AnalogChannel.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using ChanSort.Api;
-
-namespace ChanSort.Plugin.TllFile
-{
- public class AnalogChannel : TllChannelBase
- {
- private const string _Freqency = "offPcrPid";
- private const string _FreqBand = "offVideoPid";
-
- public AnalogChannel(int slot, DataMapping data) : base(data)
- {
- this.InitCommonData(slot, SignalSource.AnalogCT, data);
-
- this.FreqInMhz = (decimal)data.GetWord(_Freqency) / 20;
- int channelAndBand = data.GetWord(_FreqBand);
- this.ChannelOrTransponder = ((channelAndBand>>8) == 0 ? "E" : "S") + (channelAndBand&0xFF).ToString("d2");
- }
- }
-}
diff --git a/ChanSort.Plugin.TllFile2/ChanSort.Plugin.TllFile2.csproj b/ChanSort.Plugin.TllFile2/ChanSort.Plugin.TllFile2.csproj
deleted file mode 100644
index efde49f..0000000
--- a/ChanSort.Plugin.TllFile2/ChanSort.Plugin.TllFile2.csproj
+++ /dev/null
@@ -1,136 +0,0 @@
-
-
-
- Debug
- AnyCPU
- 8.0.30703
- 2.0
- {B1ECA01E-48A8-44C4-8237-F7B87E68C76E}
- Library
- Properties
- ChanSort.Plugin.TllFile
- ChanSort.Plugin.TllFile2
- v3.5
-
-
- 512
-
-
- 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
- false
- false
-
-
- bin\x86\Release\
- TRACE
- true
- pdbonly
- x86
- prompt
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Resource.de.resx
- True
- True
-
-
- Resource.resx
- True
- True
-
-
-
-
-
-
-
- Form
-
-
- TvSettingsForm.cs
-
-
-
-
-
- {DCCFFA08-472B-4D17-BB90-8F513FC01392}
- ChanSort.Api
-
-
-
-
- ResXFileCodeGenerator
- Resource.de.Designer.cs
- Designer
-
-
- ResXFileCodeGenerator
- Resource.Designer.cs
- Designer
-
-
- TvSettingsForm.cs
- Designer
-
-
- TvSettingsForm.cs
- Designer
-
-
-
-
- Always
-
-
-
-
-
\ No newline at end of file
diff --git a/ChanSort.Plugin.TllFile2/ChanSort.Plugin.TllFile2.ini b/ChanSort.Plugin.TllFile2/ChanSort.Plugin.TllFile2.ini
deleted file mode 100644
index d018b0a..0000000
--- a/ChanSort.Plugin.TllFile2/ChanSort.Plugin.TllFile2.ini
+++ /dev/null
@@ -1,334 +0,0 @@
-; FileConfigurationX: overall file and DVB-S data layout
-; ACTChannelDataMappingX: analog, DVB-C and DVB-T channel data mapping for data length X
-
-
-[ACTChannelDataMapping:192]
- ; LM series with Firmware 4.x (all except LM611S and LM340S)
- reorderChannelData = 0
- lenName = 40
- offChannelTransponder = 10, 94, 126, 132
- offProgramNr = 12, 128
- offFavorites = 20
- offPcrPid = 22, 180
- offAudioPid = 24
- offVideoPid = 26
- offName = 30, 140
- offNameLength = 70, 139
- offServiceId = 72, 136
- offFrequencyLong = 96
- offOriginalNetworkId = 102
- offTransportStreamId = 104
- offFavorites2 = 134
- offDeleted = 134
- maskDeleted = 0x42
- offLock = 135
- maskLock = 0x01
- offSkip = 135
- maskSkip = 0x02
- offHide = 135
- maskHide = 0x04
- offServiceType = 138
- offAudioPid2 = 182
-
-[ACTChannelDataMapping:188]
- ; LM series with Firmware 3.x (LM611S with exceptions, LM340S)
- reorderChannelData = 0
- lenName = 40
- offChannelTransponder = 10, 94, 125, 132
- offProgramNr = 12, 128
- offFavorites = 20
- offPcrPid = 22, 180
- offAudioPid = 24
- offVideoPid = 26
- offName = 30, 140
- offNameLength = 70, 139
- offServiceId = 72, 136
- offFrequencyLong = 96
- offOriginalNetworkId = 102
- offTransportStreamId = 104
- offFavorites2 = 134
- offDeleted = 134
- maskDeleted = 0x42
- offLock = 135
- maskLock = 0x01
- offSkip = 135
- maskSkip = 0x02
- offHide = 135
- maskHide = 0x04
- offServiceType = 138
- offAudioPid2 = 182
-
-[ACTChannelDataMapping:184]
- ; LV470S,LV570S,LV579S(with exceptions), LW5500,LW5590,LW570S,LW579S,LW650S,LW659S(with exceptions)
- ; LK950S, CS460S, PM670S, LM611S(with exceptions)
- reorderChannelData = 0
- lenName = 40
- offChannelTransponder = 10, 90, 121, 128
- offProgramNr = 12, 124
- offFavorites = 20
- offPcrPid = 22, 176
- offAudioPid = 24
- offVideoPid = 26
- offName = 30, 136
- offNameLength = 70, 135
- offServiceId = 72, 132
- offFrequencyLong = 92
- offOriginalNetworkId = 98
- offTransportStreamId = 100
- offFavorites2 = 130
- offDeleted = 130
- maskDeleted = 0x42
- offLock = 131
- maskLock = 0x01
- offSkip = 131
- maskSkip = 0x02
- offHide = 131
- maskHide = 0x04
- offServiceType = 134
- offAudioPid2 = 178
-
-[ACTChannelDataMapping:180]
- ; PT
- reorderChannelData = 0
- lenName = 40
- offChannelTransponder = 10, 90, 124
- offProgramNr = 12
- offFavorites = 20
- offPcrPid = 22, 172
- offAudioPid = 24
- offVideoPid = 26
- offName = 30, 132
- offNameLength = 70, 131
- offServiceId = 72, 128
- offFrequencyLong = 92
- offOriginalNetworkId = 98
- offTransportStreamId = 100
- offProgramNr2 = 120
- offFavorites2 = 126
- offDeleted = 126
- maskDeleted = 0x42
- offLock = 127
- maskLock = 0x01
- offSkip = 127
- maskSkip = 0x02
- offHide = 127
- maskHide = 0x04
- offServiceType = 130
- offAudioPid2 = 172
-
-[ACTChannelDataMapping:176]
- ; LD, LE series, LK450, LW4500, LW5400
- reorderChannelData = 0
- lenName = 40
- offChannelTransponder = 10, 86, 120
- offProgramNr = 12
- offFavorites = 20
- offPcrPid = 22, 168
- offAudioPid = 24
- offVideoPid = 26
- offName = 30, 128
- offNameLength = 70, 127
- offServiceId = 72, 124
- offFrequencyLong = 88
- offOriginalNetworkId = 94
- offTransportStreamId = 96
- offProgramNr2 = 116
- offFavorites2 = 122
- offDeleted = 122
- maskDeleted = 0x42
- offLock = 123
- maskLock = 0x01
- offSkip = 123
- maskSkip = 0x02
- offHide = 123
- maskHide = 0x04
- offServiceType = 126
- offAudioPid2 = 170
-
-[ACTChannelDataMapping:164]
- ; DM and LH series
- reorderChannelData = 1
- lenName = 40
- offChannelTransponder = 9, 112
- offProgramNr = 10
- offFavorites = 18
- offPcrPid = 20, 156
- offAudioPid = 22
- offVideoPid = 24
- offName = 28, 116
- offNameLength = 68
- offServiceId = 70
- offOriginalNetworkId = 86
- offTransportStreamId = 88
- offFrequencyLong = 96
- offProgramNr2 = 108
- offFavorites2 = 113
- offDeleted = 113
- maskDeleted = 0x42
- offLock = 113
- maskLock =
- offSkip = 113
- maskSkip = 0x20
- offHide = 113
- maskHide =
- offServiceType = 115
- offAudioPid2 = 158
-
-[DvbsBlock:687880]
- ; everything before LM series (but including LM611S and LM340S)
- satCount = 64
- satLength = 44
- transponderCount = 2400
- transponderLength = 40
- dvbsChannelCount = 7520
- dvbsChannelLength = 68
- lnbCount = 40
- lnbLength = 44
-
-[DvbsBlock:717960]
- ; LM and PM series except LM611S and LM340S
- satCount = 64
- satLength = 44
- transponderCount = 2400
- transponderLength = 40
- dvbsChannelCount = 7520
- dvbsChannelLength = 72
- lnbCount = 40
- lnbLength = 44
-
-[SatChannelDataMapping:68]
- lenName = 40
- offSatelliteNr = 0
- offSourceType = 4
- offTransponderIndex = 5, 12
- offProgramNr = 8
- offProgramNrPreset = 10
- offFavorites2 = 14
- offDeleted = 14
- maskDeleted = 0x42
- offEncrypted = 14
- maskEncrypted = 0x80
- offLock = 15
- maskLock = 0x01
- offSkip = 15
- maskSkip = 0x02
- offHide = 15
- maskHide = 0x04
- offProgNrCustomized = 15
- maskProgNrCustomized = 0x40
- offServiceId = 16
- offServiceType = 18
- offNameLength = 19
- offName = 20
- offVideoPid = 60
- offAudioPid = 62
-
-[SatChannelDataMapping:72]
- lenName = 40
- offSatelliteNr = 0
- offSourceType = 4
- offTransponderIndex = 6, 12
- offProgramNr = 8
- offProgramNrPreset = 10
- offFavorites2 = 14
- offDeleted = 14
- maskDeleted = 0x42
- offEncrypted = 14
- maskEncrypted = 0x80
- offLock = 15
- maskLock = 0x01
- offSkip = 15
- maskSkip = 0x02
- offHide = 15
- maskHide = 0x04
- offProgNrCustomized = 15
- maskProgNrCustomized = 0x40
- offServiceId = 16
- offServiceType = 18
- offNameLength = 19
- offName = 20
- offVideoPid = 60
- offAudioPid = 62
-
-[FirmwareData:6944]
- ; LH series
- offSize = 0
- offHotelModeEnabled=6543
- offHotelModeDtvUpdate=6553
-
-[FirmwareData:11008]
- ; DM (2350D)
- offSize = 0
- offHotelModeEnabled=10563
- offHotelModeDtvUpdate=10573
-
-[FirmwareData:15936]
- ; PT
- offSize = 0
- offHotelModeEnabled=12601
- offHotelModeDtvUpdate=12611
-
-[FirmwareData:15960]
- ; LW4500, LW5400
- offSize = 0
- offHotelModeEnabled=12603
- offHotelModeDtvUpdate=12613
-
-[FirmwareData:16024]
- ; LM611S, LM340S, CS460S
- offSize = 0
- offHotelModeEnabled=12639
- offHotelModeDtvUpdate=12649
-
-[FirmwareData:23072]
- ; LD420, LD450, LD550
- offSize = 0
- offHotelModeEnabled=19721
- offHotelModeDtvUpdate=19731
-
-[FirmwareData:23088]
- ; LK450
- offSize = 0
- offHotelModeEnabled=19723
- offHotelModeDtvUpdate=19733
-
-[FirmwareData:23096]
- ; LE5500, LD750
- offSize = 0
- offHotelModeEnabled=19721
- offHotelModeDtvUpdate=19731
-
-[FirmwareData:35504]
- ; LV,LW,LK950S
- offSize = 0
- offSystemLock =
- offTvPassword =
- offHbbTvEnabled =
- offHotelModeEnabled=34643
- offHotelModeDtvUpdate=34653
- offHotelMenuAccessCode = 34668
- offHotelMenuPin = 34714
-
-[FirmwareData:36856]
- ; LM860V
- offSize = 0
- offSystemLock = 171
- offTvPassword = 173
- offHbbTvEnabled = 35096
- offHotelModeEnabled=35635
- offHotelModeDtvUpdate=35645
- offHotelMenuAccessCode = 35660
- offHotelMenuPin = 35706
- offSettingsChannelUpdate=36544
-
-[FirmwareData:36864]
- ; LM (except LM611S,LM340S and LM860V),PM,LS
- offSize = 0
- offSystemLock = 171
- offTvPassword = 173
- offHbbTvEnabled = 35096
- offHotelModeEnabled=35635
- offHotelModeDtvUpdate=35645
- offHotelMenuAccessCode = 35660
- offHotelMenuPin = 35706
- offSettingsChannelUpdate=36544
diff --git a/ChanSort.Plugin.TllFile2/DtvChannel.cs b/ChanSort.Plugin.TllFile2/DtvChannel.cs
deleted file mode 100644
index 4fd47b8..0000000
--- a/ChanSort.Plugin.TllFile2/DtvChannel.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using ChanSort.Api;
-
-namespace ChanSort.Plugin.TllFile
-{
- public class DtvChannel : TllChannelBase
- {
- private const string _ChannelOrTransponder = "offChannelTransponder";
- private const string _FrequencyLong = "offFrequencyLong";
-
- /*
- offFavorites2 = 134
- offAudioPid2 = 182
- */
-
- public DtvChannel(int slot, DataMapping data) : base(data)
- {
- this.InitCommonData(slot, SignalSource.DvbCT, data);
- this.InitDvbData(data);
-
- this.ChannelOrTransponder = data.GetByte(_ChannelOrTransponder).ToString("d2");
- this.FreqInMhz = (decimal)data.GetDword(_FrequencyLong) / 1000;
- }
- }
-}
diff --git a/ChanSort.Plugin.TllFile2/DvbsDataLayout.cs b/ChanSort.Plugin.TllFile2/DvbsDataLayout.cs
deleted file mode 100644
index 91dbe1b..0000000
--- a/ChanSort.Plugin.TllFile2/DvbsDataLayout.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-namespace ChanSort.Plugin.TllFile
-{
- public class DvbsDataLayout
- {
- public readonly int satCount;
- public readonly int satLength;
- public readonly int sizeOfTransponderBlockHeader;
- public readonly int transponderCount;
- public readonly int transponderLength;
- public readonly int sizeOfChannelIndexTableEntry = 8;
- public readonly int dvbsMaxChannelCount;
- public readonly int dvbsChannelLength;
- public readonly int lnbCount;
- public readonly int lnbLength;
- public readonly int[] dvbsSubblockLength;
-
- public int LnbBlockHeaderSize = 12;
-
- public DvbsDataLayout(Api.IniFile.Section iniSection)
- {
- this.satCount = iniSection.GetInt("satCount");
- this.satLength = iniSection.GetInt("satLength");
- this.transponderCount = iniSection.GetInt("transponderCount");
- this.transponderLength = iniSection.GetInt("transponderLength");
- this.sizeOfTransponderBlockHeader = 14 + transponderCount/8 + transponderCount*6 + 2;
- this.dvbsMaxChannelCount = iniSection.GetInt("dvbsChannelCount");
- this.dvbsChannelLength = iniSection.GetInt("dvbsChannelLength");
- this.lnbCount = iniSection.GetInt("lnbCount");
- this.lnbLength = iniSection.GetInt("lnbLength");
-
- this.dvbsSubblockLength = new[]
- {
- 12, // header
- 14 + 2 + this.satCount + this.satCount*this.satLength, // satellites
- sizeOfTransponderBlockHeader - 4 + transponderCount * transponderLength, // transponder
- 12 + dvbsMaxChannelCount/8 + dvbsMaxChannelCount*sizeOfChannelIndexTableEntry + dvbsMaxChannelCount * dvbsChannelLength, // channels
- LnbBlockHeaderSize - 4 + lnbCount * lnbLength // sat/LNB-Config
- };
- }
- }
-}
diff --git a/ChanSort.Plugin.TllFile2/FirmwareData.cs b/ChanSort.Plugin.TllFile2/FirmwareData.cs
deleted file mode 100644
index a1136d0..0000000
--- a/ChanSort.Plugin.TllFile2/FirmwareData.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-using ChanSort.Api;
-
-namespace ChanSort.Plugin.TllFile
-{
- public class FirmwareData : DataMapping
- {
- private const string offSize = "offSize";
- private const string offSystemLock = "offSystemLock";
- private const string offTvPassword = "offTvPassword";
- private const string offHbbTvEnabled = "offHbbTvEnabled";
- private const string offHotelModeEnabled = "offHotelModeEnabled";
- private const string offHotelModeDtvUpdate = "offHotelModeDtvUpdate";
- private const string offSettingsChannelUpdate = "offSettingsChannelUpdate";
-
- public FirmwareData(IniFile.Section settings) :
- base(settings)
- {
- }
-
- public long Size { get { return this.GetDword(offSize); } }
- public bool SystemLocked { get { return this.GetByte(offSystemLock) != 0; } }
- public string TvPassword { get { return CodeToString((uint)this.GetDword(offTvPassword)); } }
-
-
- public bool SettingsAutomaticChannelUpdate
- {
- get { return this.GetByte(offSettingsChannelUpdate) != 0; }
- set { this.SetByte(offSettingsChannelUpdate, (byte) (value ? 1 : 0)); }
- }
-
- public bool HbbTvEnabled
- {
- get { return this.GetByte(offHbbTvEnabled) != 0; }
- set { this.SetByte(offHbbTvEnabled, (byte)(value ? 1 : 0)); }
- }
-
- public bool HotelModeEnabled
- {
- get { return this.GetByte(offHotelModeEnabled) != 0; }
- set { this.SetByte(offHotelModeEnabled, (byte) (value ? 1 : 0)); }
- }
-
- public bool HotelModeDtvUpdate
- {
- get { return this.GetByte(offHotelModeDtvUpdate) != 0; }
- set { this.SetByte(offHotelModeDtvUpdate, (byte)(value ? 1 : 0)); }
- }
-
- private string CodeToString(uint val)
- {
- var code = "";
- for (int i = 0; i < 4; i++)
- {
- code += (char)(33 + (val & 0x0f));
- val >>= 8;
- }
- return code;
- }
- }
-}
diff --git a/ChanSort.Plugin.TllFile2/Properties/AssemblyInfo.cs b/ChanSort.Plugin.TllFile2/Properties/AssemblyInfo.cs
deleted file mode 100644
index c034adf..0000000
--- a/ChanSort.Plugin.TllFile2/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-[assembly: InternalsVisibleTo("Test.Plugin.TllFile")]
-
-// 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.Plugin.TllFile2")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("ChanSort.Plugin.TllFile2")]
-[assembly: AssemblyCopyright("Copyright © 2013")]
-[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("f4702e0e-8277-44c6-b709-4d1c78654837")]
-
-// 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/ChanSort.Plugin.TllFile2/Resource.Designer.cs b/ChanSort.Plugin.TllFile2/Resource.Designer.cs
deleted file mode 100644
index 3ddf7b2..0000000
--- a/ChanSort.Plugin.TllFile2/Resource.Designer.cs
+++ /dev/null
@@ -1,108 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.586
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-namespace ChanSort.Plugin.TllFile {
- using System;
-
-
- ///
- /// A strongly-typed resource class, for looking up localized strings, etc.
- ///
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resource {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resource() {
- }
-
- ///
- /// Returns the cached ResourceManager instance used by this class.
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager {
- get {
- if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ChanSort.Plugin.TllFile.Resource", typeof(Resource).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- ///
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture {
- get {
- return resourceCulture;
- }
- set {
- resourceCulture = value;
- }
- }
-
- ///
- /// Looks up a localized string similar to Channel #{0} (Pr# {1}) was erased because it is a duplicate of channel #{2} (Pr# {3}): {4}.
- ///
- internal static string TllFileSerializer_ERR_dupeChannel {
- get {
- return ResourceManager.GetString("TllFileSerializer_ERR_dupeChannel", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Wrong checksum: calculated {1:x8} but file has {0:x8}.
- ///
- internal static string TllFileSerializer_ERR_wrongChecksum {
- get {
- return ResourceManager.GetString("TllFileSerializer_ERR_wrongChecksum", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to File size {0} is larger than allowed maxiumum of {1}.
- ///
- internal static string TllFileSerializerPlugin_ERR_fileTooBig {
- get {
- return ResourceManager.GetString("TllFileSerializerPlugin_ERR_fileTooBig", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to The file content doesn't match any supported model.
- ///
- internal static string TllFileSerializerPlugin_ERR_modelUnknown {
- get {
- return ResourceManager.GetString("TllFileSerializerPlugin_ERR_modelUnknown", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to LG-Electronics *.tll Loader.
- ///
- internal static string TllFileSerializerPlugin_PluginName {
- get {
- return ResourceManager.GetString("TllFileSerializerPlugin_PluginName", resourceCulture);
- }
- }
- }
-}
diff --git a/ChanSort.Plugin.TllFile2/Resource.de.Designer.cs b/ChanSort.Plugin.TllFile2/Resource.de.Designer.cs
deleted file mode 100644
index e69de29..0000000
diff --git a/ChanSort.Plugin.TllFile2/Resource.de.resx b/ChanSort.Plugin.TllFile2/Resource.de.resx
deleted file mode 100644
index 1cd6f3a..0000000
--- a/ChanSort.Plugin.TllFile2/Resource.de.resx
+++ /dev/null
@@ -1,135 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Prüfsummenfehler: berechnet wurde {1:x8} aber Datei enthält {0:x8}
-
-
- Der Dateiinhalt entstpricht keinem bekannten Modell
-
-
- Dateigröße {0} überschreitet das erlaubte Maximum von {1}
-
-
- LG-Electronics *.tll Loader
-
-
- Sender #{0} (Pr# {1}) wurde gelöscht da er ein Duplikat von Sender #{2} (Pr# {3}) ist: {4}
-
-
\ No newline at end of file
diff --git a/ChanSort.Plugin.TllFile2/Resource.resx b/ChanSort.Plugin.TllFile2/Resource.resx
deleted file mode 100644
index 55d3e21..0000000
--- a/ChanSort.Plugin.TllFile2/Resource.resx
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 1.3
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Wrong checksum: calculated {1:x8} but file has {0:x8}
-
-
- The file content doesn't match any supported model
-
-
- File size {0} is larger than allowed maxiumum of {1}
-
-
- LG-Electronics *.tll Loader
-
-
- Channel #{0} (Pr# {1}) was erased because it is a duplicate of channel #{2} (Pr# {3}): {4}
-
-
\ No newline at end of file
diff --git a/ChanSort.Plugin.TllFile2/SatChannel.cs b/ChanSort.Plugin.TllFile2/SatChannel.cs
deleted file mode 100644
index 016c92a..0000000
--- a/ChanSort.Plugin.TllFile2/SatChannel.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using ChanSort.Api;
-
-namespace ChanSort.Plugin.TllFile
-{
- class SatChannel : TllChannelBase
- {
- private const string _SatConfigIndex = "offSatelliteNr";
- private const string _TransponderIndex = "offTransponderIndex";
-
- public bool InUse { get; private set; }
-
- public SatChannel(int order, int slot, DataMapping data, DataRoot dataRoot) : base(data)
- {
- this.InUse = data.GetWord(_SatConfigIndex) != 0xFFFF;
- if (!InUse)
- return;
-
- this.InitCommonData(slot, SignalSource.DvbS, data);
- this.InitDvbData(data);
-
- int transponderIndex = data.GetWord(_TransponderIndex);
- Transponder transponder = dataRoot.Transponder.TryGet(transponderIndex);
- Satellite sat = transponder.Satellite;
-
- this.Satellite = sat.Name;
- this.SatPosition = sat.OrbitalPosition;
- this.RecordOrder = order;
- this.TransportStreamId = transponder.TransportStreamId;
- this.OriginalNetworkId = transponder.OriginalNetworkId;
- this.SymbolRate = transponder.SymbolRate;
- this.Polarity = transponder.Polarity;
- this.FreqInMhz = transponder.FrequencyInMhz;
- }
-
- public override void UpdateRawData()
- {
- base.UpdateRawData();
-
-// bool deleted = this.NewProgramNr == 0;
-// if (deleted)
- // mapping.SetWord(_SatConfigIndex, 0xFFFF);
- }
- }
-}
diff --git a/ChanSort.Plugin.TllFile2/SatChannelListHeader.cs b/ChanSort.Plugin.TllFile2/SatChannelListHeader.cs
deleted file mode 100644
index 8880b32..0000000
--- a/ChanSort.Plugin.TllFile2/SatChannelListHeader.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using System;
-
-namespace ChanSort.Plugin.TllFile
-{
- internal class SatChannelListHeader
- {
- private readonly byte[] data;
- private readonly int baseOffset;
- public SatChannelListHeader(byte[] data, int offset) { this.data = data; this.baseOffset = offset; }
-
- public uint Checksum { get { return BitConverter.ToUInt32(data, baseOffset + 0); } }
- public int LinkedListStartIndex { get { return BitConverter.ToInt16(data, baseOffset + 8); }}
- public int LinkedListEndIndex1 { get { return BitConverter.ToInt16(data, baseOffset + 10); } }
- public int LinkedListEndIndex2 { get { return BitConverter.ToInt16(data, baseOffset + 12); } }
- public int ChannelCount { get { return BitConverter.ToInt16(data, baseOffset + 14); } }
-
- public int Size { get { return 16; } }
- }
-}
diff --git a/ChanSort.Plugin.TllFile2/SatTransponder.cs b/ChanSort.Plugin.TllFile2/SatTransponder.cs
deleted file mode 100644
index 655f6ce..0000000
--- a/ChanSort.Plugin.TllFile2/SatTransponder.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-
-namespace ChanSort.Plugin.TllFile
-{
- internal class SatTransponder
- {
- private readonly byte[] data;
- public int BaseOffset { get; set; }
-
- public SatTransponder(byte[] data)
- {
- this.data = data;
- }
-
- public int Frequency { get { return BitConverter.ToInt16(data, BaseOffset + 12); } }
- public int OriginalNetworkId { get { return BitConverter.ToInt16(data, BaseOffset + 18); } }
- public int TransportStreamId { get { return BitConverter.ToInt16(data, BaseOffset + 20); } }
-
- public int SymbolRate
- {
- get { return BitConverter.ToInt16(data, BaseOffset + 25); }
- set
- {
- data[BaseOffset + 25] = (byte)value;
- data[BaseOffset + 26] = (byte)(value >> 8);
- }
- }
-
- public int SatIndex { get { return data[BaseOffset + 36]; } }
- }
-}
diff --git a/ChanSort.Plugin.TllFile2/TllChannelBase.cs b/ChanSort.Plugin.TllFile2/TllChannelBase.cs
deleted file mode 100644
index 4307a80..0000000
--- a/ChanSort.Plugin.TllFile2/TllChannelBase.cs
+++ /dev/null
@@ -1,134 +0,0 @@
-using ChanSort.Api;
-
-namespace ChanSort.Plugin.TllFile
-{
- public class TllChannelBase : ChannelInfo
- {
- // common
- private const string _ProgramNr = "offProgramNr";
- private const string _ProgramNr2 = "offProgramNr2"; // not for DVB-S
- private const string _Name = "offName";
- private const string _NameLength = "offNameLength";
- private const string _Favorites = "offFavorites"; // not for DVB-S
-
- private const string _Deleted = "Deleted"; // hack
- private const string _Favorites2 = "offFavorites2";
- private const string _Encrypted = "Encrypted";
-
- private const string _Lock = "Lock";
- private const string _Skip = "Skip";
- private const string _Hide = "Hide";
- private const string _Moved = "ProgNrCustomized";
-
- // DVB
- private const string _ServiceId = "offServiceId";
- private const string _VideoPid = "offVideoPid";
- private const string _AudioPid = "offAudioPid";
- private const string _OriginalNetworkId = "offOriginalNetworkId";
- private const string _TransportStreamId = "offTransportStreamId";
- private const string _ServiceType = "offServiceType";
-
- protected readonly DataMapping mapping;
- protected readonly byte[] rawData;
- internal readonly int baseOffset;
-
- public bool IsDeleted { get; set; }
-
- protected TllChannelBase(DataMapping data)
- {
- this.mapping = data;
- this.rawData = data.Data;
- this.baseOffset = data.BaseOffset;
- }
-
- #region InitCommonData()
- protected void InitCommonData(int slot, SignalSource signalSource, DataMapping data)
- {
- this.RecordIndex = slot;
- this.SignalSource = signalSource;
- var nr = data.GetWord(_ProgramNr);
- this.SignalType = this.GetSignalType(nr);
- this.OldProgramNr = (nr & 0x3FFF);
-
- this.ParseNames();
-
- this.Favorites = (Favorites)((data.GetByte(_Favorites2) & 0x3C) >> 2);
- this.Lock = data.GetFlag(_Lock);
- this.Skip = data.GetFlag(_Skip);
- this.Hidden = data.GetFlag(_Hide);
- this.Encrypted = data.GetFlag(_Encrypted);
- this.IsDeleted = data.GetFlag(_Deleted);
- }
- #endregion
-
- #region InitDvbData()
- protected void InitDvbData(DataMapping data)
- {
- this.ServiceId = data.GetWord(_ServiceId);
- //this.PcrPid = data.GetWord(_PcrPid);
- this.VideoPid = data.GetWord(_VideoPid);
- this.AudioPid = data.GetWord(_AudioPid);
- this.OriginalNetworkId = data.GetWord(_OriginalNetworkId);
- this.TransportStreamId = data.GetWord(_TransportStreamId);
- this.ServiceType = data.GetByte(_ServiceType);
- }
- #endregion
-
- #region GetSignalType()
- protected SignalType GetSignalType(uint programNr)
- {
- if ((programNr & 0x4000) != 0)
- return SignalType.Radio;
- return SignalType.Tv;
- }
- #endregion
-
- #region ParseNames()
- private void ParseNames()
- {
- mapping.SetDataPtr(this.rawData, this.baseOffset);
- DvbStringDecoder dec = new DvbStringDecoder(mapping.DefaultEncoding);
- string longName, shortName;
- dec.GetChannelNames(this.rawData, this.baseOffset + mapping.GetOffsets(_Name)[0], mapping.GetByte(_NameLength),
- out longName, out shortName);
- this.Name = longName;
- this.ShortName = shortName;
- }
- #endregion
-
- #region UpdateRawData()
- public override void UpdateRawData()
- {
- mapping.SetDataPtr(this.rawData, this.baseOffset);
- mapping.SetWord(_ProgramNr, this.NewProgramNr + (this.SignalType == SignalType.Radio ? 0x4000 : 0));
- mapping.SetWord(_ProgramNr2, (mapping.GetWord(_ProgramNr2) & 0x0003) | (this.NewProgramNr << 2));
- if (this.IsNameModified)
- {
- mapping.SetString(_Name, this.Name, 40);
- mapping.SetByte(_NameLength, this.Name.Length);
- this.IsNameModified = false;
- }
- mapping.SetByte(_Favorites2, (mapping.GetByte(_Favorites2)) & 0xC3 | ((byte) this.Favorites << 2));
- mapping.SetByte(_Favorites, (mapping.GetByte(_Favorites) & 0xF0) | (byte)this.Favorites);
- mapping.SetFlag(_Skip, this.Skip);
- mapping.SetFlag(_Lock, this.Lock);
- mapping.SetFlag(_Hide, this.Hidden);
- if (this.NewProgramNr == 0)
- {
- mapping.SetFlag(_Deleted, true);
- mapping.SetByte("off"+_Moved, 0); //skip,lock,hide,moved
- }
- else
- mapping.SetFlag(_Moved, true);
- }
- #endregion
-
- #region ChangeEncoding()
- public override void ChangeEncoding(System.Text.Encoding encoding)
- {
- this.mapping.DefaultEncoding = encoding;
- this.ParseNames();
- }
- #endregion
- }
-}
diff --git a/ChanSort.Plugin.TllFile2/TllFileSerializer.cs b/ChanSort.Plugin.TllFile2/TllFileSerializer.cs
deleted file mode 100644
index 42d1869..0000000
--- a/ChanSort.Plugin.TllFile2/TllFileSerializer.cs
+++ /dev/null
@@ -1,722 +0,0 @@
-#define FIX_SYMBOL_RATE
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Windows.Forms;
-using ChanSort.Api;
-
-namespace ChanSort.Plugin.TllFile
-{
- public class TllFileSerializer : SerializerBase
- {
- private const long MaxFileSize = 2000000;
- private readonly string ERR_fileTooBig = Resource.TllFileSerializerPlugin_ERR_fileTooBig;
- private readonly string ERR_modelUnknown = Resource.TllFileSerializerPlugin_ERR_modelUnknown;
- private readonly string ERR_wrongChecksum = Resource.TllFileSerializer_ERR_wrongChecksum;
- private readonly string ERR_dupeChannel = Resource.TllFileSerializer_ERR_dupeChannel;
-
- private readonly MappingPool actMappings = new MappingPool("Analog and DVB-C/T");
- private readonly MappingPool dvbsMappings = new MappingPool("DVB-S");
- private readonly MappingPool firmwareMappings = new MappingPool("Firmware");
- private readonly Dictionary satConfigs = new Dictionary();
-
- private byte[] fileContent;
-
- private int analogBlockOffset;
- private int firmwareBlockOffset;
- private int dvbctBlockOffset;
- private int dvbsBlockOffset;
- private int[] dvbsSubblockCrcOffset;
- private int settingsBlockOffset;
-
- private int actChannelSize;
- private bool reorderPhysically;
-
- private int analogChannelCount;
- private int dvbctChannelCount;
- private int dvbsChannelCount;
-
- private DvbsDataLayout satConfig;
- private bool isDvbsSymbolRateDiv2;
-
- private Dictionary nextChannelIndex;
- private int firmwareBlockSize;
- private int dvbsBlockSize;
- private int settingsBlockSize;
- private string countryCode;
-
- private int duplicateChannels;
- private int deletedChannelsHard;
- private int deletedChannelsSoft;
- private int dvbsChannelsAtPr0;
-
- private bool removeDeletedActChannels;
-
- #region ctor()
- public TllFileSerializer(string inputFile) : base(inputFile)
- {
-
- this.Features.ChannelNameEdit = true;
- this.Features.EraseChannelData = true;
- this.Features.FileInformation = true;
- this.Features.DeviceSettings = true;
- this.SupportedTvCountryCodes = new List
- {
- "___ (None)", "AUT (Austria)", "BEL (Belgium)", "CHE (Switzerland)",
- "DEU (Germany)", "ESP (Spain)", "FRA (France)", "GBR (Great Britain)",
- "GRC (Greece)", "IRL (Ireland)", "ITA (Italy)", "LUX (Luxembourg)",
- "NLD (Netherlands)", "PRT (Portugal)", "SVN (Slovenia)"
- };
-
- this.ReadConfigurationFromIniFile();
- }
- #endregion
-
- public IList SupportedTvCountryCodes { get; private set; }
-
- #region ReadConfigurationFromIniFile()
-
- private void ReadConfigurationFromIniFile()
- {
- string iniFile = Assembly.GetExecutingAssembly().Location.Replace(".dll", ".ini");
- IniFile ini = new IniFile(iniFile);
- foreach (var section in ini.Sections)
- {
- int idx = section.Name.IndexOf(":");
- int recordLength = idx < 0 ? 0 : int.Parse(section.Name.Substring(idx + 1));
- if (section.Name.StartsWith("DvbsBlock"))
- this.satConfigs.Add(recordLength, new DvbsDataLayout(section));
- else if (section.Name.StartsWith("ACTChannelDataMapping"))
- actMappings.AddMapping(recordLength, new DataMapping(section));
- else if (section.Name.StartsWith("SatChannelDataMapping"))
- dvbsMappings.AddMapping(recordLength, new DataMapping(section));
- else if (section.Name.StartsWith("FirmwareData"))
- firmwareMappings.AddMapping(recordLength, new FirmwareData(section));
- }
- }
- #endregion
-
-
- #region DisplayName
- public override string DisplayName { get { return "TLL loader"; } }
- #endregion
-
- #region Load()
-
- public override void Load()
- {
- long fileSize = new FileInfo(this.FileName).Length;
- if (fileSize > MaxFileSize)
- throw new InvalidOperationException(string.Format(ERR_fileTooBig, fileSize, MaxFileSize));
-
- this.fileContent = File.ReadAllBytes(this.FileName);
- int off = 0;
-
- this.ReadFileHeader(ref off);
- this.ReadAnalogChannelBlock(ref off);
- this.ReadFirmwareDataBlock(ref off);
- this.ReadDvbCtChannels(ref off);
- this.ReadDvbSBlock(ref off);
- this.ReadSettingsBlock(ref off);
- }
-
- #endregion
-
- #region ReadFileHeader()
- private void ReadFileHeader(ref int off)
- {
- if (fileContent.Length < 4)
- throw new InvalidOperationException(ERR_modelUnknown);
- if (BitConverter.ToUInt32(fileContent, off) == 0x5A5A5A5A)
- off += 4;
- }
- #endregion
-
- #region ReadAnalogChannelBlock()
-
- private void ReadAnalogChannelBlock(ref int off)
- {
- this.analogBlockOffset = off;
- this.ReadActChannelBlock(ref off, out analogChannelCount, out actChannelSize,
- (slot, data) => new AnalogChannel(slot, data));
- }
- #endregion
-
- #region ReadFirmwareDataBlock()
- private void ReadFirmwareDataBlock(ref int off)
- {
- this.firmwareBlockOffset = off;
- this.firmwareBlockSize = this.GetBlockSize(off);
- off += 4 + this.firmwareBlockSize;
- }
- #endregion
-
- #region ReadDvbCtChannels()
- private void ReadDvbCtChannels(ref int off)
- {
- this.dvbctBlockOffset = off;
- this.ReadActChannelBlock(ref off, out dvbctChannelCount, out actChannelSize,
- (slot, data) => new DtvChannel(slot, data));
- }
- #endregion
-
- #region ReadDvbSBlock()
- private void ReadDvbSBlock(ref int off)
- {
- int blockSize;
- if (!IsDvbsBlock(off, out blockSize))
- return;
-
- this.dvbsBlockSize = blockSize;
- this.dvbsBlockOffset = off;
- off += 4;
-
- this.satConfig = this.satConfigs.TryGet(blockSize);
- if (satConfig != null)
- this.ReadDvbsSubblocks(ref off);
- else
- {
- this.DataRoot.Warnings.AppendFormat("DVB-S data format is not supported (size={0})\n", blockSize);
- off += blockSize;
- }
- }
- #endregion
-
- #region ReadSettingsBlock()
- private void ReadSettingsBlock(ref int off)
- {
- this.settingsBlockOffset = off;
- if (this.settingsBlockOffset >= fileContent.Length)
- {
- this.settingsBlockOffset = 0;
- return;
- }
-
- this.settingsBlockSize = this.GetBlockSize(off);
- off += 4;
- if (settingsBlockSize >= 8)
- {
- StringBuilder code = new StringBuilder();
- for (int i = 6; i >= 4; i--)
- code.Append((char)fileContent[off + i]);
- this.countryCode = code.ToString();
- }
- off += settingsBlockSize;
- }
- #endregion
-
-
- #region ReadActChannelBlock()
- private void ReadActChannelBlock(ref int off, out int channelCount, out int recordSize,
- Func channelFactory)
- {
- recordSize = 0;
- int blockSize = this.GetBlockSize(off, minSize: 2);
- off += 4;
- channelCount = BitConverter.ToInt32(fileContent, off);
- off += 4;
- if (channelCount == 0) return;
-
- recordSize = GetActChannelRecordSize(off, blockSize, channelCount);
- var actMapping = this.actMappings.GetMapping(recordSize);
- this.reorderPhysically = actMapping.Settings.GetInt("reorderChannelData") != 0;
-
- for (int i = 0; i < channelCount; i++)
- {
- actMapping.SetDataPtr(fileContent, off);
- ChannelInfo ci = channelFactory(i, actMapping);
-
- var list = this.DataRoot.GetChannelList(ci.SignalSource, ci.SignalType, true);
- this.DataRoot.AddChannel(list, ci);
-
- off += recordSize;
- }
- }
- #endregion
-
- #region GetBlockSize()
- private int GetBlockSize(int off, int minSize = 0)
- {
- long len = BitConverter.ToUInt32(fileContent, off);
- if (len < minSize || off + 4 + len > fileContent.Length)
- throw new InvalidOperationException(ERR_modelUnknown);
- return (int)len;
- }
- #endregion
-
- #region GetActChannelRecordSize()
- private int GetActChannelRecordSize(int off, int blockSize, int channelCount)
- {
- if ((blockSize - 4) % channelCount != 0)
- throw new InvalidOperationException(ERR_modelUnknown);
- int recordSize = (blockSize - 4) / channelCount;
- if (off + channelCount * recordSize > fileContent.Length)
- throw new InvalidOperationException(ERR_modelUnknown);
- return recordSize;
- }
- #endregion
-
-
- #region IsDvbsBlock()
- private bool IsDvbsBlock(int off, out int blockSize)
- {
- blockSize = 0;
- if (off >= fileContent.Length)
- return false;
- blockSize = this.GetBlockSize(off);
- if (blockSize < 12)
- return false;
- ulong blockId = BitConverter.ToUInt64(fileContent, off + 8);
- if (blockId != 0x0032532D53425644) // reverse "DVBS-S2\0"
- return false;
- return true;
- }
- #endregion
-
- #region ReadDvbsSubblocks()
- private void ReadDvbsSubblocks(ref int off)
- {
- this.ScanDvbSSubBlockChecksums(off);
-
- // subblock 1 (DVBS header)
- off += 16;
-
- // subblock 2 (satellites)
- off += 84; // irrelevant data
- this.ReadSatellites(ref off);
-
- // subblock 3 (transponder)
- off += satConfig.sizeOfTransponderBlockHeader;
- this.ReadTransponderData(ref off);
-
- // subblock 4 (channels)
- SatChannelListHeader header = new SatChannelListHeader(fileContent, off);
- this.dvbsChannelCount = header.ChannelCount;
- off += header.Size;
- off += satConfig.dvbsMaxChannelCount/8; // skip allocation bitmap
- this.ReadDvbsChannelLinkedList(ref off);
-
- this.ReadDvbSChannels(ref off, header.LinkedListStartIndex);
-
- // subblock 5 (satellite/LNB config)
- off += satConfig.LnbBlockHeaderSize + satConfig.lnbCount*satConfig.lnbLength;
- }
- #endregion
-
- #region ScanDvbSSubBlockChecksums()
- private void ScanDvbSSubBlockChecksums(int off)
- {
- this.dvbsSubblockCrcOffset = new int[satConfig.dvbsSubblockLength.Length];
- for (int i = 0; i < dvbsSubblockCrcOffset.Length; i++)
- {
- this.dvbsSubblockCrcOffset[i] = off;
- int subblockLength = satConfig.dvbsSubblockLength[i];
- uint fileCrc = BitConverter.ToUInt32(fileContent, off);
- uint calcCrc = Crc32.CalcCrc32(fileContent, off + 4, subblockLength);
- if (fileCrc != calcCrc)
- throw new IOException(string.Format(ERR_wrongChecksum, calcCrc, fileCrc));
- off += 4 + subblockLength;
- }
- }
- #endregion
-
- #region ReadSatellites()
- private void ReadSatellites(ref int off)
- {
- for (int i = 0; i < satConfig.satCount; i++)
- {
- Satellite sat = new Satellite(i);
- string satName = Encoding.ASCII.GetString(fileContent, off + 0, 32).TrimEnd('\0');
- sat.Name = satName;
- sat.OrbitalPosition = GetSatLocation(fileContent[off + 32], fileContent[off + 33]);
- this.DataRoot.AddSatellite(sat);
- off += satConfig.satLength;
- }
- }
- #endregion
-
- #region ReadTransponderData()
- private void ReadTransponderData(ref int off)
- {
- var data = new SatTransponder(fileContent);
- data.BaseOffset = off;
- for (int i=0; i= 95)
- data.SymbolRate = (ushort)((data.SymbolRate & 0x8000) | ((sr / 100 + 1) * 100));
-#endif
-
- Transponder transponder = new Transponder(i);
- transponder.FrequencyInMhz = data.Frequency;
- transponder.OriginalNetworkId = data.OriginalNetworkId;
- transponder.TransportStreamId = data.TransportStreamId;
- transponder.SymbolRate = data.SymbolRate & 0x7FFF;
- if (data.SymbolRate == 11000)
- this.isDvbsSymbolRateDiv2 = true;
-
- var sat = this.DataRoot.Satellites.TryGet(data.SatIndex/2);
- this.DataRoot.AddTransponder(sat, transponder);
-
- data.BaseOffset += satConfig.transponderLength;
- }
-
- if (this.isDvbsSymbolRateDiv2)
- {
- foreach (var transponder in this.DataRoot.Transponder.Values)
- transponder.SymbolRate *= 2;
- }
-
- off += this.satConfig.transponderCount * this.satConfig.transponderLength;
- }
- #endregion
-
- #region ReadDvbsChannelLinkedList()
- private void ReadDvbsChannelLinkedList(ref int off)
- {
- this.nextChannelIndex = new Dictionary();
- for (int i = 0; i < satConfig.dvbsMaxChannelCount; i++)
- {
- int offEntry = off + i*satConfig.sizeOfChannelIndexTableEntry;
- int cur = BitConverter.ToUInt16(fileContent, offEntry + 4);
- if (cur != i)
- break;
- this.nextChannelIndex.Add(cur, BitConverter.ToUInt16(fileContent, offEntry + 2));
- }
- off += satConfig.dvbsMaxChannelCount*satConfig.sizeOfChannelIndexTableEntry;
- }
- #endregion
-
- #region ReadDvbSChannels()
- private void ReadDvbSChannels(ref int off, int startIndex)
- {
- var mapping = this.dvbsMappings.GetMapping(satConfig.dvbsChannelLength);
- int index = startIndex;
- for (int i = 0; i < this.dvbsChannelCount; i++)
- {
- int recordOffset = off + index*satConfig.dvbsChannelLength;
- mapping.SetDataPtr(fileContent, recordOffset);
- SatChannel ci = new SatChannel(i, index, mapping, this.DataRoot);
- if (!ci.InUse)
- ++this.deletedChannelsHard;
- else if (ci.IsDeleted)
- ++this.deletedChannelsSoft;
- else
- {
- var list = this.DataRoot.GetChannelList(ci.SignalSource, ci.SignalType, true);
- var dupes = list.GetChannelByUid(ci.Uid);
- if (dupes.Count == 0)
- {
- if (ci.OldProgramNr == 0)
- ++this.dvbsChannelsAtPr0;
- this.DataRoot.AddChannel(list, ci);
- }
- else
- {
- // duplicate channels (ONID,TSID,SSID) cause the TV to randomly reorder channels and show wrong ones in the
- // program list, so we erase all dupes here
- this.DataRoot.Warnings.AppendFormat(ERR_dupeChannel, ci.RecordIndex, ci.OldProgramNr, dupes[0].RecordIndex,
- dupes[0].OldProgramNr, dupes[0].Name).AppendLine();
- this.EraseDuplicateDvbsChannel(recordOffset, satConfig);
- ++this.duplicateChannels;
- }
- }
-
- if (!this.nextChannelIndex.TryGetValue(index, out index) || index == -1)
- break;
- }
- off += satConfig.dvbsMaxChannelCount * satConfig.dvbsChannelLength;
- }
- #endregion
-
- #region EraseDuplicateDvbsChannel()
- private void EraseDuplicateDvbsChannel(int off, DvbsDataLayout c)
- {
- for (int i = 0; i < c.dvbsChannelLength; i++)
- fileContent[off++] = 0xFF;
- }
- #endregion
-
- #region GetSatLocation()
- private string GetSatLocation(byte degree, byte fractionAndOrientation)
- {
- return string.Format("{0}.{1}{2}", degree, fractionAndOrientation & 0x0f, fractionAndOrientation < 16 ? "W" : "E");
- }
- #endregion
-
-
-
- #region Save()
- public override void Save(string tvOutputFile, string csvOutputFile)
- {
- int newAnalogChannelCount;
- int newDvbctChannelCount;
- this.UpdateRawChannelData(out newAnalogChannelCount, out newDvbctChannelCount);
-
- if (!removeDeletedActChannels)
- {
- newAnalogChannelCount = this.analogChannelCount;
- newDvbctChannelCount = this.dvbctChannelCount;
- }
-
- if (this.reorderPhysically || this.removeDeletedActChannels)
- this.ReorderActChannelsPhysically();
-
- if (satConfig != null)
- this.UpdateDvbsChecksums();
-
- using (var file = new BinaryWriter(new FileStream(tvOutputFile, FileMode.Create, FileAccess.Write)))
- {
- // header
- file.Write(this.fileContent, 0, this.analogBlockOffset);
-
- // analog
- file.Write(newAnalogChannelCount*this.actChannelSize + 4);
- file.Write(newAnalogChannelCount);
- file.Write(fileContent, this.analogBlockOffset + 8, newAnalogChannelCount*this.actChannelSize);
-
- // firmware
- file.Write(fileContent, this.firmwareBlockOffset, this.firmwareBlockSize + 4);
-
- // DVB-CT
- file.Write(newDvbctChannelCount*this.actChannelSize + 4);
- file.Write(newDvbctChannelCount);
- file.Write(fileContent, this.dvbctBlockOffset + 8, newDvbctChannelCount * this.actChannelSize);
-
- // DVB-S
- if (this.dvbsBlockOffset != 0)
- file.Write(fileContent, this.dvbsBlockOffset, this.dvbsBlockSize + 4);
-
- // rest (including settings)
- file.Write(fileContent, this.settingsBlockOffset, fileContent.Length - this.settingsBlockOffset);
- }
- }
- #endregion
-
- #region UpdateRawChannelData()
- private void UpdateRawChannelData(out int newAnalogChannelCount, out int newDvbctChannelCount)
- {
- newAnalogChannelCount = 0;
- newDvbctChannelCount = 0;
- foreach (var list in this.DataRoot.ChannelLists)
- {
- foreach (TllChannelBase channel in list.Channels)
- {
- if (channel.NewProgramNr != 0)
- {
- if ((channel.SignalSource & SignalSource.Digital) == 0)
- ++newAnalogChannelCount;
- else if (channel.SignalSource != SignalSource.DvbS)
- ++newDvbctChannelCount;
- }
- channel.OldProgramNr = channel.NewProgramNr;
- channel.UpdateRawData();
- }
- }
- }
- #endregion
-
- #region ReorderActChannelsPhysically()
- private void ReorderActChannelsPhysically()
- {
- var analogTv = this.DataRoot.GetChannelList(SignalSource.AnalogCT, SignalType.Tv, false);
- var analogRadio = this.DataRoot.GetChannelList(SignalSource.AnalogCT, SignalType.Radio, false);
- var analog = analogTv.Channels.Union(analogRadio.Channels).ToList();
- this.ReorderChannelData(this.analogBlockOffset + 8, this.actChannelSize, this.analogChannelCount, analog);
-
- var dvbCtTv = this.DataRoot.GetChannelList(SignalSource.DvbCT, SignalType.Tv, false);
- var dvbCtRadio = this.DataRoot.GetChannelList(SignalSource.DvbCT, SignalType.Radio, false);
- var dvbCt = dvbCtTv.Channels.Union(dvbCtRadio.Channels).ToList();
- this.ReorderChannelData(this.dvbctBlockOffset + 8, this.actChannelSize, this.dvbctChannelCount, dvbCt);
- }
- #endregion
-
-
- #region ReorderChannelData()
- private void ReorderChannelData(int channelDataOffset, int channelDataLength, int recordCount, IList sortedList)
- {
- if (sortedList.Count == 0) return;
- byte[] copy = new byte[recordCount * channelDataLength];
- Array.Copy(fileContent, channelDataOffset, copy, 0, copy.Length);
-
- int pTarget = channelDataOffset;
- int slot = 0;
- foreach (ChannelInfo appChannel in sortedList)
- {
- if (appChannel.NewProgramNr <= 0 && this.removeDeletedActChannels)
- continue;
- if (appChannel.RecordIndex != slot)
- {
- Array.Copy(copy, appChannel.RecordIndex*channelDataLength, fileContent, pTarget, channelDataLength);
- appChannel.RecordIndex = slot;
- }
- ++slot;
- pTarget += channelDataLength;
- }
- }
- #endregion
-
- #region UpdateDvbsChecksums()
- private void UpdateDvbsChecksums()
- {
- for (int i = 0; i < this.dvbsSubblockCrcOffset.Length; i++)
- {
- uint crc32 = Crc32.CalcCrc32(fileContent, this.dvbsSubblockCrcOffset[i] + 4, satConfig.dvbsSubblockLength[i]);
- var bytes = BitConverter.GetBytes(crc32);
- for (int j = 0; j < bytes.Length; j++)
- fileContent[this.dvbsSubblockCrcOffset[i] + j] = bytes[j];
- }
- }
- #endregion
-
-
- #region DefaultEncoding
- public override Encoding DefaultEncoding
- {
- get { return base.DefaultEncoding; }
- set
- {
- if (Equals(value, this.DefaultEncoding))
- return;
- base.DefaultEncoding = value;
- if (this.DataRoot.IsEmpty)
- return;
- ChangeEncoding();
- }
- }
- #endregion
-
- #region ChangeEncoding()
-
- private void ChangeEncoding()
- {
- foreach (var list in DataRoot.ChannelLists)
- {
- foreach (var channel in list.Channels)
- channel.ChangeEncoding(this.DefaultEncoding);
- }
- }
- #endregion
-
- // TvSettingsForm
-
- #region GetFileInformation()
- public override string GetFileInformation()
- {
- StringBuilder sb = new StringBuilder();
- sb.AppendLine("ANALOG");
- sb.Append("Number of data records: ").Append(this.analogChannelCount).AppendLine();
- sb.Append("Length of data record: ").Append(this.actChannelSize).AppendLine();
- sb.AppendLine();
-
- sb.AppendLine();
- sb.AppendLine("DVB-C/T");
- sb.Append("Number of data records: ").Append(this.dvbctChannelCount).AppendLine();
- sb.Append("Length of data record: ").Append(this.actChannelSize).AppendLine();
- sb.AppendLine();
-
- sb.AppendLine();
- sb.AppendLine("DVB-S");
- if (satConfig != null)
- {
- int numberOfDupePrNr;
- CountDuplicateRecords(out numberOfDupePrNr);
- sb.Append("Max number of data records: ").Append(satConfig.dvbsMaxChannelCount).AppendLine();
- sb.Append("Length of data record: ").Append(satConfig.dvbsChannelLength).AppendLine();
- sb.Append("Channel records in use: ").Append(dvbsChannelCount).AppendLine();
- sb.Append("Channel records marked hard-deleted: ").Append(this.deletedChannelsHard).AppendLine();
- sb.Append("Channel records marked soft-deleted: ").Append(this.deletedChannelsSoft).AppendLine();
- sb.Append("Channel records erased (duplicates): ").Append(this.duplicateChannels).AppendLine();
- sb.Append("Channel records with Pr# 0: ").Append(dvbsChannelsAtPr0).AppendLine();
- sb.Append("Channel records with duplicate Pr#: ").Append(numberOfDupePrNr).AppendLine();
- }
- else
- sb.AppendLine("not present");
-
- return sb.ToString();
- }
-
- private void CountDuplicateRecords(out int numberOfDupePrNr)
- {
- numberOfDupePrNr = 0;
- foreach (var list in this.DataRoot.ChannelLists)
- {
- if ((list.SignalSource & SignalSource.Sat) != 0)
- numberOfDupePrNr += list.DuplicateProgNrCount;
- }
- }
- #endregion
-
- #region TvCountryCode
- public string TvCountryCode
- {
- get { return this.countryCode; }
- set
- {
- if (value.Length < 3 || this.settingsBlockOffset == 0 || this.settingsBlockSize < 8) return;
- value = value.ToUpper();
- int off = this.settingsBlockOffset + 4 + 4 + 2;
- for (int i = 0; i < 3; i++)
- this.fileContent[off--] = (byte)value[i];
- this.countryCode = value;
- }
- }
- #endregion
-
- #region ShowDeviceSettingsForm()
- public override void ShowDeviceSettingsForm(object parentWindow)
- {
- using (var dlg = new TvSettingsForm(this))
- {
- dlg.ShowDialog((Form)parentWindow);
- }
- }
- #endregion
-
- #region GetFirmwareMapping()
- public FirmwareData GetFirmwareMapping()
- {
- var mapping = this.firmwareMappings.GetMapping(this.firmwareBlockSize, false);
- if (mapping == null) return null;
- mapping.SetDataPtr(this.fileContent, this.firmwareBlockOffset);
- return mapping;
- }
- #endregion
-
- // Testing
-
- #region GetHotelMenuOffset()
- public int GetHotelMenuOffset()
- {
- int off = this.firmwareBlockOffset;
- for (int i = 6500; i < this.FirmwareBlockSize - 3; i++)
- {
- if (BitConverter.ToUInt32(this.fileContent, off + i) == 0x05000101) // 1,1,0,5
- {
- for (int j = 5; j < 20; j++) // backtrack to find Volume/MaxVolue pattern
- {
- if (fileContent[off + i - j] == 101 && fileContent[off + i - j - 6] == 100)
- // check for Volume/MaxVolue to be 101/100
- return this.firmwareBlockOffset + i - j - 15;
- }
- return -1;
- }
- }
- return -1;
- }
- #endregion
-
- internal int ACTChannelLength { get { return this.actChannelSize; } }
- internal bool HasDvbs { get { return dvbsBlockOffset != 0; } }
- internal int SatChannelLength { get { return satConfig != null ? satConfig.dvbsChannelLength : 0; } }
- internal bool SatSymbolRateDiv2 { get { return this.isDvbsSymbolRateDiv2; } }
- internal int FirmwareBlockSize { get { return this.firmwareBlockSize; } }
- }
-}
diff --git a/ChanSort.Plugin.TllFile2/TllFileSerializerPlugin.cs b/ChanSort.Plugin.TllFile2/TllFileSerializerPlugin.cs
deleted file mode 100644
index b4853c8..0000000
--- a/ChanSort.Plugin.TllFile2/TllFileSerializerPlugin.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System.IO;
-using ChanSort.Api;
-
-namespace ChanSort.Plugin.TllFile
-{
- public class TllFileSerializerPlugin : ISerializerPlugin
- {
- private const int MAX_FILE_SIZE = 16*1000*1000;
- private readonly string ERR_fileTooBig = Resource.TllFileSerializerPlugin_ERR_fileTooBig;
-
-
- public string PluginName { get { return Resource.TllFileSerializerPlugin_PluginName; } }
- public string FileFilter { get { return "*.TLL"; } }
-
- #region CreateSerializer()
- public SerializerBase CreateSerializer(string inputFile)
- {
- long fileSize = new FileInfo(inputFile).Length;
- if (fileSize > MAX_FILE_SIZE)
- throw new IOException(string.Format(ERR_fileTooBig, fileSize, MAX_FILE_SIZE));
-
- return new TllFileSerializer(inputFile);
- }
- #endregion
-
- }
-}
diff --git a/ChanSort.Plugin.TllFile2/TvSettingsForm.Designer.cs b/ChanSort.Plugin.TllFile2/TvSettingsForm.Designer.cs
deleted file mode 100644
index c61de4f..0000000
--- a/ChanSort.Plugin.TllFile2/TvSettingsForm.Designer.cs
+++ /dev/null
@@ -1,223 +0,0 @@
-namespace ChanSort.Plugin.TllFile
-{
- partial class TvSettingsForm
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
-
- ///
- /// Clean up any resources being used.
- ///
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form Designer generated code
-
- ///
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- ///
- private void InitializeComponent()
- {
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TvSettingsForm));
- this.grpSettings = new DevExpress.XtraEditors.GroupControl();
- this.cbHbbTv = new DevExpress.XtraEditors.CheckEdit();
- this.cbCustomCountry = new DevExpress.XtraEditors.CheckEdit();
- this.comboBoxEdit1 = new DevExpress.XtraEditors.ComboBoxEdit();
- this.labelControl1 = new DevExpress.XtraEditors.LabelControl();
- this.btnOk = new DevExpress.XtraEditors.SimpleButton();
- this.btnCancel = new DevExpress.XtraEditors.SimpleButton();
- this.grpHotelMode = new DevExpress.XtraEditors.GroupControl();
- this.labelControl3 = new DevExpress.XtraEditors.LabelControl();
- this.labelControl2 = new DevExpress.XtraEditors.LabelControl();
- this.cbDtvUpdate = new DevExpress.XtraEditors.CheckEdit();
- this.cbHotelMode = new DevExpress.XtraEditors.CheckEdit();
- this.cbAutoChannelUpdate = new DevExpress.XtraEditors.CheckEdit();
- this.groupControl1 = new DevExpress.XtraEditors.GroupControl();
- this.grpFirmwareNote = new DevExpress.XtraEditors.GroupControl();
- this.labelControl4 = new DevExpress.XtraEditors.LabelControl();
- ((System.ComponentModel.ISupportInitialize)(this.grpSettings)).BeginInit();
- this.grpSettings.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.cbHbbTv.Properties)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.cbCustomCountry.Properties)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.comboBoxEdit1.Properties)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.grpHotelMode)).BeginInit();
- this.grpHotelMode.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.cbDtvUpdate.Properties)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.cbHotelMode.Properties)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.cbAutoChannelUpdate.Properties)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.groupControl1)).BeginInit();
- this.groupControl1.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.grpFirmwareNote)).BeginInit();
- this.grpFirmwareNote.SuspendLayout();
- this.SuspendLayout();
- //
- // grpSettings
- //
- this.grpSettings.Controls.Add(this.cbHbbTv);
- this.grpSettings.Controls.Add(this.cbCustomCountry);
- this.grpSettings.Controls.Add(this.comboBoxEdit1);
- this.grpSettings.Controls.Add(this.labelControl1);
- resources.ApplyResources(this.grpSettings, "grpSettings");
- this.grpSettings.Name = "grpSettings";
- //
- // cbHbbTv
- //
- resources.ApplyResources(this.cbHbbTv, "cbHbbTv");
- this.cbHbbTv.Name = "cbHbbTv";
- this.cbHbbTv.Properties.Caption = resources.GetString("cbHbbTv.Properties.Caption");
- //
- // cbCustomCountry
- //
- resources.ApplyResources(this.cbCustomCountry, "cbCustomCountry");
- this.cbCustomCountry.Name = "cbCustomCountry";
- this.cbCustomCountry.Properties.Caption = resources.GetString("cbCustomCountry.Properties.Caption");
- this.cbCustomCountry.CheckedChanged += new System.EventHandler(this.cbCustomCountry_CheckedChanged);
- //
- // comboBoxEdit1
- //
- resources.ApplyResources(this.comboBoxEdit1, "comboBoxEdit1");
- this.comboBoxEdit1.Name = "comboBoxEdit1";
- this.comboBoxEdit1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
- new DevExpress.XtraEditors.Controls.EditorButton(((DevExpress.XtraEditors.Controls.ButtonPredefines)(resources.GetObject("comboBoxEdit1.Properties.Buttons"))))});
- this.comboBoxEdit1.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;
- //
- // labelControl1
- //
- resources.ApplyResources(this.labelControl1, "labelControl1");
- this.labelControl1.Name = "labelControl1";
- //
- // btnOk
- //
- resources.ApplyResources(this.btnOk, "btnOk");
- this.btnOk.DialogResult = System.Windows.Forms.DialogResult.OK;
- this.btnOk.Name = "btnOk";
- this.btnOk.Click += new System.EventHandler(this.btnOk_Click);
- //
- // btnCancel
- //
- resources.ApplyResources(this.btnCancel, "btnCancel");
- this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.btnCancel.Name = "btnCancel";
- //
- // grpHotelMode
- //
- this.grpHotelMode.Controls.Add(this.labelControl3);
- this.grpHotelMode.Controls.Add(this.labelControl2);
- this.grpHotelMode.Controls.Add(this.cbDtvUpdate);
- this.grpHotelMode.Controls.Add(this.cbHotelMode);
- resources.ApplyResources(this.grpHotelMode, "grpHotelMode");
- this.grpHotelMode.Name = "grpHotelMode";
- //
- // labelControl3
- //
- resources.ApplyResources(this.labelControl3, "labelControl3");
- this.labelControl3.Name = "labelControl3";
- //
- // labelControl2
- //
- resources.ApplyResources(this.labelControl2, "labelControl2");
- this.labelControl2.Name = "labelControl2";
- //
- // cbDtvUpdate
- //
- resources.ApplyResources(this.cbDtvUpdate, "cbDtvUpdate");
- this.cbDtvUpdate.Name = "cbDtvUpdate";
- this.cbDtvUpdate.Properties.Caption = resources.GetString("cbDtvUpdate.Properties.Caption");
- //
- // cbHotelMode
- //
- resources.ApplyResources(this.cbHotelMode, "cbHotelMode");
- this.cbHotelMode.Name = "cbHotelMode";
- this.cbHotelMode.Properties.Caption = resources.GetString("cbHotelMode.Properties.Caption");
- //
- // cbAutoChannelUpdate
- //
- resources.ApplyResources(this.cbAutoChannelUpdate, "cbAutoChannelUpdate");
- this.cbAutoChannelUpdate.Name = "cbAutoChannelUpdate";
- this.cbAutoChannelUpdate.Properties.Caption = resources.GetString("cbAutoChannelUpdate.Properties.Caption");
- //
- // groupControl1
- //
- this.groupControl1.Controls.Add(this.cbAutoChannelUpdate);
- resources.ApplyResources(this.groupControl1, "groupControl1");
- this.groupControl1.Name = "groupControl1";
- //
- // grpFirmwareNote
- //
- this.grpFirmwareNote.Controls.Add(this.labelControl4);
- resources.ApplyResources(this.grpFirmwareNote, "grpFirmwareNote");
- this.grpFirmwareNote.Name = "grpFirmwareNote";
- //
- // labelControl4
- //
- resources.ApplyResources(this.labelControl4, "labelControl4");
- this.labelControl4.Name = "labelControl4";
- //
- // TvSettingsForm
- //
- this.AcceptButton = this.btnOk;
- this.Appearance.Options.UseBackColor = true;
- resources.ApplyResources(this, "$this");
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.CancelButton = this.btnCancel;
- this.Controls.Add(this.grpHotelMode);
- this.Controls.Add(this.btnCancel);
- this.Controls.Add(this.btnOk);
- this.Controls.Add(this.grpSettings);
- this.Controls.Add(this.groupControl1);
- this.Controls.Add(this.grpFirmwareNote);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
- this.MaximizeBox = false;
- this.MinimizeBox = false;
- this.Name = "TvSettingsForm";
- this.Load += new System.EventHandler(this.TvSettingsForm_Load);
- ((System.ComponentModel.ISupportInitialize)(this.grpSettings)).EndInit();
- this.grpSettings.ResumeLayout(false);
- this.grpSettings.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.cbHbbTv.Properties)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.cbCustomCountry.Properties)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.comboBoxEdit1.Properties)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.grpHotelMode)).EndInit();
- this.grpHotelMode.ResumeLayout(false);
- this.grpHotelMode.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.cbDtvUpdate.Properties)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.cbHotelMode.Properties)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.cbAutoChannelUpdate.Properties)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.groupControl1)).EndInit();
- this.groupControl1.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.grpFirmwareNote)).EndInit();
- this.grpFirmwareNote.ResumeLayout(false);
- this.ResumeLayout(false);
-
- }
-
- #endregion
-
- private DevExpress.XtraEditors.GroupControl grpSettings;
- private DevExpress.XtraEditors.ComboBoxEdit comboBoxEdit1;
- private DevExpress.XtraEditors.LabelControl labelControl1;
- private DevExpress.XtraEditors.SimpleButton btnOk;
- private DevExpress.XtraEditors.SimpleButton btnCancel;
- private DevExpress.XtraEditors.CheckEdit cbCustomCountry;
- private DevExpress.XtraEditors.GroupControl grpHotelMode;
- private DevExpress.XtraEditors.CheckEdit cbHbbTv;
- private DevExpress.XtraEditors.CheckEdit cbDtvUpdate;
- private DevExpress.XtraEditors.CheckEdit cbHotelMode;
- private DevExpress.XtraEditors.CheckEdit cbAutoChannelUpdate;
- private DevExpress.XtraEditors.GroupControl groupControl1;
- private DevExpress.XtraEditors.LabelControl labelControl3;
- private DevExpress.XtraEditors.LabelControl labelControl2;
- private DevExpress.XtraEditors.GroupControl grpFirmwareNote;
- private DevExpress.XtraEditors.LabelControl labelControl4;
- }
-}
\ No newline at end of file
diff --git a/ChanSort.Plugin.TllFile2/TvSettingsForm.cs b/ChanSort.Plugin.TllFile2/TvSettingsForm.cs
deleted file mode 100644
index 7bf7cfc..0000000
--- a/ChanSort.Plugin.TllFile2/TvSettingsForm.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-using System;
-using DevExpress.XtraEditors;
-using DevExpress.XtraEditors.Controls;
-
-namespace ChanSort.Plugin.TllFile
-{
- public partial class TvSettingsForm : XtraForm
- {
- private readonly TllFileSerializer tvSerializer;
-
- public TvSettingsForm(TllFileSerializer tvSerializer)
- {
- this.tvSerializer = tvSerializer;
- InitializeComponent();
- }
-
- private void TvSettingsForm_Load(object sender, EventArgs e)
- {
- var items = tvSerializer.SupportedTvCountryCodes;
- foreach(var item in items)
- this.comboBoxEdit1.Properties.Items.Add(item);
- this.comboBoxEdit1.Text = this.tvSerializer.TvCountryCode;
-
- var mapping = this.tvSerializer.GetFirmwareMapping();
- if (mapping != null)
- {
- this.cbAutoChannelUpdate.Checked = mapping.SettingsAutomaticChannelUpdate;
- this.cbHbbTv.Checked = mapping.HbbTvEnabled;
- this.cbHotelMode.Checked = mapping.HotelModeEnabled;
- this.cbDtvUpdate.Checked = mapping.HotelModeDtvUpdate;
-
- this.grpFirmwareNote.Visible = false;
- this.Height -= this.grpFirmwareNote.Height;
- }
- else
- {
- this.cbAutoChannelUpdate.Enabled = false;
- this.cbHbbTv.Enabled = false;
- this.cbHotelMode.Enabled = false;
- this.cbDtvUpdate.Enabled = false;
- }
- }
-
- private void btnOk_Click(object sender, EventArgs e)
- {
- this.tvSerializer.TvCountryCode = this.comboBoxEdit1.Text;
-
- var mapping = this.tvSerializer.GetFirmwareMapping();
- if (mapping != null)
- {
- mapping.SettingsAutomaticChannelUpdate = this.cbAutoChannelUpdate.Checked;
- mapping.HbbTvEnabled = this.cbHbbTv.Checked;
- mapping.HotelModeEnabled = this.cbHotelMode.Checked;
- mapping.HotelModeDtvUpdate = this.cbDtvUpdate.Checked;
- }
- }
-
- private void cbCustomCountry_CheckedChanged(object sender, EventArgs e)
- {
- this.comboBoxEdit1.Properties.TextEditStyle = this.cbCustomCountry.Checked
- ? TextEditStyles.Standard
- : TextEditStyles.DisableTextEditor;
- }
- }
-}
diff --git a/ChanSort.Plugin.TllFile2/TvSettingsForm.de.resx b/ChanSort.Plugin.TllFile2/TvSettingsForm.de.resx
deleted file mode 100644
index 7cbedf2..0000000
--- a/ChanSort.Plugin.TllFile2/TvSettingsForm.de.resx
+++ /dev/null
@@ -1,325 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
-
-
-
-
-
-
-
-
- True
-
-
- HbbTV aktivieren (funktioniert nur mit den Ländereinstellungen DEU, FRA, NED und ESP)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
-
-
- Eigene Werte erlauben (auf eigene Gefahr!)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
-
-
-
-
-
- False
-
-
-
- 27, 13
-
-
- Land:
-
-
- OPTION Menü
-
-
- Abbrechen
-
-
- HINWEIS: Bei aktivem Hotel-Modus kann man in der EPG nicht zum gewählten Sender wechseln und die Funktion "Werkseinstellungen" ist gesperrt.
-
-
- 341, 13
-
-
- Die folgenden Einstellungen funktionieren nur bei aktivem Hotel-Modus:
-
-
-
-
-
-
-
-
- True
-
-
- D-TV Senderliste automatisch aktualisieren (empfohlen: AUS)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
-
-
- Hotel Modus aktivieren (empfohlen: EIN)
-
-
-
-
-
-
-
-
-
-
-
- Hotel Modus
-
-
-
-
-
-
-
-
- True
-
-
- Senderliste automatisch aktualisieren (empfohlen: AUS)
-
-
-
-
-
-
-
-
-
-
-
- EINST. Menü
-
-
- Das Dateiformat Ihres TV-Modells wird nicht vollständig unterstützt. Deshalb sind viele Einstellungen in diesem Dialog gesperrt.
-
-
-
-
-
-
-
-
- True
-
-
-
- Default
-
-
- False
-
-
-
-
-
- True
-
-
- None
-
-
- _
-
-
- True
-
-
- True
-
-
- False
-
-
-
-
-
- False
-
-
- Horizontal
-
-
-
-
-
- TV Einstellungen
-
-
\ No newline at end of file
diff --git a/ChanSort.Plugin.TllFile2/TvSettingsForm.resx b/ChanSort.Plugin.TllFile2/TvSettingsForm.resx
deleted file mode 100644
index e459046..0000000
--- a/ChanSort.Plugin.TllFile2/TvSettingsForm.resx
+++ /dev/null
@@ -1,569 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
-
- Top, Left, Right
-
-
-
- 12, 64
-
-
- Enable HbbTV (only works with country settings DEU, FRA, NED and ESP)
-
-
- 456, 19
-
-
-
- 3
-
-
- cbHbbTv
-
-
- DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
- grpSettings
-
-
- 0
-
-
- Top, Left, Right
-
-
- 150, 30
-
-
- allow custom value (at your own risk!)
-
-
- 320, 19
-
-
- 2
-
-
- cbCustomCountry
-
-
- DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
- grpSettings
-
-
- 1
-
-
- 72, 29
-
-
-
- Combo
-
-
- 72, 20
-
-
- 1
-
-
- comboBoxEdit1
-
-
- DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
- grpSettings
-
-
- 2
-
-
- 12, 32
-
-
- 43, 13
-
-
- 0
-
-
- Country:
-
-
- labelControl1
-
-
- DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
- grpSettings
-
-
- 3
-
-
- Top
-
-
- 0, 142
-
-
- 480, 106
-
-
- 0
-
-
- OPTION Menu
-
-
- grpSettings
-
-
- DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
- $this
-
-
- 3
-
-
- Bottom, Right
-
-
- 310, 413
-
-
- 75, 23
-
-
- 1
-
-
- Ok
-
-
- btnOk
-
-
- DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
- $this
-
-
- 2
-
-
- Bottom, Right
-
-
- 395, 413
-
-
- 75, 23
-
-
- 2
-
-
- Cancel
-
-
- btnCancel
-
-
- DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
- $this
-
-
- 1
-
-
-
- Vertical
-
-
- 12, 26
-
-
- 458, 26
-
-
- 7
-
-
- NOTE: When Hotel Mode is active, you can no longer activate a channel from inside the EPG and the "Factory Reset" function becomes disabled.
-
-
- labelControl3
-
-
- DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
- grpHotelMode
-
-
- 0
-
-
- 41, 93
-
-
- 315, 13
-
-
- 6
-
-
- The settings below are only effective when Hotel Mode is enabled
-
-
- labelControl2
-
-
- DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
- grpHotelMode
-
-
- 1
-
-
- Top, Left, Right
-
-
- 39, 112
-
-
- Automatic D-TV channel update (recommended: OFF)
-
-
- 431, 19
-
-
- 5
-
-
- cbDtvUpdate
-
-
- DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
- grpHotelMode
-
-
- 2
-
-
- Top, Left, Right
-
-
- 10, 58
-
-
- Enable Hotel Mode (recommended: ON)
-
-
- 456, 19
-
-
- 4
-
-
- cbHotelMode
-
-
- DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
- grpHotelMode
-
-
- 3
-
-
- Top
-
-
- 0, 248
-
-
- 480, 151
-
-
- 3
-
-
- Hotel Mode
-
-
- grpHotelMode
-
-
- DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
- $this
-
-
- 0
-
-
- Top, Left, Right
-
-
- 12, 35
-
-
- Automatic Channel Update (recommended: OFF)
-
-
- 456, 19
-
-
- 3
-
-
- cbAutoChannelUpdate
-
-
- DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
- groupControl1
-
-
- 0
-
-
- Top
-
-
- 0, 71
-
-
- 480, 71
-
-
- 5
-
-
- SETUP Menu
-
-
- groupControl1
-
-
- DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
- $this
-
-
- 4
-
-
- Vertical
-
-
- 11, 29
-
-
- 458, 26
-
-
- 8
-
-
- Your TV model's TLL file format is not fully supported. Therefore many features in this dialog are disabled.
-
-
- labelControl4
-
-
- DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
- grpFirmwareNote
-
-
- 0
-
-
- Top
-
-
- 0, 0
-
-
- 480, 71
-
-
- 6
-
-
- Information
-
-
- grpFirmwareNote
-
-
- DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
- $this
-
-
- 5
-
-
- True
-
-
- 6, 13
-
-
- 480, 448
-
-
- CenterParent
-
-
- TV Settings
-
-
- TvSettingsForm
-
-
- DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
-
\ No newline at end of file
diff --git a/ChanSort.sln b/ChanSort.sln
index 8aae224..32d61ea 100644
--- a/ChanSort.sln
+++ b/ChanSort.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort", "ChanSort.Ui\ChanSort.csproj", "{5FAFDABC-A52F-498C-BD2F-AFFC4119797A}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort", "ChanSort\ChanSort.csproj", "{5FAFDABC-A52F-498C-BD2F-AFFC4119797A}"
ProjectSection(ProjectDependencies) = postProject
{A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5} = {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}
{E972D8A1-2F5F-421C-AC91-CFF45E5191BE} = {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}
@@ -9,16 +9,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort", "ChanSort.Ui\Cha
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Api", "ChanSort.Api\ChanSort.Api.csproj", "{DCCFFA08-472B-4D17-BB90-8F513FC01392}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.TllFile", "ChanSort.Plugin.TllFile\ChanSort.Loader.TllFile.csproj", "{E972D8A1-2F5F-421C-AC91-CFF45E5191BE}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.TllFile", "ChanSort.Loader.TllFile\ChanSort.Loader.TllFile.csproj", "{E972D8A1-2F5F-421C-AC91-CFF45E5191BE}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{67AED502-8AEB-45F2-9B95-AC42B6A5D2C4}"
ProjectSection(SolutionItems) = preProject
readme.txt = readme.txt
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.TllFile", "Test.Plugin.TllFile\Test.Loader.TllFile.csproj", "{68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.TllFile", "Test.Loader.TllFile\Test.Loader.TllFile.csproj", "{68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.ScmFile", "ChanSort.Plugin.ScmFile\ChanSort.Loader.ScmFile.csproj", "{A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.ScmFile", "ChanSort.Loader.ScmFile\ChanSort.Loader.ScmFile.csproj", "{A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}"
EndProject
Global
GlobalSection(TestCaseManagementSettings) = postSolution
diff --git a/ChanSort.Ui/AboutForm.Designer.cs b/ChanSort/AboutForm.Designer.cs
similarity index 100%
rename from ChanSort.Ui/AboutForm.Designer.cs
rename to ChanSort/AboutForm.Designer.cs
diff --git a/ChanSort.Ui/AboutForm.cs b/ChanSort/AboutForm.cs
similarity index 100%
rename from ChanSort.Ui/AboutForm.cs
rename to ChanSort/AboutForm.cs
diff --git a/ChanSort.Ui/AboutForm.de.resx b/ChanSort/AboutForm.de.resx
similarity index 100%
rename from ChanSort.Ui/AboutForm.de.resx
rename to ChanSort/AboutForm.de.resx
diff --git a/ChanSort.Ui/AboutForm.resx b/ChanSort/AboutForm.resx
similarity index 100%
rename from ChanSort.Ui/AboutForm.resx
rename to ChanSort/AboutForm.resx
diff --git a/ChanSort.Ui/ChanSort.csproj b/ChanSort/ChanSort.csproj
similarity index 100%
rename from ChanSort.Ui/ChanSort.csproj
rename to ChanSort/ChanSort.csproj
diff --git a/ChanSort.Ui/CharsetForm.Designer.cs b/ChanSort/CharsetForm.Designer.cs
similarity index 100%
rename from ChanSort.Ui/CharsetForm.Designer.cs
rename to ChanSort/CharsetForm.Designer.cs
diff --git a/ChanSort.Ui/CharsetForm.cs b/ChanSort/CharsetForm.cs
similarity index 100%
rename from ChanSort.Ui/CharsetForm.cs
rename to ChanSort/CharsetForm.cs
diff --git a/ChanSort.Ui/CharsetForm.de.resx b/ChanSort/CharsetForm.de.resx
similarity index 100%
rename from ChanSort.Ui/CharsetForm.de.resx
rename to ChanSort/CharsetForm.de.resx
diff --git a/ChanSort.Ui/CharsetForm.resx b/ChanSort/CharsetForm.resx
similarity index 100%
rename from ChanSort.Ui/CharsetForm.resx
rename to ChanSort/CharsetForm.resx
diff --git a/ChanSort.Ui/InfoBox.Designer.cs b/ChanSort/InfoBox.Designer.cs
similarity index 100%
rename from ChanSort.Ui/InfoBox.Designer.cs
rename to ChanSort/InfoBox.Designer.cs
diff --git a/ChanSort.Ui/InfoBox.cs b/ChanSort/InfoBox.cs
similarity index 100%
rename from ChanSort.Ui/InfoBox.cs
rename to ChanSort/InfoBox.cs
diff --git a/ChanSort.Ui/InfoBox.resx b/ChanSort/InfoBox.resx
similarity index 100%
rename from ChanSort.Ui/InfoBox.resx
rename to ChanSort/InfoBox.resx
diff --git a/ChanSort.Ui/MainForm.Designer.cs b/ChanSort/MainForm.Designer.cs
similarity index 100%
rename from ChanSort.Ui/MainForm.Designer.cs
rename to ChanSort/MainForm.Designer.cs
diff --git a/ChanSort.Ui/MainForm.cs b/ChanSort/MainForm.cs
similarity index 100%
rename from ChanSort.Ui/MainForm.cs
rename to ChanSort/MainForm.cs
diff --git a/ChanSort.Ui/MainForm.de.resx b/ChanSort/MainForm.de.resx
similarity index 100%
rename from ChanSort.Ui/MainForm.de.resx
rename to ChanSort/MainForm.de.resx
diff --git a/ChanSort.Ui/MainForm.resx b/ChanSort/MainForm.resx
similarity index 100%
rename from ChanSort.Ui/MainForm.resx
rename to ChanSort/MainForm.resx
diff --git a/ChanSort.Ui/Program.cs b/ChanSort/Program.cs
similarity index 100%
rename from ChanSort.Ui/Program.cs
rename to ChanSort/Program.cs
diff --git a/ChanSort.Ui/Properties/AssemblyInfo.cs b/ChanSort/Properties/AssemblyInfo.cs
similarity index 100%
rename from ChanSort.Ui/Properties/AssemblyInfo.cs
rename to ChanSort/Properties/AssemblyInfo.cs
diff --git a/ChanSort.Ui/Properties/DataSources/ChannelInfo.datasource b/ChanSort/Properties/DataSources/ChannelInfo.datasource
similarity index 100%
rename from ChanSort.Ui/Properties/DataSources/ChannelInfo.datasource
rename to ChanSort/Properties/DataSources/ChannelInfo.datasource
diff --git a/ChanSort.Ui/Properties/DataSources/System.Text.EncodingInfo.datasource b/ChanSort/Properties/DataSources/System.Text.EncodingInfo.datasource
similarity index 100%
rename from ChanSort.Ui/Properties/DataSources/System.Text.EncodingInfo.datasource
rename to ChanSort/Properties/DataSources/System.Text.EncodingInfo.datasource
diff --git a/ChanSort.Ui/Properties/Resources.Designer.cs b/ChanSort/Properties/Resources.Designer.cs
similarity index 100%
rename from ChanSort.Ui/Properties/Resources.Designer.cs
rename to ChanSort/Properties/Resources.Designer.cs
diff --git a/ChanSort.Ui/Properties/Resources.de.Designer.cs b/ChanSort/Properties/Resources.de.Designer.cs
similarity index 100%
rename from ChanSort.Ui/Properties/Resources.de.Designer.cs
rename to ChanSort/Properties/Resources.de.Designer.cs
diff --git a/ChanSort.Ui/Properties/Resources.de.resx b/ChanSort/Properties/Resources.de.resx
similarity index 100%
rename from ChanSort.Ui/Properties/Resources.de.resx
rename to ChanSort/Properties/Resources.de.resx
diff --git a/ChanSort.Ui/Properties/Resources.resx b/ChanSort/Properties/Resources.resx
similarity index 100%
rename from ChanSort.Ui/Properties/Resources.resx
rename to ChanSort/Properties/Resources.resx
diff --git a/ChanSort.Ui/Properties/Settings.Designer.cs b/ChanSort/Properties/Settings.Designer.cs
similarity index 100%
rename from ChanSort.Ui/Properties/Settings.Designer.cs
rename to ChanSort/Properties/Settings.Designer.cs
diff --git a/ChanSort.Ui/Properties/Settings.settings b/ChanSort/Properties/Settings.settings
similarity index 100%
rename from ChanSort.Ui/Properties/Settings.settings
rename to ChanSort/Properties/Settings.settings
diff --git a/ChanSort.Ui/Properties/licenses.licx b/ChanSort/Properties/licenses.licx
similarity index 100%
rename from ChanSort.Ui/Properties/licenses.licx
rename to ChanSort/Properties/licenses.licx
diff --git a/ChanSort.Ui/Resources/Donate.bmp b/ChanSort/Resources/Donate.bmp
similarity index 100%
rename from ChanSort.Ui/Resources/Donate.bmp
rename to ChanSort/Resources/Donate.bmp
diff --git a/ChanSort.Ui/Resources/btn_donateCC_LG.gif b/ChanSort/Resources/btn_donateCC_LG.gif
similarity index 100%
rename from ChanSort.Ui/Resources/btn_donateCC_LG.gif
rename to ChanSort/Resources/btn_donateCC_LG.gif
diff --git a/ChanSort.Ui/Resources/btn_donateCC_LG_de.gif b/ChanSort/Resources/btn_donateCC_LG_de.gif
similarity index 100%
rename from ChanSort.Ui/Resources/btn_donateCC_LG_de.gif
rename to ChanSort/Resources/btn_donateCC_LG_de.gif
diff --git a/ChanSort.Ui/Resources/paypal-button.txt b/ChanSort/Resources/paypal-button.txt
similarity index 100%
rename from ChanSort.Ui/Resources/paypal-button.txt
rename to ChanSort/Resources/paypal-button.txt
diff --git a/ChanSort.Ui/Settings.cs b/ChanSort/Settings.cs
similarity index 100%
rename from ChanSort.Ui/Settings.cs
rename to ChanSort/Settings.cs
diff --git a/ChanSort.Ui/WaitForm1.Designer.cs b/ChanSort/WaitForm1.Designer.cs
similarity index 100%
rename from ChanSort.Ui/WaitForm1.Designer.cs
rename to ChanSort/WaitForm1.Designer.cs
diff --git a/ChanSort.Ui/WaitForm1.cs b/ChanSort/WaitForm1.cs
similarity index 100%
rename from ChanSort.Ui/WaitForm1.cs
rename to ChanSort/WaitForm1.cs
diff --git a/ChanSort.Ui/WaitForm1.de.resx b/ChanSort/WaitForm1.de.resx
similarity index 100%
rename from ChanSort.Ui/WaitForm1.de.resx
rename to ChanSort/WaitForm1.de.resx
diff --git a/ChanSort.Ui/WaitForm1.resx b/ChanSort/WaitForm1.resx
similarity index 100%
rename from ChanSort.Ui/WaitForm1.resx
rename to ChanSort/WaitForm1.resx
diff --git a/ChanSort.Ui/app.config b/ChanSort/app.config
similarity index 100%
rename from ChanSort.Ui/app.config
rename to ChanSort/app.config
diff --git a/ChanSort.Ui/app.ico b/ChanSort/app.ico
similarity index 100%
rename from ChanSort.Ui/app.ico
rename to ChanSort/app.ico
diff --git a/ChanSort.Ui/icons/flag_austria.png b/ChanSort/icons/flag_austria.png
similarity index 100%
rename from ChanSort.Ui/icons/flag_austria.png
rename to ChanSort/icons/flag_austria.png
diff --git a/ChanSort.Ui/icons/flag_germany.png b/ChanSort/icons/flag_germany.png
similarity index 100%
rename from ChanSort.Ui/icons/flag_germany.png
rename to ChanSort/icons/flag_germany.png
diff --git a/ChanSort.Ui/icons/flag_great_britain.png b/ChanSort/icons/flag_great_britain.png
similarity index 100%
rename from ChanSort.Ui/icons/flag_great_britain.png
rename to ChanSort/icons/flag_great_britain.png
diff --git a/Test.Plugin.TllFile/Properties/AssemblyInfo.cs b/Test.Loader.TllFile/Properties/AssemblyInfo.cs
similarity index 100%
rename from Test.Plugin.TllFile/Properties/AssemblyInfo.cs
rename to Test.Loader.TllFile/Properties/AssemblyInfo.cs
diff --git a/Test.Plugin.TllFile/Test.Loader.TllFile.csproj b/Test.Loader.TllFile/Test.Loader.TllFile.csproj
similarity index 98%
rename from Test.Plugin.TllFile/Test.Loader.TllFile.csproj
rename to Test.Loader.TllFile/Test.Loader.TllFile.csproj
index ef1cafb..26e0b60 100644
--- a/Test.Plugin.TllFile/Test.Loader.TllFile.csproj
+++ b/Test.Loader.TllFile/Test.Loader.TllFile.csproj
@@ -76,7 +76,7 @@
ChanSort.Api
True
-
+
{E972D8A1-2F5F-421C-AC91-CFF45E5191BE}
ChanSort.Loader.TllFile
diff --git a/Test.Plugin.TllFile/UnitTest1.cs b/Test.Loader.TllFile/UnitTest1.cs
similarity index 100%
rename from Test.Plugin.TllFile/UnitTest1.cs
rename to Test.Loader.TllFile/UnitTest1.cs