diff --git a/source/ChanSort.Api/ChanSort.Api.csproj b/source/ChanSort.Api/ChanSort.Api.csproj index efb17b2..80a06ac 100644 --- a/source/ChanSort.Api/ChanSort.Api.csproj +++ b/source/ChanSort.Api/ChanSort.Api.csproj @@ -117,6 +117,7 @@ Designer + diff --git a/source/ChanSort.Api/Lookup.csv b/source/ChanSort.Api/Lookup.csv index 649329e..c61d50a 100644 --- a/source/ChanSort.Api/Lookup.csv +++ b/source/ChanSort.Api/Lookup.csv @@ -433,15 +433,15 @@ TRANSP;120;12728 DVBC;kHz;Channel DVBC;73000;D73 DVBC;81000;D81 -DVBC;106000;SE 1 -DVBC;114000;SE 2 -DVBC;123000;SE 3 -DVBC;130000;SE 4 -DVBC;138000;SE 5 -DVBC;146000;SE 6 -DVBC;154000;SE 7 -DVBC;162000;SE 8 -DVBC;170000;SE 9 +DVBC;106000;S 01 +DVBC;114000;S 02 +DVBC;123000;S 03 +DVBC;130000;S 04 +DVBC;138000;S 05 +DVBC;146000;S 06 +DVBC;154000;S 07 +DVBC;162000;S 08 +DVBC;170000;S 09 DVBC;178000;5 DVBC;186000;6 DVBC;194000;7 diff --git a/source/ChanSort.Api/Model/LookupData.cs b/source/ChanSort.Api/Model/LookupData.cs index db84540..2c41809 100644 --- a/source/ChanSort.Api/Model/LookupData.cs +++ b/source/ChanSort.Api/Model/LookupData.cs @@ -230,7 +230,12 @@ namespace ChanSort.Api if (freqInMhz > 2000) freqInMhz /= 1000; - return dvbcChannels.TryGet((int)(freqInMhz * 1000)) ?? dvbcChannels.TryGet((int)((freqInMhz-1) * 1000)) ?? ""; + return dvbcChannels.TryGet((int)(freqInMhz * 1000)) + ?? dvbcChannels.TryGet((int)((freqInMhz - 1) * 1000)) + ?? dvbcChannels.TryGet((int)((freqInMhz - 2) * 1000)) + ?? dvbcChannels.TryGet((int)((freqInMhz + 1) * 1000)) + ?? dvbcChannels.TryGet((int)((freqInMhz + 2) * 1000)) + ?? ""; } } } diff --git a/source/ChanSort.Api/Resources.hu.resx b/source/ChanSort.Api/Resources.hu.resx new file mode 100644 index 0000000..2d34d4f --- /dev/null +++ b/source/ChanSort.Api/Resources.hu.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + {0} A(z) #{1} program több csatornához van rendelve: index {2}='{3} és index {4}='{5}' + + + {0}: A(z) '{1}' csatornának több adatrekordja van: index {2}=Pr#{3} és index {4}=Pr#{5} + + \ No newline at end of file diff --git a/source/ChanSort.Loader.GlobalClone/ChanSort.Loader.GlobalClone.csproj b/source/ChanSort.Loader.GlobalClone/ChanSort.Loader.GlobalClone.csproj index e455706..cf9c77e 100644 --- a/source/ChanSort.Loader.GlobalClone/ChanSort.Loader.GlobalClone.csproj +++ b/source/ChanSort.Loader.GlobalClone/ChanSort.Loader.GlobalClone.csproj @@ -110,6 +110,7 @@ Designer + diff --git a/source/ChanSort.Loader.GlobalClone/GcChannel.cs b/source/ChanSort.Loader.GlobalClone/GcChannel.cs index 3136693..88a4d8e 100644 --- a/source/ChanSort.Loader.GlobalClone/GcChannel.cs +++ b/source/ChanSort.Loader.GlobalClone/GcChannel.cs @@ -14,6 +14,7 @@ namespace ChanSort.Loader.GlobalClone { this.SignalSource = source; this.Index = index; + this.RecordOrder = index; this.Node = node; } #endregion diff --git a/source/ChanSort.Loader.GlobalClone/GcJsonSerializer.cs b/source/ChanSort.Loader.GlobalClone/GcJsonSerializer.cs index 929b3d5..3ec5aa8 100644 --- a/source/ChanSort.Loader.GlobalClone/GcJsonSerializer.cs +++ b/source/ChanSort.Loader.GlobalClone/GcJsonSerializer.cs @@ -1,4 +1,6 @@ using System; +using System.Collections; +using System.Collections.Generic; using System.IO; using System.Text; using ChanSort.Api; @@ -13,7 +15,6 @@ namespace ChanSort.Loader.GlobalClone string xmlPrefix; string xmlSuffix; private JObject doc; - private bool deletedRadioChannelsHaveMajorNumber0x4000 = false; //private readonly ChannelList tvList = new ChannelList(SignalSource.MaskAdInput | SignalSource.Tv, "TV"); //private readonly ChannelList radioList = new ChannelList(SignalSource.MaskAdInput | SignalSource.Radio, "Radio"); @@ -124,11 +125,8 @@ namespace ChanSort.Loader.GlobalClone int i = 0; foreach (var node in this.doc["channelList"]) { - var ch = new GcChannel(0, i, node); + var ch = new GcChannel(0, i++, node); var major = (int) node["majorNumber"]; - if (major == 0x4000) - this.deletedRadioChannelsHaveMajorNumber0x4000 = true; - ch.Source = (string)node["sourceIndex"]; if (ch.Source == "SATELLITE DIGITAL") ch.SignalSource |= SignalSource.DvbS; @@ -243,9 +241,7 @@ namespace ChanSort.Loader.GlobalClone } node["deleted"] = ch.IsDeleted; - var nr = Math.Max(ch.NewProgramNr, 0); // radio channels have 0x4000 added to their number. for deleted radio channels there are files with majorNumber=0 and majorNumber=0x4000 - if (nr != 0 || this.deletedRadioChannelsHaveMajorNumber0x4000) - nr |= radioMask; + var nr = Math.Max(ch.NewProgramNr, 0) | radioMask; // radio channels have 0x4000 added to the majorNumber node["majorNumber"] = nr; node["skipped"] = ch.Skip; node["locked"] = ch.Lock; @@ -259,8 +255,40 @@ namespace ChanSort.Loader.GlobalClone //node["disableUpdate"] = true; // experimental to prevent "DTV Auto Update" of channel numbers right after importing the list } } + + // it seems that channels must also be physically ordered by majorNumber + //var chList = this.doc["channelList"].Value(); + //var copy = new ArrayList(chList); + //var comp = new ChannelOrderComparer(this.SourceIndexOrder); + //copy.Sort(comp); + //chList.Clear(); + //foreach (var item in copy) + // chList.Add(item); } #endregion + + //class ChannelOrderComparer : IComparer + //{ + // private readonly IList sourceIndexOrder; + + // public ChannelOrderComparer(IList sourceIndexOrder) + // { + // this.sourceIndexOrder = sourceIndexOrder; + // } + + // public int Compare(object x, object y) + // { + // GcChannel a = (GcChannel)x; + // GcChannel b = (GcChannel)y; + + // var i = sourceIndexOrder.IndexOf((string)a.Node["sourceIndex"]); + // var j = sourceIndexOrder.IndexOf((string)b.Node["sourceIndex"]); + // if (i != j) + // return i < j ? -1 : +1; + + // return 0; + // } + //} } } diff --git a/source/ChanSort.Loader.GlobalClone/Resources.hu.resx b/source/ChanSort.Loader.GlobalClone/Resources.hu.resx new file mode 100644 index 0000000..2cacb01 --- /dev/null +++ b/source/ChanSort.Loader.GlobalClone/Resources.hu.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + A tévé csak akkor importálja a GlobalClone fájlt, ha ugyanabban a könyvtárban nincsenek xx*.TLL nevű fájlok. +Szeretné, hogy a ChanSort átnevezze a problémás fájlokat? + + + FIGYELEM: +Győződjön meg arról, hogy webOS alapú tévéje legújabb firmware verziót használ (LB600 és újabb: 4.41.32, UB: 4.51.44). +A régebbi LG firmware webOS alapú TV-modelleknél nem kezeli megfelelően a csatornák listájának importálását és véletlenszerűen rendezi át a csatornákat + + \ No newline at end of file diff --git a/source/ChanSort.Loader.Hisense/ChanSort.Loader.Hisense.csproj b/source/ChanSort.Loader.Hisense/ChanSort.Loader.Hisense.csproj index 33da6f3..a050c33 100644 --- a/source/ChanSort.Loader.Hisense/ChanSort.Loader.Hisense.csproj +++ b/source/ChanSort.Loader.Hisense/ChanSort.Loader.Hisense.csproj @@ -98,6 +98,7 @@ + diff --git a/source/ChanSort.Loader.Hisense/Resources.hu.resx b/source/ChanSort.Loader.Hisense/Resources.hu.resx new file mode 100644 index 0000000..05a2492 --- /dev/null +++ b/source/ChanSort.Loader.Hisense/Resources.hu.resx @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Ez a csatorna lista fájl nem tartalmaz adatokat. +Valószínűleg egy előre definiált csatorna lista lett kiválasztva a TV legelső beállításakor. Az ilyen listák nem kerülnek exportálásra és nem szerkeszthetők a TV-n vagy a számítógépen. +A PC-n szerkeszthető lista megszerzéséhez vissza kell állítania a TV-készüléket gyári alapállapotra és a műholdas csatorna beállítása során ki kell választania az „Egyéb” opciót. + + + Nem található csatorna + + \ No newline at end of file diff --git a/source/ChanSort.Loader.Hisense2017/ChanSort.Loader.Hisense2017.csproj b/source/ChanSort.Loader.Hisense2017/ChanSort.Loader.Hisense2017.csproj index e62099d..fa3b284 100644 --- a/source/ChanSort.Loader.Hisense2017/ChanSort.Loader.Hisense2017.csproj +++ b/source/ChanSort.Loader.Hisense2017/ChanSort.Loader.Hisense2017.csproj @@ -88,6 +88,7 @@ + diff --git a/source/ChanSort.Loader.Hisense2017/Resources.hu.resx b/source/ChanSort.Loader.Hisense2017/Resources.hu.resx new file mode 100644 index 0000000..05a2492 --- /dev/null +++ b/source/ChanSort.Loader.Hisense2017/Resources.hu.resx @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Ez a csatorna lista fájl nem tartalmaz adatokat. +Valószínűleg egy előre definiált csatorna lista lett kiválasztva a TV legelső beállításakor. Az ilyen listák nem kerülnek exportálásra és nem szerkeszthetők a TV-n vagy a számítógépen. +A PC-n szerkeszthető lista megszerzéséhez vissza kell állítania a TV-készüléket gyári alapállapotra és a műholdas csatorna beállítása során ki kell választania az „Egyéb” opciót. + + + Nem található csatorna + + \ No newline at end of file diff --git a/source/ChanSort.Loader.LG/ChanSort.Loader.LG.csproj b/source/ChanSort.Loader.LG/ChanSort.Loader.LG.csproj index 3c9bfe6..a9d5f8a 100644 --- a/source/ChanSort.Loader.LG/ChanSort.Loader.LG.csproj +++ b/source/ChanSort.Loader.LG/ChanSort.Loader.LG.csproj @@ -131,6 +131,9 @@ PresetProgramNrDialog.cs + + PresetProgramNrDialog.cs + PresetProgramNrDialog.cs @@ -158,6 +161,7 @@ Designer + @@ -178,6 +182,9 @@ TvSettingsForm.cs + + TvSettingsForm.cs + TvSettingsForm.cs diff --git a/source/ChanSort.Loader.LG/PresetProgramNrDialog.hu.resx b/source/ChanSort.Loader.LG/PresetProgramNrDialog.hu.resx new file mode 100644 index 0000000..8da26c8 --- /dev/null +++ b/source/ChanSort.Loader.LG/PresetProgramNrDialog.hu.resx @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Ez a fájl a műholdas csatornákhoz előre beállított programszámokat tartalmaz. Az LG legújabb firmware-ével kapcsolatos problémák miatt az ilyen listákat már nem lehet megbízhatóan módosítani. + + + A műholdas csatornák listájának szerkesztése le van tiltva! + + + A szerkesztés engedélyezéséhez először tiszta, teljes csatornakeresést kell futtatnia: + + + - Tartson meg egy példányt az aktuális TLL fájlból, ha később referencia listaként szeretné használni + + + - Automatikus csatornakeresés végrehajtása a 'Teljes', a 'Nincs' és a 'Vak keresés' opciókkal + + + - Hajtson végre gyári visszaállítást a tévékészüléken + + + A részletekért lásd a ChanSort Wikit + + + Ok + + + - Mentse az új listát USB-re, és nyissa meg a ChanSort segítségével + + + Fontos figyelmeztetés + + \ No newline at end of file diff --git a/source/ChanSort.Loader.LG/Resource.hu.resx b/source/ChanSort.Loader.LG/Resource.hu.resx new file mode 100644 index 0000000..1d20a34 --- /dev/null +++ b/source/ChanSort.Loader.LG/Resource.hu.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Rossz ellenőrző összeg: kiszámítva {1:x8}, de a fájl értéke {0:x8} + + + A fájl tartalma nem egyezik a támogatott modellekkel + + + A(z) {0} fájlméret nagyobb, mint a megengedett maximális {1} + + + A(z) {0} (Pr# {1}) csatornát törölték, mert ez a(z) {2} (Pr# {3}) csatorna másolata: {4} + + \ No newline at end of file diff --git a/source/ChanSort.Loader.LG/TvSettingsForm.hu.resx b/source/ChanSort.Loader.LG/TvSettingsForm.hu.resx new file mode 100644 index 0000000..baf7e32 --- /dev/null +++ b/source/ChanSort.Loader.LG/TvSettingsForm.hu.resx @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + A HbbTV engedélyezése (csak a DEU, FRA, NED és ESP országbeállításokkal működik) + + + egyedi érték engedélyezése (saját felelősségére!) + + + Ország: + + + OPCIÓ menü + + + Ok + + + Mégse + + + MEGJEGYZÉS: Ha a Hotel mód aktív, akkor már nem aktiválhat csatornát az EPG-n belülről, és a 'Gyári beállítások visszaállítása' funkció letiltásra kerül. + + + Az alábbi beállítások csak akkor hatékonyak, ha a Hotel mód engedélyezve van + + + Automatikus D-TV csatorna frissítés (ajánlott: KI) + + + Hotel-mód engedélyezése (ajánlott: BE) + + + Hotel-mód + + + Automatikus csatornafrissítés (ajánlott: KI) + + + Beállítások menü + + + A TV modell TLL fájlformátuma nem teljes mértékben támogatott. Ezért a párbeszédpanel számos szolgáltatása le van tiltva. + + + Információ + + + Hotel-menü automatikus felismerése + + + TV beállítások + + \ No newline at end of file diff --git a/source/ChanSort.Loader.PhilipsBin/ChanLstBin.cs b/source/ChanSort.Loader.PhilipsBin/ChanLstBin.cs index 91080a0..e7aaa95 100644 --- a/source/ChanSort.Loader.PhilipsBin/ChanLstBin.cs +++ b/source/ChanSort.Loader.PhilipsBin/ChanLstBin.cs @@ -53,6 +53,7 @@ namespace ChanSort.Loader.PhilipsBin var modelNameLen = BitConverter.ToInt32(content, off); off += 4 + modelNameLen; + var baseDir = Path.GetDirectoryName(path); var relPath = "/channellib/"; while (off < content.Length) { @@ -64,7 +65,12 @@ namespace ChanSort.Loader.PhilipsBin relPath = fileName; else { - crcOffsetByRelPath[relPath + fileName] = off; + // normally all files after the /s2channellib/ entry are inside that folder, but "Favorite.xml" is in the main folder + var newPath = relPath + fileName; + if (!File.Exists(Path.Combine(baseDir, newPath)) && File.Exists(Path.Combine(baseDir, fileName))) + newPath = "/" + fileName; + + crcOffsetByRelPath[newPath] = off; off += 2; } } diff --git a/source/ChanSort.Loader.Sony/Serializer.cs b/source/ChanSort.Loader.Sony/Serializer.cs index eae3ef3..dd00ce5 100644 --- a/source/ChanSort.Loader.Sony/Serializer.cs +++ b/source/ChanSort.Loader.Sony/Serializer.cs @@ -443,7 +443,7 @@ namespace ChanSort.Loader.Sony chan.Polarity = transp.Polarity; if ((signalSource & SignalSource.Cable) != 0) chan.ChannelOrTransponder = LookupData.Instance.GetDvbcChannelName(chan.FreqInMhz); - if ((signalSource & SignalSource.Cable) != 0) + else if ((signalSource & SignalSource.Antenna) != 0) chan.ChannelOrTransponder = LookupData.Instance.GetDvbtTransponder(chan.FreqInMhz).ToString(); } diff --git a/source/ChanSort.sln b/source/ChanSort.sln index 2f74000..7736368 100644 --- a/source/ChanSort.sln +++ b/source/ChanSort.sln @@ -80,6 +80,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.PhilipsBin" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.PhilipsBin", "Test.Loader.PhilipsBin\Test.Loader.PhilipsBin.csproj", "{36ED558E-576C-4D9D-A8C5-8D270A156B82}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spike.LgWebOs5", "Spike.LgWebOs5\Spike.LgWebOs5.csproj", "{32EFB306-DEF8-4488-B1AE-46D5B183C373}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -450,6 +452,18 @@ Global {36ED558E-576C-4D9D-A8C5-8D270A156B82}.Release|Mixed Platforms.Build.0 = Release|Any CPU {36ED558E-576C-4D9D-A8C5-8D270A156B82}.Release|x86.ActiveCfg = Release|x86 {36ED558E-576C-4D9D-A8C5-8D270A156B82}.Release|x86.Build.0 = Release|x86 + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Debug|Any CPU.Build.0 = Debug|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Debug|x86.ActiveCfg = Debug|x86 + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Debug|x86.Build.0 = Debug|x86 + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Release|Any CPU.ActiveCfg = Release|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Release|Any CPU.Build.0 = Release|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Release|x86.ActiveCfg = Release|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/source/ChanSort/AboutForm.cs b/source/ChanSort/AboutForm.cs index e1e03e2..076ee5b 100644 --- a/source/ChanSort/AboutForm.cs +++ b/source/ChanSort/AboutForm.cs @@ -11,30 +11,17 @@ namespace ChanSort.Ui InitializeComponent(); this.gcPlugins.DataSource = plugins; - this.txtCredits.Text = -@"TCr82: -Support for VDR's channels.conf file format + this.txtCredits.Text = +@" +Ciprian Leca: Romanian translation +Istvan Krisko: Hungarian translation +Jakub Driver: Polish translation +Marco Sánchez: Spanish Translation +Pavel Mizera: Czech translation +Vitor Martins Augusto: Portuguese translation +Yaşar Tuna Zorlu: Turkish Translation -Pavel Mizera: -Czech translation - -Vitor Martins Augusto: -Portuguese translation - -Marco Sánchez: -Spanish Translation - -PDA-User: -Analysis of TLL file structure and extensive testing of ChanSort - -HellG: -For writing TLLsort which was the basis for the first versions of ChanSort - -edank, JLevi, Oleg: -For writing TLLview, TLLedit and edankTLL and making the source available - -Many more on lg-forum.com: -For providing example TLL files, error feedback and other helpful information +TCr82 (Github): Support for VDR's channels.conf file format "; } diff --git a/source/ChanSort/AboutForm.hu.resx b/source/ChanSort/AboutForm.hu.resx new file mode 100644 index 0000000..2b36764 --- /dev/null +++ b/source/ChanSort/AboutForm.hu.resx @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Projekt weboldala: + + + http://github.com/PredatH0r/ChanSort + + + horst@beham.biz + + + A program készítője: + + + Licenc: + + + GNU GPLv3 + + + Közreműködők: + + + Bezár/Mégse + + + Horst Beham + + + TV beállítások + + \ No newline at end of file diff --git a/source/ChanSort/ActionBox.hu.resx b/source/ChanSort/ActionBox.hu.resx new file mode 100644 index 0000000..740d47a --- /dev/null +++ b/source/ChanSort/ActionBox.hu.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Hogyan szeretné folytatni? + + + Válasszon egy műveletet… + + \ No newline at end of file diff --git a/source/ChanSort/ChanSort.csproj b/source/ChanSort/ChanSort.csproj index 529a93e..7f84948 100644 --- a/source/ChanSort/ChanSort.csproj +++ b/source/ChanSort/ChanSort.csproj @@ -218,6 +218,9 @@ AboutForm.cs + + AboutForm.cs + AboutForm.cs @@ -247,6 +250,9 @@ ActionBox.cs + + ActionBox.cs + ActionBox.cs @@ -274,6 +280,9 @@ CharsetForm.cs + + CharsetForm.cs + CharsetForm.cs @@ -310,6 +319,9 @@ MainForm.cs + + MainForm.cs + MainForm.cs @@ -343,6 +355,9 @@ ReportOptionsDialog.cs + + ReportOptionsDialog.cs + ReportOptionsDialog.cs @@ -363,6 +378,7 @@ + ResXFileCodeGenerator @@ -397,6 +413,9 @@ ReferenceListForm.cs + + ReferenceListForm.cs + ReferenceListForm.cs @@ -421,6 +440,9 @@ WaitForm1.cs + + WaitForm1.cs + WaitForm1.cs diff --git a/source/ChanSort/CharsetForm.hu.resx b/source/ChanSort/CharsetForm.hu.resx new file mode 100644 index 0000000..01c0ef7 --- /dev/null +++ b/source/ChanSort/CharsetForm.hu.resx @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Mégse + + + Alapértelmezett karakterkészlet az országomhoz + + + Ok + + + TV beállítások + + + Leírás + + \ No newline at end of file diff --git a/source/ChanSort/GlobalImageCollection.cs b/source/ChanSort/GlobalImageCollection.cs index 39221f5..b5df133 100644 --- a/source/ChanSort/GlobalImageCollection.cs +++ b/source/ChanSort/GlobalImageCollection.cs @@ -50,7 +50,9 @@ namespace ChanSort.Ui // rawImageCollection // this.rawImageCollection.ImageStream = ((DevExpress.Utils.ImageCollectionStreamer)(resources.GetObject("rawImageCollection.ImageStream"))); + this.rawImageCollection.Images.SetKeyName(47, "0047.png"); ((System.ComponentModel.ISupportInitialize)(this.rawImageCollection)).EndInit(); + } #endregion diff --git a/source/ChanSort/GlobalImageCollection.resx b/source/ChanSort/GlobalImageCollection.resx index 19398bc..e230ad9 100644 --- a/source/ChanSort/GlobalImageCollection.resx +++ b/source/ChanSort/GlobalImageCollection.resx @@ -117,19 +117,19 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + 17, 17 - AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxOS4yLCBWZXJzaW9uPTE5LjIu - Ny4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT + AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYyMC4xLCBWZXJzaW9uPTIwLjEu + OC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT eXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRv a2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAAChEZXZFeHByZXNzLlV0aWxzLkltYWdlQ29sbGVjdGlvblN0 cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P// /xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABAAAAAQAAAACQUAAAAP - BQAAAGV7AAACVQIAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgCAAAAkJFoNgAAAARnQU1BAACxjwv8 + BQAAAGR9AAACVQIAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgCAAAAkJFoNgAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAH3SURBVDhPY/hPIiBdw6SZ+3ZcfVM9/VhKMxAdTmw8cPPu 27XJjWsS6oAMz+xtHmk7bGM2RDXunBOYXz33KMOSFaf+b1z179//2w+/LNpwe/76O0D2/yk9//tagYxJ Cy/3zr1w8sTjf101//7+nLDpAkNSy8E9J9/9X7r8/8G9QBvbpl0FWZya+T8hEUiX9F36smjN9+5uIHve @@ -646,26 +646,27 @@ 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 + AElFTkSuQmCCCw== - - - 05/02/2020 14:34:14 - - - - 16, 16 - False diff --git a/source/ChanSort/MainForm.Designer.cs b/source/ChanSort/MainForm.Designer.cs index 98c585a..49fa20a 100644 --- a/source/ChanSort/MainForm.Designer.cs +++ b/source/ChanSort/MainForm.Designer.cs @@ -155,6 +155,7 @@ this.miRomanian = new DevExpress.XtraBars.BarButtonItem(); this.miRussian = new DevExpress.XtraBars.BarButtonItem(); this.miTurkish = new DevExpress.XtraBars.BarButtonItem(); + this.miHungarian = new DevExpress.XtraBars.BarButtonItem(); this.mnuCharset = new DevExpress.XtraBars.BarSubItem(); this.miCharsetForm = new DevExpress.XtraBars.BarButtonItem(); this.miUtf8Charset = new DevExpress.XtraBars.BarButtonItem(); @@ -1088,9 +1089,10 @@ this.miFontXLarge, this.miFontXxLarge, this.miUtf16BigEndian, - this.miUtf16LittleEndian}); + this.miUtf16LittleEndian, + this.miHungarian}); this.barManager1.MainMenu = this.bar1; - this.barManager1.MaxItemId = 111; + this.barManager1.MaxItemId = 112; this.barManager1.ShowFullMenus = true; // // bar1 @@ -1493,7 +1495,8 @@ new DevExpress.XtraBars.LinkPersistInfo(this.miPortuguese), new DevExpress.XtraBars.LinkPersistInfo(this.miRomanian), new DevExpress.XtraBars.LinkPersistInfo(this.miRussian), - new DevExpress.XtraBars.LinkPersistInfo(this.miTurkish)}); + new DevExpress.XtraBars.LinkPersistInfo(this.miTurkish), + new DevExpress.XtraBars.LinkPersistInfo(this.miHungarian)}); this.barSubItem1.Name = "barSubItem1"; this.barSubItem1.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionInMenu; // @@ -1589,6 +1592,16 @@ this.miTurkish.Tag = "tr-TR"; this.miTurkish.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miLanguage_DownChanged); // + // miHungarian + // + this.miHungarian.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; + resources.ApplyResources(this.miHungarian, "miHungarian"); + this.miHungarian.Id = 111; + this.miHungarian.ImageOptions.ImageIndex = ((int)(resources.GetObject("barButtonItem1.ImageOptions.ImageIndex"))); + this.miHungarian.Name = "miHungarian"; + this.miHungarian.Tag = "hu-HU"; + this.miHungarian.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miLanguage_DownChanged); + // // mnuCharset // resources.ApplyResources(this.mnuCharset, "mnuCharset"); @@ -2379,6 +2392,7 @@ private DevExpress.XtraBars.BarButtonItem miFontXxLarge; private DevExpress.XtraBars.BarButtonItem miUtf16BigEndian; private DevExpress.XtraBars.BarButtonItem miUtf16LittleEndian; + private DevExpress.XtraBars.BarButtonItem miHungarian; } } diff --git a/source/ChanSort/MainForm.hu.resx b/source/ChanSort/MainForm.hu.resx new file mode 100644 index 0000000..899e4fa --- /dev/null +++ b/source/ChanSort/MainForm.hu.resx @@ -0,0 +1,669 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Pr. index + + + Új poz. + + + Új programszám + + + Csatorna név + + + Kedvencek + + + Zár + + + Szülői zár + + + Kihagy + + + Elrejt + + + Törölt + + + Szolgáltatás típus + + + Forrás + + + UID + + + F3: Szűrő | F4: Lista | -: moz.fel | +: moz.le | Del: töröl + + + Kedvenc H kapcsoló + + + Pr# + + + Allista + + + &Fájl + + + TV adatfájl &megnyitása ... + + + &Újratöltés + + + Mentés visszaállítás + + + Fájl &információ... + + + &Mentés + + + Mentés m&ásként + + + Rendezés alkalmazása referencia listából... + + + Csatornák hozzáadása referencia listából... + + + Referencia lista mentése... + + + Exportálás excel listába... + + + &Nyomtatás... + + + &Kilépés + + + Legutóbbi fájlok + + + &Szerkesztés + + + Csatornák &hozzáadása + + + Csatornák &eltávolítása + + + Csatornák átnevezése + + + Hozzáadás a &kedvencekhez + + + Eltávolítás a kedvencekből + + + Csatorna &zárolás: be + + + Csatorna zárolás: ki + + + Csatorna &átugrása: be + + + Csatorna átugrása: ki + + + Csatorna &elrejtése: be + + + Csatorna elrejtése: ki + + + Csatornák &átszámozása + + + Csatornák &rendezése ABC szerint + + + Kedvencek átszámozása Pr# szerint + + + Ugyanazt a Pr# kódot használja az összes csatorna és a kedvenc listában + + + Lista másolása vágólapra + + + TV készülék + + + Készülék beállítások... + + + Csatorna adatok tisztítása + + + A csatorna rekordok újraszervezése és az ismétlések eltávolítása + + + &Beállítások + + + &Nyelv + + + &Karakterkészlet + + + Az &összes karakter készlet... + + + UTF-8 (Unicode) + + + ISO karakter készlet + + + Figyelmeztetések megjelenítése a fájl betöltése után + + + A figyelmeztetések automatikus megjelenítése a fájl megnyitása után + + + Előre definiált listák szerkesztésének engedélyezése (VESZÉLYES) + + + Előfordulhat, hogy tévéje hibásan működik, ha szerkeszt egy listát előre definiált csatornaszámokkal + + + Windows intéző integráció + + + Frissítések keresése + + + &Kisegítő lehetőségek + + + Megnyit egy almenüt a bemeneti forrás kiválasztásához. Ez a menü közvetlenül aktiválható az F1 gombbal + + + Beviteli &forrás kiválasztása + + + mnuInputSource + + + Megnyit egy almenüt a kedvencek listájának kiválasztásához. Ez a menü közvetlenül aktiválható a Shift+F1 gombbal + + + Válasszon program/kedvencek listát + + + mnuFavList + + + Program lista + + + Kedvenc A + + + Kedvenc B + + + Kedvenc C + + + Kedvenc D + + + Kedvenc E + + + &Bal lista szűrő + + + Bal lista + + + &Jobb lista szűrő + + + Jobb lista + + + &Súgó + + + Wiki + + + ChanSort weboldala... + + + ChanSort &névjegye... + + + Eszközök + + + Mozgat fel + + + Mozgat le + + + felcserél + + + mögé + + + elé + + + Csatorna áthelyezés/törlés esetén szüntesse meg a rést + + + Aktiválva, az aktuális csatornát követő összes csatorna automatikusan újraszámozódik + + + Beszúrás mód: + + + Nincs csatornalista + + + Pozíció beállítása: + + + Programszám a beszúrás és beállítás műveletekhez + + + \d{1,4} + + + ChanSort {0} - TV csatornalista szerkesztő + + + ±H + + + Kedvenc G kapcsoló + + + ±G + + + Kedvenc F kapcsoló + + + ±F + + + Szülői zár kapcsoló + + + Szülői zár + + + Kedvenc E kapcsoló + + + ±E + + + Kedvenc D kapcsoló + + + ±D + + + Kedvenc C kapcsoló + + + ±C + + + Kedvenc B kapcsoló + + + ±B + + + Kedvenc A kapcsoló + + + ±A + + + Távolítsa el a csatornaszűrő feltételeket a rendezett csatornák listájáról + + + Szűrő + + + Szűrő visszaállítása + + + A kiválasztott csatornák újraszámozása sorrendben + + + A kiválasztott csatornák újraszámozása + + + Mozgassa a kijelölt csatornát lefelé + + + Mozgassa a kijelölt csatornát lefelé + + + Mozgassa a kijelölt csatornát felfelé + + + Mozgassa a kijelölt csatornát felfelé + + + Távolítsa el a kijelölt csatornákat a rendezett listából + + + Távolítsa el a kijelölt csatornákat + + + Rendezett csatornák + + + Panel1 + + + Pr. index + + + Régi poz. + + + Régi pozíció + + + Új poz. + + + Új pozíció + + + Forrás + + + Pr# + + + Csatorna név + + + Rövid név + + + Kedvencek + + + Zárolt + + + Kihagy + + + Elrejt + + + Törölt + + + Kód + + + Kódolt + + + Szolgáltatás típus azonosító + + + Szolgáltatás típus + + + Frekvencia (MHz) + + + Polaritás + + + Csat/Transzp + + + Csatorna vagy transzponder száma + + + Műhold + + + Hálózat (ONID) + + + TS ID + + + Transport Stream ID + + + Service ID + + + PCR PID + + + Program Clock Reference Packet-ID + + + Video PID + + + Audio PID + + + Symbol rate + + + Hálózat név + + + Hálózat operátor + + + Szolgáltató + + + Uid + + + Sorrend + + + Jelforrás + + + F5: Szűrő | F6: Lista | Enter: hozzáad + + + Ez egy előre definiált lista és nem szerkeszthető. + + + A tévé beállítása során kiválasztott egy előre definiált csatornalistát. Egy ilyen lista módosítása a tévé hibás működését okozhatja. Kérjük, futtasson egy teljes csatornás keresést a tévéjén és ne válasszon konkrét szolgáltatót, műholdas vagy országlistát. + + + Távolítsa el a kijelölt csatornákat a rendezett listáról + + + Távolítsa el a kijelölt csatornákat a rendezett listáról + + + #N/A + + + << Hozzáad mind + + + Fűzze hozzá az összes jelenleg nem rendezett csatornát a lista végéhez + + + Távolítsa el a csatornaszűrő feltételeket a teljes csatornalistáról + + + Szűrő + + + Szűrő alaphelyzetre + + + Adja hozzá a kiválasztott csatornákat a rendezett listához + + + Kijelölt csatornák hozzáadása a rendezett listához + + + Eredeti csatornák + + + Panel2 + + + splitContainerControl1 + + \ No newline at end of file diff --git a/source/ChanSort/MainForm.resx b/source/ChanSort/MainForm.resx index f29a6b7..9f4fc54 100644 --- a/source/ChanSort/MainForm.resx +++ b/source/ChanSort/MainForm.resx @@ -279,7 +279,7 @@ gridLeft - ChanSort.XGridControl, ChanSort, Version=1.0.7498.1431, Culture=neutral, PublicKeyToken=null + ChanSort.XGridControl, ChanSort, Version=1.0.7644.32206, Culture=neutral, PublicKeyToken=null grpOutputList @@ -588,59 +588,75 @@ 14 - &English + English + @Invariant 0 Česky + @Invariant 41 &Deutsch + @Invariant 1 Español + @Invariant 44 Polski + @Invariant 45 Português + @Invariant 2 Română + @Invariant 42 ру́сский + @Invariant 35 Türkçe + @Invariant 46 + + Magyar + @Invariant + + + 47 + &Character set @@ -774,7 +790,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMC4xLCBWZXJzaW9uPTIw - LjEuNC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + LjEuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEZpbGUE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICKaPJ5gsBeU2NTSFe @@ -784,7 +800,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMC4xLCBWZXJzaW9uPTIw - LjEuNC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + LjEuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEhlbHAE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICdEVVDegwMU2acNpw @@ -794,7 +810,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMC4xLCBWZXJzaW9uPTIw - LjEuNC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + LjEuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEVkaXQE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICZMTu18lZRU+IqmAu @@ -804,7 +820,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMC4xLCBWZXJzaW9uPTIw - LjEuNC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + LjEuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAAB09wdGlvbnME/P///wtTeXN0ZW0uR3VpZAsAAAACX2EC X2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICXJMOh9nzAkKc @@ -814,7 +830,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMC4xLCBWZXJzaW9uPTIw - LjEuNC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + LjEuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAADUFjY2Vzc2liaWxpdHkE/P///wtTeXN0ZW0uR3VpZAsA AAACX2ECX2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICeIvz @@ -1213,7 +1229,7 @@ gviewLeft - ChanSort.XGridView, ChanSort, Version=1.0.7498.1431, Culture=neutral, PublicKeyToken=null + ChanSort.XGridView, ChanSort, Version=1.0.7644.32206, Culture=neutral, PublicKeyToken=null colIndex1 @@ -1297,13 +1313,13 @@ globalImageCollection1 - ChanSort.Ui.GlobalImageCollection, ChanSort, Version=1.0.7498.1431, Culture=neutral, PublicKeyToken=null + ChanSort.Ui.GlobalImageCollection, ChanSort, Version=1.0.7644.32206, Culture=neutral, PublicKeyToken=null gviewRight - ChanSort.XGridView, ChanSort, Version=1.0.7498.1431, Culture=neutral, PublicKeyToken=null + ChanSort.XGridView, ChanSort, Version=1.0.7644.32206, Culture=neutral, PublicKeyToken=null colIndex @@ -1785,6 +1801,12 @@ DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v20.1, Version=20.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + miHungarian + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v20.1, Version=20.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + mnuCharset @@ -2044,7 +2066,7 @@ DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v20.1, Version=20.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - 07/12/2020 00:52:17 + 12/05/2020 17:57:36 16, 16 @@ -2869,7 +2891,7 @@ gridRight - ChanSort.XGridControl, ChanSort, Version=1.0.7498.1431, Culture=neutral, PublicKeyToken=null + ChanSort.XGridControl, ChanSort, Version=1.0.7644.32206, Culture=neutral, PublicKeyToken=null grpInputList diff --git a/source/ChanSort/Printing/ReportOptionsDialog.hu.resx b/source/ChanSort/Printing/ReportOptionsDialog.hu.resx new file mode 100644 index 0000000..4b3339e --- /dev/null +++ b/source/ChanSort/Printing/ReportOptionsDialog.hu.resx @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Rendezve: + + + Szám + + + Név + + + Betű: + + + Előnézet... + + + Mégse + + + Oszlopok: + + + Nyomatási beállítások + + \ No newline at end of file diff --git a/source/ChanSort/Properties/Resources.hu.resx b/source/ChanSort/Properties/Resources.hu.resx new file mode 100644 index 0000000..19b404b --- /dev/null +++ b/source/ChanSort/Properties/Resources.hu.resx @@ -0,0 +1,296 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + A TLL forrás nem található: +'{0}' + + + Hiba történt a TV adatfájl betöltésekor: +{0} + + + Támogatott fájlok|{0}|Minden fájl (*.*)|* + + + {0}-Fájlok|*{0}|Minden fájl (*.*)|* + + + Váratlan hiba történt: +{0} + + + Hiba történt a TV adatfájl írása közben: +{0} + + + A rendezett TV adatfájl sikeresen létrehozva. + + + Szeretné elmenteni a változtatásokat? + + + Változtatások mentése + + + Módosítások elvetése + + + Nem található bővítmény a(z) {0} fájlok olvasására/írására. + + + Hiba történt a fájl betöltésekor + + + A fájl tartalma bizonyos rendellenességeket mutat és sérült lehet. + + + Az adatok ellenőrzése + + + Minden egyéni tárolt adat elvész. +Biztosan vissza szeretné állítani a sorrendet a csatorna szkennelésből? + + + Állítsa vissza a sorrendet a csatorna szkennelésből + + + A bemeneti fájl több rekordot tartalmaz, amelyek ugyanazt a +program számot használják. Lehetséges, hogy a TV nem fogadja el +a ChanSort által végrehajtott változtatásokat. +Ezt általában egy kézi transzponder keresés futtatása okozza. +Javasoljuk, hogy tiszta bemeneti fájlt használjon a módosításokhoz. +Ehhez kapcsolja ki a Hotel módot, állítsa vissza a TV-t gyári alapállapotra, +futtasson egy új csatornakeresést, kapcsolja vissza a Hotel módot, +majd exportáljon egy új, tiszta TLL fájlt. + + + FIGYELEM: Minden analóg, DVB-C/T és DVB-S csatorna és transzponder adat törlődik. +A fájl TV-be történő betöltése után teljes csatorna keresést kell végrehajtania. +Folytassa? + + + Törölje az összes csatorna adatot + + + A .bak fájl nem másolható ide: {0} + + + Nem található biztonsági mentési fájl: {0} + + + Visszaállítja a biztonsági másolat fájlt. Minden változás elveszik! +Akarja folytatni? + + + Hiba történt a fájl mentésekor. Kérjük, győződjön meg arról +- van-e írási engedélye a fájlra +- a fájl nincs-e megnyitva egy másik programban + +A hibaüzenet a következő: + + + Fájl írási hiba + + + Újabb verzió érhető el: v{0}. +Meg szeretné nyitni a letöltési webhelyet? + + + Új verzió + + + Hogyan szeretné szerkeszteni a csatornák listáját? + + + Új lista létrehozása: Kezdés egy üres listával, majd csatornák hozzáadása a kívánt sorrendben + + + Az aktuális lista módosítása: Kezdés az aktuális listával, majd szükség szerinti módosítása + + + Csatornalista másolása: Rendezze a csatornákat ugyanúgy, mint egy referencia listában vannak + + + Mi történjen a rendezetlen csatornákkal? + + + Rendezés nélküli csatornákat fűzze hozzá a lista végéhez + + + Törölje a rendezetlen csatornákat a listából + + + Mégse + + + Fájl nem található + + + A(z) {0} fájl nem létezik. + + + A csatornalista ki lett másolva a vágólapra +és beilleszthető az Excelbe vagy bármilyen szövegszerkesztőbe. + + + Előfordulhat, hogy tévéje nem fog megfelelően működni, ha hiányosak a csatornaszámok. +Szeretné, hogy a csatornaszámokat egymás után rendezzük? + + + A fájl tartalma érvénytelen. Vagy 0 méretű, vagy az összes bájtja azonos értékű. +A tipikus ok, ha az USB memóriakártya NTFS fájlrendszerű (próbáljon inkább FAT32-et használni), vagy rendszerfrissítés történt új csatorna keresés nélkül. +(Előfordulhat, hogy az új szoftver a TV-ben nem tudja feldolgozni a régi csatornaadatokat az exportálás során.) + + + Antenna,Kábel,Műhold,IP,Analóg,Digitális,TV,Rádió,Adat + + + Hogyan szeretné kezelni, ha egy Pr# már szerepel a céllistában? + + + Céllista törlése a referencialista alkalmazása előtt + + + A Pr# felülírása a referencialistából származó csatornával + + + Tartsa az aktuális csatornát a Pr# helyen + + + Csatornák felcseréléséhez azonos számú sort kell kiválasztani a bal és a jobb táblázatban. + + + Csatornák felcserélése + + + Válasszon egy referencia listát az importáláshoz + + + ChanSort referencia lista|*.csv|SamToolBox referencia lista|*.chl|Minden referencia lista|*.csv;*.chl + + + Nyissa meg a referencialistát + + + A fájl nem megfelelő .zip archívum. +A tévék gyakran sérült fájlokat exportálnak az NTFS fájlrendszerrel formázott USB-meghajtókra. +Kérjük, próbáljon meg exportálni egy FAT32 formátumú tárolóra + + \ No newline at end of file diff --git a/source/ChanSort/Properties/licenses.licx b/source/ChanSort/Properties/licenses.licx index e69de29..0f52b01 100644 --- a/source/ChanSort/Properties/licenses.licx +++ b/source/ChanSort/Properties/licenses.licx @@ -0,0 +1,5 @@ +DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v20.1, Version=20.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v20.1, Version=20.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v20.1, Version=20.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v20.1, Version=20.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v20.1, Version=20.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/source/ChanSort/ReferenceListForm.hu.resx b/source/ChanSort/ReferenceListForm.hu.resx new file mode 100644 index 0000000..4727e50 --- /dev/null +++ b/source/ChanSort/ReferenceListForm.hu.resx @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Referencia lista fájl: + + + ← nyomja meg a gombot a fájl kijelöléséhez + + + Az alábbi beállítások csak akkor hatékonyak, ha a Hotel mód engedélyezve van + + + A TV fájl összes listájának automatikus átrendezése + + + Haladó átrendezés + + + Referencia lista: + + + Cél lista: + + + TV + + + Rádió + + + Kezdve ettől: Pr# + + + (pl. a rádiócsatornák induljanak 5000-től, hogy elkerüljük a tévécsatorna számaival való ütközést) + + + 1 + + + 1 + + + 100 + + + 500 + + + 1000 + + + 2000 + + + 5000 + + + 7000 + + + Adat/Egyéb + + + Egymást követő számok használata (hézagok eltávolítása a hivatkozási listából Pr#) + + + IP (hálózat) + + + Műhold + + + Bemenet: + + + Antenna + + + Kábel + + + Jel típus: + + + Analóg + + + Digitális + + + Csatorna típus: + + + Alkalmaz + + + grpManual + + + Ok + + + Bezár/Mégse + + + Nyissa meg a ChanSort Wikit további információkért és a referencia listák letöltéséért + + + 1. Válassza ki a referencia lista fájlt + + + Ha a tévé- és referencia fájl több listát tartalmaz, vagy különböző csoportosításokat használ, akkor a referencia lista kiválasztott részeit felhasználhatja egy céllistához. +Ez a lépés szükség szerint megismételhető. + + + Ez az opció csak akkor érhető el, ha a TV-fájl és a referencia lista azonos módon vannak elrendezve. +(azaz ugyanazok az allisták az antenna/kábel/műhold, TV/rádió, analóg/digitális kombinációkhoz) + + + 2. Hozza rendbe a TV fájlt + + + Referencia lista alkalmazása + + \ No newline at end of file diff --git a/source/ChanSort/WaitForm1.hu.resx b/source/ChanSort/WaitForm1.hu.resx new file mode 100644 index 0000000..b79813a --- /dev/null +++ b/source/ChanSort/WaitForm1.hu.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TV adatfájl létrehozása ... + + + Kérjük várjon + + \ No newline at end of file diff --git a/source/Images/imagelist/0047.png b/source/Images/imagelist/0047.png new file mode 100644 index 0000000..0ccb697 Binary files /dev/null and b/source/Images/imagelist/0047.png differ diff --git a/source/Spike.LgWebOs5/App.config b/source/Spike.LgWebOs5/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/source/Spike.LgWebOs5/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/source/Spike.LgWebOs5/Program.cs b/source/Spike.LgWebOs5/Program.cs new file mode 100644 index 0000000..1ea4c50 --- /dev/null +++ b/source/Spike.LgWebOs5/Program.cs @@ -0,0 +1,286 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Text; +using System.Xml; +using ChanSort.Api; +using Newtonsoft.Json; + +namespace Spike.LgWebOs5 +{ + class Program + { + private static string basedir; + + static void Main(string[] args) + { + basedir = args.Length > 0 ? args[0] : @"d:\sources\chansort\testfiles_lg"; + + using var stream = new FileStream("c:\\temp\\lg.csv", FileMode.Create); + using var csv = new StreamWriter(stream, Encoding.UTF8); + + var sources = new[] { "All", "Analog", "DVB-T", "DVB-C", "DVB-S", "Others" }; + var fields = ChanListStats.ColumnHeaders; + + csv.Write("\t\t\t\t\t\t\t\t"); + string skip = ""; + for (int i = 0; i < fields.Length - 1; i++) + skip += "\t"; + foreach(var src in sources) + csv.Write("\t" + src + skip); + csv.WriteLine(); + csv.Write("Path\tStatus\tModelName\tVersion\tDTVInfo\tBroadcastCountrySettings\tcountry\tFW info\t#channels"); + foreach (var source in sources) + { + foreach(var field in fields) + csv.Write("\t" + field); + } + csv.WriteLine(); + + ProcessWebOs5Files(basedir, csv); + } + + private static void ProcessWebOs5Files(string dir, StreamWriter csv) + { + var files = Directory.GetFiles(dir, "GlobalClone*.tll"); + + foreach (var tll in files) + { + var bak = tll + ".bak"; + var file = File.Exists(bak) ? bak : tll; + + var line = file.Substring(basedir.Length + 1) + "\t" + ProcessFile(file); + csv.WriteLine(line); + } + + foreach (var subdir in Directory.GetDirectories(dir)) + ProcessWebOs5Files(subdir, csv); + } + + #region ProcessFile() + private static string ProcessFile(string file) + { + var data = File.ReadAllBytes(file); + if (data.Length < 3) + return "too small"; + if (data[0] != '<' || data[1] != '?') + return "not XML"; + + var xml = Encoding.UTF8.GetString(data); + var ending = ""; + for (var i = xml.Length - 1; i >= 0; i--) + { + var ch = xml[i]; + if (ch == '\n') + ending = "NL" + ending; + else if (ch == '\r') + ending = "CR" + ending; + else if (ch == ' ') + ending = "SP " + ending; + else + break; + } + + var sb = new StringBuilder(); + var doc = new XmlDocument(); + try + { + doc.LoadXml(xml); + var mi = doc["TLLDATA"]["ModelInfo"]; + sb.Append("\t" + mi["ModelName"]?.InnerText); + var cv = mi["CloneVersion"]; + sb.Append("\t" + cv.Attributes["type"]?.InnerText + "." + cv["MajorVersion"]?.InnerText + "." + cv["MinorVersion"]?.InnerText + " / " + cv["SatelliteDBVersion"]?.InnerText); + sb.Append("\t" + mi["DTVInfo"]?.InnerText); + sb.Append("\t" + mi["BroadcastCountrySetting"]?.InnerText); + sb.Append("\t" + mi["country"]?.InnerText); + var legacy = doc["TLLDATA"]["CHANNEL"]["legacybroadcast"]; + if (legacy == null) + sb.Append("\tnot webOS 5"); + else + { + sb.Append("\t" + GetFirmwareVersionFromInfoFile(Path.Combine(Path.GetDirectoryName(file), @"LG Smart TV\TN\INFO"))); + sb.Append(ProcessWebOs5JsonData(legacy.InnerText)); + } + } + catch (Exception ex) + { + return ex.Message + "\t" + sb; + } + + return "ok ("+ending+")" + sb; + } + + private static string GetFirmwareVersionFromInfoFile(string file) + { + // this info file contains an escaped JSON string as the value of the INFO json property + if (!File.Exists(file)) + return ""; + + var content = File.ReadAllText(file); + content = content.Replace("\\\"", "\""); + var key = "core_os_release\": \""; + var start = content.IndexOf(key); + if (start < 0) + return ""; + var end = content.IndexOf("\"", start + key.Length + 1); + start += key.Length; + var value = content.Substring(start, end - start); + return value; + } + + #endregion + + #region ProcessWebOs5JsonData() + private static string ProcessWebOs5JsonData(string json) + { + dynamic doc = JsonConvert.DeserializeObject(json); + var sb = new StringBuilder(); + var channels = (IList) doc.channelList; + + sb.Append("\t").Append(channels?.Count); + var tvAndRadioPerSignalSource = new Dictionary(); + foreach (dynamic ch in channels) + { + var src = (string) ch.sourceIndex; + if (!tvAndRadioPerSignalSource.TryGetValue(src, out var stats)) + { + stats = new ChanListStats(); + tvAndRadioPerSignalSource[src] = stats; + } + stats.Add(ch); + } + + var a = new ChanListStats(); + var t = new ChanListStats(); + var c = new ChanListStats(); + var s = new ChanListStats(); + var o = new ChanListStats(); + var all = new ChanListStats(); + foreach (var entry in tvAndRadioPerSignalSource) + { + switch (entry.Key) + { + case "ANTENNA ANALOG": + case "CABLE ANALOG": + case "SATELLITE ANALOG": + a += entry.Value; + break; + case "ANTENNA DIGITAL": + t += entry.Value; + break; + case "CABLE DIGITAL": + c += entry.Value; + break; + case "SATELLITE DIGITAL": + s += entry.Value; + break; + default: + o += entry.Value; + break; + } + + all += entry.Value; + } + + sb.Append(all.ToString() + a + t + c + s + o); + return sb.ToString(); + } + #endregion + } + + #region class ChanListStats + class ChanListStats + { + public int Tv; + public int Radio; + public int Radio0; + public int Radio4k; + public int RadioMaskServiceTypeMismatch; + public int maxMajorTv; + public int maxMajorRadio; + public bool inMajorOrder = true; + public bool hasGap = false; + public bool deletedMajor0 = false; + public bool deletedMajorNon0 = false; + + public static readonly string[] ColumnHeaders = { + "TV", "Radio", + // "Rad 0/4K", "BadSvcType", + "InOrder", + "Del0/!0" + }; + + public override string ToString() + { + return + "\t" + Tv + "\t" + Radio + // + "\t" + Radio0 + "/" + Radio4k + "\t" + RadioMaskServiceTypeMismatch + + "\t" + (inMajorOrder ? "J" : "N") + "/" + (hasGap ? "J" : "N") + + "\t" + (deletedMajor0 ? "J" : "N") + "/" + (deletedMajorNon0 ? "J" : "N"); + } + + public void Add(dynamic ch) + { + var major = (int)ch.majorNumber; + var nr = major & 0x3FFF; + + if ((major & 0x4000) != 0) + { + ++Radio; + if (inMajorOrder && nr != 0 && nr <= maxMajorRadio) + inMajorOrder = false; + else + maxMajorRadio = nr; + + hasGap |= nr != 0 && nr != maxMajorRadio; + } + else + { + ++Tv; + if (inMajorOrder && major != 0 && major <= maxMajorTv) + inMajorOrder = false; + else + maxMajorTv = major; + + hasGap |= nr != 0 && nr != maxMajorTv; + } + + if (major == 0x4000) + ++Radio4k; + + if (ch.serviceType != null) + { + var serviceIsRadio = LookupData.Instance.IsRadioTvOrData((int)ch.serviceType) == SignalSource.Radio; + if (major == 0 && serviceIsRadio) + ++Radio0; + if (((major & 0x4000) != 0) != serviceIsRadio) + ++RadioMaskServiceTypeMismatch; + } + + if (ch.deleted != null && (bool)ch.deleted) + { + if (nr == 0) + deletedMajor0 = true; + else + deletedMajorNon0 = true; + } + } + + public static ChanListStats operator +(ChanListStats a, ChanListStats b) + { + var stats = new ChanListStats(); + stats.Tv = a.Tv + b.Tv; + stats.Radio = a.Radio + b.Radio; + stats.RadioMaskServiceTypeMismatch = a.RadioMaskServiceTypeMismatch + b.RadioMaskServiceTypeMismatch; + stats.Radio0 = a.Radio0 + b.Radio0; + stats.Radio4k = a.Radio4k + b.Radio4k; + stats.inMajorOrder = a.inMajorOrder && b.inMajorOrder; + stats.hasGap = a.hasGap || b.hasGap; + stats.deletedMajor0 = a.deletedMajor0 || b.deletedMajor0; + stats.deletedMajorNon0 = a.deletedMajorNon0 || b.deletedMajorNon0; + return stats; + } + } + #endregion +} diff --git a/source/Spike.LgWebOs5/Properties/AssemblyInfo.cs b/source/Spike.LgWebOs5/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c874af7 --- /dev/null +++ b/source/Spike.LgWebOs5/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Spike.LgWebOs5")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Spike.LgWebOs5")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[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("32efb306-def8-4488-b1ae-46d5b183c373")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/source/Spike.LgWebOs5/Spike.LgWebOs5.csproj b/source/Spike.LgWebOs5/Spike.LgWebOs5.csproj new file mode 100644 index 0000000..ddade59 --- /dev/null +++ b/source/Spike.LgWebOs5/Spike.LgWebOs5.csproj @@ -0,0 +1,91 @@ + + + + + Debug + AnyCPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373} + Exe + Spike.LgWebOs5 + Spike.LgWebOs5 + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + latest + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + latest + + + true + bin\x86\Debug\ + DEBUG;TRACE + full + x86 + latest + prompt + true + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + latest + prompt + true + + + + ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + + + + + + + + + + ..\packages\Microsoft.AspNet.WebPages.Data.3.2.7\lib\net45\WebMatrix.Data.dll + + + ..\packages\Microsoft.AspNet.WebPages.WebData.3.2.7\lib\net45\WebMatrix.WebData.dll + + + + + + + + + + + + + {dccffa08-472b-4d17-bb90-8f513fc01392} + ChanSort.Api + + + + \ No newline at end of file diff --git a/source/Spike.LgWebOs5/packages.config b/source/Spike.LgWebOs5/packages.config new file mode 100644 index 0000000..ef95abe --- /dev/null +++ b/source/Spike.LgWebOs5/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/source/Translation.xlsx b/source/Translation.xlsx index 6fdb278..1147c0c 100644 Binary files a/source/Translation.xlsx and b/source/Translation.xlsx differ diff --git a/source/changelog.md b/source/changelog.md index 5a27ebe..7d039dd 100644 --- a/source/changelog.md +++ b/source/changelog.md @@ -1,6 +1,13 @@ ChanSort Change Log =================== +2020-12-05 +- Philips: Fixed error saving the Favorite.xml file (effects Philips "ChannelMap_105" and later file format versions) +- added Hungarian translation (credits to Istvan Krisko) +- Sony XML: fixed display of wrong DVB-C cable channel/transponder number +- LG webOS 5: unfortunately no news yet, but the insight that some "CX" models run on webOS 3.6 and others on 5.1, using + different file formats. + 2020-11-16 - Philips: TV rejected modified lists because checksums inside chanLst.bin were not updated. This is now fixed. - LG WebOS 5: fixed handling for deleted satellite radio channels (some TVs expect majorNumber 0, others 16384) diff --git a/source/makeDistribZip.cmd b/source/makeDistribZip.cmd index d8a5d1f..7ada36a 100644 --- a/source/makeDistribZip.cmd +++ b/source/makeDistribZip.cmd @@ -43,6 +43,11 @@ rem If you want to digitally sign the generated .exe and .dll files, rem you need to have your code signing certificate installed in the Windows certificate storage rem ----------------------------- set signtool="C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64\signtool.exe" +if not exist %signtool% ( + echo can't find signtool: %signtool% + pause + goto:eof +) set oldcd=%cd% cd %target% call :signBatch ChanSort.exe ChanSort*.dll