From b571e8897ef9fca1a9617a6abff5d010022b0fec Mon Sep 17 00:00:00 2001 From: hbeham Date: Fri, 27 Nov 2015 01:51:08 +0100 Subject: [PATCH] - disable editing of predefined channel lists (based on LCN). TVs can show erratic behavior when a predefined list is modified. e.g. Samsung J built-in "Astra 19.2E" list, LG "Astra" or "Sky" lists, ... (can be overridden in the Settings menu) - new skin --- .../ChanSort.Loader.Hisense/HisSerializer.cs | 8 +- source/ChanSort.Loader.SamsungJ/DbChannel.cs | 8 +- .../ChanSort.Loader.SamsungJ/DbSerializer.cs | 37 +- source/ChanSort/ChanSort.csproj | 10 +- source/ChanSort/GlobalImageCollection.cs | 5 + source/ChanSort/GlobalImageCollection.resx | 547 +++++++++--------- source/ChanSort/MainForm.Designer.cs | 32 +- source/ChanSort/MainForm.cs | 31 +- source/ChanSort/MainForm.de.resx | 15 + source/ChanSort/MainForm.resx | 189 +++--- source/ChanSort/Program.cs | 1 + source/Images/imagelist/0036.png | Bin 0 -> 729 bytes source/Images/imagelist/0037.png | Bin 0 -> 1055 bytes source/changelog.md | 7 + 14 files changed, 516 insertions(+), 374 deletions(-) create mode 100644 source/Images/imagelist/0036.png create mode 100644 source/Images/imagelist/0037.png diff --git a/source/ChanSort.Loader.Hisense/HisSerializer.cs b/source/ChanSort.Loader.Hisense/HisSerializer.cs index 8976e98..bce34c5 100644 --- a/source/ChanSort.Loader.Hisense/HisSerializer.cs +++ b/source/ChanSort.Loader.Hisense/HisSerializer.cs @@ -34,6 +34,8 @@ namespace ChanSort.Loader.Hisense #region ctor() public HisSerializer(string inputFile) : base(inputFile) { + DepencencyChecker.AssertVc2010RedistPackageX86Installed(); + this.Features.ChannelNameEdit = ChannelNameEditMode.All; this.Features.CanDeleteChannels = false; channelLists.Add(new ChannelList(SignalSource.Antenna | SignalSource.Analog | SignalSource.Digital | SignalSource.Radio | SignalSource.Tv, "Antenna")); @@ -192,12 +194,16 @@ namespace ChanSort.Loader.Hisense } this.LoadSvlData(cmd, x, "svl_#_data_analog", "", (ci, r, i0) => { }); - this.LoadSvlData(cmd, x, "svl_#_data_dvb", ", b_free_ca_mode, s_svc_name", (ci, r, i0) => + this.LoadSvlData(cmd, x, "svl_#_data_dvb", ", b_free_ca_mode, s_svc_name, cur_lcn", (ci, r, i0) => { ci.Encrypted = r.GetBoolean(i0 + 0); ci.ShortName = r.GetString(i0 + 1); if ((ci.SignalSource & SignalSource.DvbT) == SignalSource.DvbT) ci.ChannelOrTransponder = LookupData.Instance.GetDvbtTransponder(ci.FreqInMhz).ToString(); + + // make the current list read-only if LCN is used + if (r.GetInt32(i0 + 2) != 0) + this.channelLists[x - 1].ReadOnly = true; }); } } diff --git a/source/ChanSort.Loader.SamsungJ/DbChannel.cs b/source/ChanSort.Loader.SamsungJ/DbChannel.cs index 9102db2..a620378 100644 --- a/source/ChanSort.Loader.SamsungJ/DbChannel.cs +++ b/source/ChanSort.Loader.SamsungJ/DbChannel.cs @@ -73,13 +73,7 @@ namespace ChanSort.Loader.SamsungJ this.VideoPid = r.GetInt32(field["vidPid"]); if (!r.IsDBNull(field["provId"])) this.Provider = providers.TryGet(r.GetInt64(field["provId"])); - } - #endregion - - - #region UpdateRawData() - public override void UpdateRawData() - { + this.AddDebug(r.GetInt32(field["lcn"]).ToString()); } #endregion } diff --git a/source/ChanSort.Loader.SamsungJ/DbSerializer.cs b/source/ChanSort.Loader.SamsungJ/DbSerializer.cs index 340013d..e944336 100644 --- a/source/ChanSort.Loader.SamsungJ/DbSerializer.cs +++ b/source/ChanSort.Loader.SamsungJ/DbSerializer.cs @@ -25,7 +25,7 @@ namespace ChanSort.Loader.SamsungJ DepencencyChecker.AssertVc2010RedistPackageX86Installed(); this.Features.ChannelNameEdit = ChannelNameEditMode.All; - this.Features.CanDeleteChannels = true; + this.Features.CanDeleteChannels = false; this.DataRoot.SupportedFavorites = Favorites.A | Favorites.B | Favorites.C | Favorites.D | Favorites.E; this.DataRoot.SortedFavorites = false; } @@ -56,6 +56,9 @@ namespace ChanSort.Loader.SamsungJ foreach (var filePath in Directory.GetFiles(tempDir, "*.")) { + var filename = Path.GetFileName(filePath) ?? ""; + if (filename.StartsWith("vconf_")) + continue; try { using (var conn = new SQLiteConnection("Data Source=" + filePath)) @@ -265,7 +268,13 @@ namespace ChanSort.Loader.SamsungJ "SRV.srvId", "major", "progNum", "cast(srvName as blob)", "srvType", "hidden", "scrambled", "lockMode", "numSel", // SRV }; if (digital) - fieldNames.AddRange(new[] { "onid", "tsid", "vidPid", "provId", "cast(shrtSrvName as blob)" }); // SRV_DVB + { + fieldNames.AddRange(new[] {"onid", "tsid", "vidPid", "provId", "cast(shrtSrvName as blob)", "lcn"}); // SRV_DVB + + // make LCN-based channel lists read-only + cmd.CommandText = "select count(1) from SRV_DVB where lcn<>65535"; + channelList.ReadOnly = (long)cmd.ExecuteScalar() > 0; + } var sql = this.BuildQuery(table, fieldNames); var fields = this.GetFieldMap(fieldNames); @@ -497,22 +506,14 @@ namespace ChanSort.Loader.SamsungJ private static SQLiteCommand PrepareDeleteCommand(SQLiteConnection conn, bool digital) { var cmd = conn.CreateCommand(); - cmd.CommandText = "select count(1) from sqlite_master where upper(name)='SRV_DVB_EXT' and type='table'"; - bool hasDvbExt = (long) cmd.ExecuteScalar() > 0; - - cmd.CommandText += "; delete from SRV_FAV where srvId=@id"; - - if (digital) + var sql = new StringBuilder(); + cmd.CommandText = "select name from sqlite_master where sql like '%srvId integer%' order by name desc"; + using (var r = cmd.ExecuteReader()) { - if (hasDvbExt) - cmd.CommandText += "; delete from SRV_DVB_EXT where srvId=@id"; - cmd.CommandText += "; delete from SRV_DVB where srvId=@id"; + while (r.Read()) + sql.AppendLine($"; delete from {r.GetString(0)} where srvId=@id"); } - else - cmd.CommandText += "; delete from SRV_ANL where srvId=@id"; - - cmd.CommandText = "delete from SRV where srvId=@id"; - + cmd.CommandText = sql.ToString(); cmd.Parameters.Add(new SQLiteParameter("@id", DbType.Int64)); cmd.Prepare(); return cmd; @@ -559,7 +560,7 @@ namespace ChanSort.Loader.SamsungJ var channel = channelInfo as DbChannel; if (channel == null) // ignore reference list proxy channels continue; - channel.UpdateRawData(); + if (channel.NewProgramNr < 0) { cmdDeleteSrv.Parameters["@id"].Value = channel.RecordIndex; @@ -572,7 +573,7 @@ namespace ChanSort.Loader.SamsungJ cmdUpdateSrv.Parameters["@lock"].Value = channel.Lock; cmdUpdateSrv.Parameters["@hidden"].Value = channel.Hidden; cmdUpdateSrv.Parameters["@numsel"].Value = !channel.Skip; - cmdUpdateSrv.Parameters["@srvname"].Value = channel.Name == null ? null : Encoding.BigEndianUnicode.GetBytes(channel.Name); + cmdUpdateSrv.Parameters["@srvname"].Value = channel.Name == null ? (object)DBNull.Value : Encoding.BigEndianUnicode.GetBytes(channel.Name); cmdUpdateSrv.ExecuteNonQuery(); } diff --git a/source/ChanSort/ChanSort.csproj b/source/ChanSort/ChanSort.csproj index 7563e7f..7d455e0 100644 --- a/source/ChanSort/ChanSort.csproj +++ b/source/ChanSort/ChanSort.csproj @@ -58,17 +58,14 @@ app.ico - False - False - False @@ -76,8 +73,6 @@ False - - False @@ -88,12 +83,11 @@ False - - - + + diff --git a/source/ChanSort/GlobalImageCollection.cs b/source/ChanSort/GlobalImageCollection.cs index d36a94f..55379bf 100644 --- a/source/ChanSort/GlobalImageCollection.cs +++ b/source/ChanSort/GlobalImageCollection.cs @@ -49,7 +49,12 @@ namespace ChanSort.Ui // // sharedImageCollection1 // + // + // + // this.sharedImageCollection1.ImageSource.ImageStream = ((DevExpress.Utils.ImageCollectionStreamer)(resources.GetObject("sharedImageCollection1.ImageSource.ImageStream"))); + this.sharedImageCollection1.ImageSource.Images.SetKeyName(36, "0036.png"); + this.sharedImageCollection1.ImageSource.Images.SetKeyName(37, "0037.png"); this.sharedImageCollection1.ParentControl = null; ((System.ComponentModel.ISupportInitialize)(this.sharedImageCollection1.ImageSource)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.sharedImageCollection1)).EndInit(); diff --git a/source/ChanSort/GlobalImageCollection.resx b/source/ChanSort/GlobalImageCollection.resx index d58e237..cc67973 100644 --- a/source/ChanSort/GlobalImageCollection.resx +++ b/source/ChanSort/GlobalImageCollection.resx @@ -123,13 +123,13 @@ - AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxMy4yLCBWZXJzaW9uPTEzLjIu - OS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT + AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxNS4xLCBWZXJzaW9uPTE1LjEu + OC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT eXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRv a2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAAChEZXZFeHByZXNzLlV0aWxzLkltYWdlQ29sbGVjdGlvblN0 cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P// /xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABAAAAAQAAAACQUAAAAP - BQAAABZkAAAC2AIAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAAARnQU1BAACxjwv8 + BQAAAHdpAAAC2AIAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAACukAAArpAf11ztMAAAAHdElNRQfWAwEODCaDia/cAAACZ0lEQVQ4T82S7UsTUBSH 75eCCAx6oTAqg7BMRKjoQ6S9Oa1I10gzU8PUZmYpKEamy8gCX8iS2YxqiRmREMrUltEoLdSMps458wXU EiW0UToNbdTTpaLtP6gDlwuXe57zO79zxP8RC1M7CCzqRSR0IZI7EepOvLO7CI4qRRGpxTejGRHTioiV @@ -299,269 +299,292 @@ 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 - AAAASUVORK5CYIIL + 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 + SUVORK5CYIIL - 08/21/2014 12:42:54 + 11/27/2015 01:18:01 diff --git a/source/ChanSort/MainForm.Designer.cs b/source/ChanSort/MainForm.Designer.cs index eacbeda..18322a3 100644 --- a/source/ChanSort/MainForm.Designer.cs +++ b/source/ChanSort/MainForm.Designer.cs @@ -95,6 +95,7 @@ this.colSignalSource = new DevExpress.XtraGrid.Columns.GridColumn(); this.lblHotkeyRight = new DevExpress.XtraEditors.LabelControl(); this.panelControl3 = new DevExpress.XtraEditors.PanelControl(); + this.lblPredefinedList = new DevExpress.XtraEditors.LabelControl(); this.btnRemoveRight = new DevExpress.XtraEditors.SimpleButton(); this.btnAddAll = new DevExpress.XtraEditors.SimpleButton(); this.btnClearRightFilter = new DevExpress.XtraEditors.SimpleButton(); @@ -153,6 +154,7 @@ this.miCharsetForm = new DevExpress.XtraBars.BarButtonItem(); this.miIsoCharSets = new DevExpress.XtraBars.BarListItem(); this.miShowWarningsAfterLoad = new DevExpress.XtraBars.BarCheckItem(); + this.miAllowEditPredefinedLists = new DevExpress.XtraBars.BarButtonItem(); this.mnuAccessibility = new DevExpress.XtraBars.BarSubItem(); this.mnuGotoChannelList = new DevExpress.XtraBars.BarSubItem(); this.mnuInputSource = new DevExpress.XtraBars.BarLinkContainerItem(); @@ -844,6 +846,7 @@ // // panelControl3 // + this.panelControl3.Controls.Add(this.lblPredefinedList); this.panelControl3.Controls.Add(this.btnRemoveRight); this.panelControl3.Controls.Add(this.btnAddAll); this.panelControl3.Controls.Add(this.btnClearRightFilter); @@ -851,6 +854,13 @@ resources.ApplyResources(this.panelControl3, "panelControl3"); this.panelControl3.Name = "panelControl3"; // + // lblPredefinedList + // + this.lblPredefinedList.Appearance.Font = ((System.Drawing.Font)(resources.GetObject("lblPredefinedList.Appearance.Font"))); + this.lblPredefinedList.Appearance.ForeColor = ((System.Drawing.Color)(resources.GetObject("lblPredefinedList.Appearance.ForeColor"))); + resources.ApplyResources(this.lblPredefinedList, "lblPredefinedList"); + this.lblPredefinedList.Name = "lblPredefinedList"; + // // btnRemoveRight // this.btnRemoveRight.ImageIndex = 11; @@ -972,9 +982,10 @@ this.mnuInputSource, this.mnuGotoFavList, this.mnuFavList, - this.miRussian}); + this.miRussian, + this.miAllowEditPredefinedLists}); this.barManager1.MainMenu = this.bar1; - this.barManager1.MaxItemId = 94; + this.barManager1.MaxItemId = 95; this.barManager1.ShowFullMenus = true; // // bar1 @@ -1461,7 +1472,8 @@ this.mnuOptions.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, this.barSubItem1, DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph), new DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, this.mnuCharset, DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph), - new DevExpress.XtraBars.LinkPersistInfo(this.miShowWarningsAfterLoad)}); + new DevExpress.XtraBars.LinkPersistInfo(this.miShowWarningsAfterLoad), + new DevExpress.XtraBars.LinkPersistInfo(this.miAllowEditPredefinedLists)}); this.mnuOptions.Name = "mnuOptions"; // // barSubItem1 @@ -1556,6 +1568,15 @@ this.miShowWarningsAfterLoad.Id = 54; this.miShowWarningsAfterLoad.Name = "miShowWarningsAfterLoad"; // + // miAllowEditPredefinedLists + // + this.miAllowEditPredefinedLists.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; + resources.ApplyResources(this.miAllowEditPredefinedLists, "miAllowEditPredefinedLists"); + this.miAllowEditPredefinedLists.Id = 94; + this.miAllowEditPredefinedLists.ImageIndex = 37; + this.miAllowEditPredefinedLists.Name = "miAllowEditPredefinedLists"; + this.miAllowEditPredefinedLists.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miAllowEditPredefinedLists_DownChanged); + // // mnuAccessibility // resources.ApplyResources(this.mnuAccessibility, "mnuAccessibility"); @@ -1813,7 +1834,7 @@ // // defaultLookAndFeel1 // - this.defaultLookAndFeel1.LookAndFeel.SkinName = "Office 2007 Blue"; + this.defaultLookAndFeel1.LookAndFeel.SkinName = "Office 2010 Blue"; // // grpTopPanel // @@ -1986,6 +2007,7 @@ ((System.ComponentModel.ISupportInitialize)(this.repositoryItemCheckedComboBoxEdit2)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.panelControl3)).EndInit(); this.panelControl3.ResumeLayout(false); + this.panelControl3.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.barManager1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.txtSetSlot.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.picDonate.Properties)).EndInit(); @@ -2180,6 +2202,8 @@ private DevExpress.XtraBars.BarLinkContainerItem mnuFavList; private DevExpress.XtraBars.BarButtonItem miRussian; private DevExpress.XtraSplashScreen.SplashScreenManager splashScreenManager1; + private DevExpress.XtraEditors.LabelControl lblPredefinedList; + private DevExpress.XtraBars.BarButtonItem miAllowEditPredefinedLists; } } diff --git a/source/ChanSort/MainForm.cs b/source/ChanSort/MainForm.cs index 31f635e..3759180 100644 --- a/source/ChanSort/MainForm.cs +++ b/source/ChanSort/MainForm.cs @@ -25,7 +25,7 @@ namespace ChanSort.Ui { public partial class MainForm : XtraForm { - public const string AppVersion = "v2015-11-26"; + public const string AppVersion = "v2015-11-27"; private const int MaxMruEntries = 10; @@ -624,9 +624,7 @@ namespace ChanSort.Ui if (gviewLeft.IsValidRowHandle(0)) this.SelectFocusedRow(this.gviewLeft, 0); - bool allowEdit = channelList != null && !channelList.ReadOnly; - this.gviewLeft.OptionsBehavior.Editable = allowEdit; - this.gviewRight.OptionsBehavior.Editable = allowEdit; + UpdateGridReadOnly(); this.UpdateInsertSlotTextBox(); @@ -634,6 +632,23 @@ namespace ChanSort.Ui } #endregion + #region UpdateGridReadOnly + private void UpdateGridReadOnly() + { + bool allowEdit = !this.currentChannelList?.ReadOnly ?? true; + bool forceEdit = this.miAllowEditPredefinedLists.Down; + + this.gviewLeft.OptionsBehavior.Editable = allowEdit || forceEdit; + this.gviewRight.OptionsBehavior.Editable = allowEdit || forceEdit; + this.gviewLeft.Appearance.Row.BackColor = this.gviewRight.Appearance.Row.BackColor = Color.MistyRose; + this.gviewLeft.Appearance.Empty.BackColor = this.gviewRight.Appearance.Empty.BackColor = Color.MistyRose; + this.gviewLeft.Appearance.Row.Options.UseBackColor = this.gviewRight.Appearance.Row.Options.UseBackColor = !allowEdit; + this.gviewLeft.Appearance.Empty.Options.UseBackColor = this.gviewRight.Appearance.Empty.Options.UseBackColor = !allowEdit; + this.lblPredefinedList.Visible = !(allowEdit || forceEdit); + } + + #endregion + #region ShowSaveFileDialog() private void ShowSaveFileDialog() @@ -2579,8 +2594,14 @@ namespace ChanSort.Ui TryExecute(this.editor.ApplyPrNrToFavLists); this.RefreshGrid(this.gviewLeft, this.gviewRight); } + #endregion - + #region miAllowEditPredefinedLists_DownChanged + private void miAllowEditPredefinedLists_DownChanged(object sender, ItemClickEventArgs e) + { + TryExecute(this.UpdateGridReadOnly); + } + #endregion } } diff --git a/source/ChanSort/MainForm.de.resx b/source/ChanSort/MainForm.de.resx index 5106192..bd271ea 100644 --- a/source/ChanSort/MainForm.de.resx +++ b/source/ChanSort/MainForm.de.resx @@ -628,4 +628,19 @@ Service Typ + + Diese vorprogrammierte Liste kann nicht bearbeitet werden. + + + Bei der Einrichtung ihres TVs wurde eine vordefinierte Senderliste gewählt. +Das Ändern dieser Liste würde zu Fehlfunktionen des Geräts führen. +Führen Sie bitte einen Sender-Vollsuchlauf aus und wählen Sie dabei keine +speziellen Anbieter, Satelliten oder Länderlisten aus. + + + Bearbeiten vordefinierter Listen erlauben (GEFÄHRLICH) + + + Der Fernseher funktioniert dabei unter Umständen nicht mehr korrekt. + \ No newline at end of file diff --git a/source/ChanSort/MainForm.resx b/source/ChanSort/MainForm.resx index a5955d7..dd419d6 100644 --- a/source/ChanSort/MainForm.resx +++ b/source/ChanSort/MainForm.resx @@ -123,7 +123,7 @@ - 0, 108 + 0, 110 361, 17 @@ -132,7 +132,7 @@ Fill - 2, 53 + 2, 54 Tahoma, 8.25pt, style=Bold @@ -211,7 +211,7 @@ UID - @Invariant + Lock @@ -258,7 +258,7 @@ Numeric - 449, 419 + 449, 410 1 @@ -279,7 +279,7 @@ Bottom - 2, 472 + 2, 464 2, 2, 2, 2 @@ -315,7 +315,7 @@ 6, 13 - 1474, 599 + 1468, 593 Bottom, Left, Right @@ -324,7 +324,7 @@ 0, 5 - 1463, 0 + 1457, 0 Pr# @@ -342,7 +342,7 @@ 0 - 1469, 22 + 1463, 22 6 @@ -363,17 +363,17 @@ Top - 0, 81 + 0, 83 - 1474, 27 + 1468, 27 10 Sub List - @Invariant + False @@ -466,37 +466,37 @@ &A - @Invariant + &B - @Invariant + &C - @Invariant + &D - @Invariant + &E - @Invariant + Remove from Favorites &A - @Invariant + &B - @Invariant + &C - @Invariant + &D - @Invariant + &E - @Invariant + &Lock channel: on @@ -535,16 +535,16 @@ &English - @Invariant + &Deutsch - @Invariant + Português - @Invariant + ру́сский - @Invariant + &Character set @@ -560,6 +560,12 @@ Automatically show any warnings after opening a file + + Allow editing predefined lists (DANGEROUS) + + + Your TV may malfunction when you edit a list with predefined channel numbers + &Accessibility @@ -571,7 +577,7 @@ mnuInputSource - @Invariant + Opens a submenu for the program of favorite list selection. This menu can be directly activated with the Shift+F1 key @@ -580,7 +586,7 @@ mnuFavList - @Invariant + Program list @@ -630,7 +636,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4xLCBWZXJzaW9uPTE1 - LjEuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + LjEuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEZpbGUE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICKaPJ5gsBeU2NTSFe @@ -640,7 +646,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4xLCBWZXJzaW9uPTE1 - LjEuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + LjEuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEhlbHAE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICdEVVDegwMU2acNpw @@ -650,7 +656,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4xLCBWZXJzaW9uPTE1 - LjEuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + LjEuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEVkaXQE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICZMTu18lZRU+IqmAu @@ -660,7 +666,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4xLCBWZXJzaW9uPTE1 - LjEuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + LjEuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAAB09wdGlvbnME/P///wtTeXN0ZW0uR3VpZAsAAAACX2EC X2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICXJMOh9nzAkKc @@ -670,7 +676,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4xLCBWZXJzaW9uPTE1 - LjEuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + LjEuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAADUFjY2Vzc2liaWxpdHkE/P///wtTeXN0ZW0uR3VpZAsA AAACX2ECX2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICeIvz @@ -684,7 +690,7 @@ 0, 0 - 1474, 24 + 1468, 26 barDockControlTop @@ -702,10 +708,10 @@ Bottom - 0, 599 + 0, 593 - 1474, 0 + 1468, 0 barDockControlBottom @@ -723,10 +729,10 @@ Left - 0, 24 + 0, 26 - 0, 575 + 0, 567 barDockControlLeft @@ -744,10 +750,10 @@ Right - 1474, 24 + 1468, 26 - 0, 575 + 0, 567 barDockControlRight @@ -901,7 +907,7 @@ Top, Right - 1296, 4 + 1290, 4 Transparent @@ -931,7 +937,7 @@ 0, 33 - 1284, 0 + 1278, 0 No channel lists @@ -949,7 +955,7 @@ 0 - 1290, 22 + 1284, 22 5 @@ -1004,7 +1010,7 @@ \d{1,4} - @Invariant + RegEx @@ -1030,10 +1036,10 @@ Top - 0, 24 + 0, 26 - 1474, 57 + 1468, 57 0 @@ -1650,6 +1656,12 @@ DevExpress.XtraBars.BarCheckItem, DevExpress.XtraBars.v15.1, Version=15.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + miAllowEditPredefinedLists + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v15.1, Version=15.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + mnuAccessibility @@ -1819,7 +1831,7 @@ DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v15.1, Version=15.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - 10/04/2015 16:31:34 + 11/27/2015 01:36:55 16, 16 @@ -1865,7 +1877,7 @@ ±E - @Invariant + btnToggleFavE @@ -1892,7 +1904,7 @@ ±D - @Invariant + btnToggleFavD @@ -1919,7 +1931,7 @@ ±C - @Invariant + btnToggleFavC @@ -1946,7 +1958,7 @@ ±B - @Invariant + btnToggleFavB @@ -1973,7 +1985,7 @@ ±A - @Invariant + btnToggleFavA @@ -2131,7 +2143,7 @@ Top - 2, 20 + 2, 21 449, 33 @@ -2158,7 +2170,7 @@ 0, 0 - 453, 491 + 453, 483 0 @@ -2180,12 +2192,12 @@ Panel1 - @Invariant + Fill - 2, 53 + 2, 54 Tahoma, 8.25pt, style=Bold @@ -2435,7 +2447,7 @@ TS ID - @Invariant + Transport Stream ID @@ -2468,7 +2480,7 @@ Uid - @Invariant + 120 @@ -2506,7 +2518,7 @@ Signal source - 1012, 419 + 1005, 410 1 @@ -2527,7 +2539,7 @@ Bottom - 2, 472 + 2, 464 2, 2, 2, 2 @@ -2553,6 +2565,45 @@ 1 + + Tahoma, 12pt, style=Bold + + + Maroon + + + 291, 7 + + + 372, 19 + + + 8 + + + This is a predefined list and cannot be edited. + + + During the setup of your TV you selected a predefined channel list. +Modifying such a list would cause your TV to malfunction. +Please run a full channel scan on your TV and do not select any +specific provider, satellite or country lists. + + + False + + + lblPredefinedList + + + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v15.1, Version=15.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + panelControl3 + + + 0 + 34, 5 @@ -2578,7 +2629,7 @@ panelControl3 - 0 + 1 Append all currently unsorted channels at the end of the list @@ -2608,7 +2659,7 @@ panelControl3 - 1 + 2 Remove channel filter criteria from complete channel list @@ -2641,7 +2692,7 @@ panelControl3 - 2 + 3 5, 5 @@ -2668,16 +2719,16 @@ panelControl3 - 3 + 4 Top - 2, 20 + 2, 21 - 1012, 33 + 1005, 33 0 @@ -2701,7 +2752,7 @@ 0, 0 - 1016, 491 + 1009, 483 0 @@ -2723,16 +2774,16 @@ Panel2 - @Invariant + - 1474, 491 + 1468, 483 5 splitContainerControl1 - @Invariant + splitContainerControl1 diff --git a/source/ChanSort/Program.cs b/source/ChanSort/Program.cs index e6efc71..2706d33 100644 --- a/source/ChanSort/Program.cs +++ b/source/ChanSort/Program.cs @@ -17,6 +17,7 @@ namespace ChanSort.Ui AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; Application.ThreadException += Application_ThreadException; Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); + DevExpress.Skins.SkinManager.EnableFormSkins(); do { ChangeLanguage = false; diff --git a/source/Images/imagelist/0036.png b/source/Images/imagelist/0036.png new file mode 100644 index 0000000000000000000000000000000000000000..e26911b1be3847638b32785fa34bac68f30de5a3 GIT binary patch literal 729 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}U4T!BtB)>2PY6SIFhhSBLtiLE zcL>A(SqxvNGVIJ}_%M;-|7?bn6%5~}G5nmy(BjX)!_JWJ#PE4CLxV4aFb_jV5W}x& z3|wqLvlv*I846t(zD!~GF^!?#hk=8Y;m1@4aXtoCW`+t627XQkW+ny}CWcQF8Q57E zm>3xt85zD#Vc7lq_fw!|#w2fd7jf=uGx~uX&H|6fVg?4WogmEkkIDQVP;j@Wi(`ny zW!3(0u~r2h7fmT?Go6m7nq}YjADo_HH|eBI!j7K8gR0^Ycbreo;1_5K-&v46%wqQtSZ zBqP6wp|UKsSRuVMGbbm%^w6}eOM%j=AnBCEl2ohYqEsNoU}Ruuq-$uPYhV^)Xkley zVP$NoZD3?&V6gqLzcq@6-29Zxv`UZ$16@NyT|<))15+zgbD$n=14E#O?Cu|xKn+G9 z8+b88S*r3as??Q}gu7GqW=bQd2S$_413-^+7!SfYPL#%;fl#{M^LMJo~?| z&I5Hzf^-Mxr15s33l$^@oUyz!o;GC0L zpx{_kqTrL6RFqg$Ipes;cc3~&gu3|9ARm}(@_|~CfjSb4N@DrWF>^>bP0 Hl+XkKOZ)W# literal 0 HcmV?d00001 diff --git a/source/Images/imagelist/0037.png b/source/Images/imagelist/0037.png new file mode 100644 index 0000000000000000000000000000000000000000..60f35369d2c37e7391ebe7b13472b30f1d687d6b GIT binary patch literal 1055 zcmY+AdrVt(6vw|vK-gFrSv0UL3dS*((e}1HTLfC9gT}7h((>F4y}i9HHuajvXiT_}Y)v09HCM=R~IgH@x_v9i1fp?8hIc z&|iaJx^a%e#vr;YG2=k!2=o%HbRzsF7G6Vx66a}L=ONvL;db=(QUSpuV67#x!{W}S$MM#1yAcN$wEu*L9|;kX_;2?lD>tj5S;eB{RbtGMF8 zQ7!6n(RK*7A{3`%wFh(o#v5>v!S8+e!iUdz$e)2~AG!>%7a=7Pr)zMl3+sajk70cX zwn9Aj6!cPLKMPY97LH;0IELzQBoCYhEv4{i@NOd>4WqRTr)uyXi?=M8vf+{)V=v>U zPTUUQ8i&UrY!2h@N!;(pCoNbTK%f%sdfe=pUlJCJvb8lZo z+Ik{yMR*KrOVy_2McQn(S}YbD#nARxd2&kf_xZxP`l0`ozcypqbh)wVBDFe=N;1e= z;j7$Pfjf?EVaK)E`OKw&9{qr zM7BKkqB%>JlQsAL%m=g6IWq&(c8j^6BU^ZGxV6Q*=(XQ7+sqql^0oC__a8o}iHp0v z-C{K-h~ih{x7+)=gFT`^AV!g?FDyzk?Ax!{TU98s_Nwa1qX%u(trHdcsagrC8FP+P zMTre+$}nx$?$3%IRfTxJX7U<4r1Bo3#0wt>gO`F1M`mVF7xX?1Cg9+)4CBsU6%T~3 z*u`sVd9{~sbaC*vGM-esmvuN?-p_}xObY3}k+hZK870jzf`gop$;C24Oyrtm`O55k zWtQRqAy*Q_+>MHY{{hV|D{J#d075L2iDlU)B1f5%Col&HnE*8PZu$j49_gTCX~yYc z(8%*{rBuo|B|f%^bu(6$lDIg#G!jWkuf@UA4OUk(#X5^0|28ksDG}P}vhhBOW8m}o zB&@T^LsM=h!j0a2VYeXK^N+~O(F`iwj5GB`2kTB%b9}0fwQv;YKl5ezhM-IPPuEaY fsrz>tmw?a$L2-PfsAksW7R1nM^re?e%z*5PNN literal 0 HcmV?d00001 diff --git a/source/changelog.md b/source/changelog.md index dbae451..e50746b 100644 --- a/source/changelog.md +++ b/source/changelog.md @@ -1,6 +1,13 @@ ChanSort Change Log =================== +2015-11-27 +- disable editing of predefined channel lists (based on LCN). + TVs can show erratic behavior when a predefined list is modified. + e.g. Samsung J built-in "Astra 19.2E" list, LG "Astra" or "Sky" lists, ... + (can be overridden in the Settings menu) +- new skin + 2015-11-26 - Samsung J series: file detection changed from channel_list_t\*.zip to \*.zip - Toshiba: file detection changed from \*.zip to Hotel\*.zip