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