- using custom %LOCALAPPDATA%\ChanSort\chansort.xml config file instead of standard .NET Settings with user.config

- .sdx files supported by the "SilvaSchneider" loader are also used by ITT, Medion, Nabo, ok., PEAQ, Schaub Lorenz and, Telefunken
- fixed Sony DVB-T channel lists
- fixed using wrong loader, when a file type was selected in the OpenFileDialog
This commit is contained in:
hbeham
2019-07-20 14:54:01 +02:00
parent 1e26ef9cd4
commit 6786dc5615
13 changed files with 141 additions and 771 deletions

View File

@@ -11,7 +11,8 @@ About ChanSort
--------------
ChanSort is a Windows application that allows you to reorder your TV's channel list.
Most modern TVs can transfer channel lists via USB stick, which you can plug into your PC.
ChanSort supports various file formats from **Sony** (new), **Silva-Schneider** (new), Hisense, Samsung, LG, Panasonic, Toshiba and the Linux VDR project.
ChanSort supports various file formats from **Sony** (new), **ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken** (new),
Hisense, Samsung, LG, Panasonic, Toshiba and the Linux VDR project.
![screenshot](http://beham.biz/chansort/ChanSort-en.png)
@@ -92,8 +93,8 @@ Android-TVs "sdb.xml" files using formats "FormateVer" 1.1.0 and "FormatVer" 1.0
Models that export a .zip file containing chmgt.db, dvbSysData.db and dvbMainData.db files.
(e.g. RL, SL, TL, UL, VL, WL, XL, YL models of series 8xx/9xx)
**Silva-Schneider**
.sdx files (currently only satellite lists are supported)
**ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken**
These brands use .sdx files (currently only satellite lists are supported)
**VDR (Linux Video Disk Recorder)**
Supports the channels.conf file format.

View File

@@ -11,7 +11,8 @@ Links
--------------
ChanSort ist eine Windows-Anwendung, die das Sortieren von Fernsehsenderlisten erlaubt.
Die meisten modernen Fernseher k<>nnen Senderlisten auf einen USB-Stick <20>bertragen, den man danach am PC anschlie<69>t.
ChanSort unterst<73>tzt diverse Dateiformate von **Sony** (NEU), **Silva-Schneider** (NEU), Hisense, LG, Panasonic, Samsung, Toshiba und das Linux VDR Projekt.
ChanSort unterst<73>tzt diverse Dateiformate von **Sony** (new), **ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken** (new),
Hisense, Samsung, LG, Panasonic, Toshiba und dem Linux VDR Projekt.
![screenshot](http://beham.biz/chansort/ChanSort-de.png)
@@ -83,8 +84,8 @@ Viera-Modelle mit svl.bin oder svl.db Dateien (die meisten Modelle seit 2011)
**Sony**
Android-TV "sdb.xml" Dateien mit Versionen "FormateVer" 1.1.0 and "FormatVer" 1.0.0, 1.1.0 and 1.2.0
**Silva-Schneider**
.sdx Dateien (derzeit wird nur Satellitenempfang unterst<73>tzt)
**ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken**
Die Marken nutzen .sdx Dateien (derzeit wird nur Satellitenempfang unterst<73>tzt)
**Toshiba**
Modelle, die eine .zip-Datei mit folgendem Inhalt: chmgt.db, dvbSysData.db und dvbMainData.db.

View File

@@ -5,7 +5,7 @@ namespace ChanSort.Loader.SilvaSchneider
public class SerializerPlugin : ISerializerPlugin
{
public string DllName { get; set; }
public string PluginName { get { return "Silva Schneider"; } }
public string PluginName { get { return "ITT/Medion/Nabo/ok./Peaq/Schaub-Lorenz/Silva-Schneider/Telefunken"; } }
public string FileFilter { get { return "*.sdx"; } }
public SerializerBase CreateSerializer(string inputFile)

View File

@@ -212,8 +212,10 @@ namespace ChanSort.Loader.Sony
var transp = new Transponder(int.Parse(muxIds[i]) + idAdjustment);
if (isEFormat)
{
transp.FrequencyInMhz = int.Parse(muxData["SysFreq"][i]);
transp.SymbolRate = int.Parse(muxData["ui4_sym_rate"][i]);
var freq = muxData.ContainsKey("ui4_freq") ? muxData["ui4_freq"] : muxData["SysFreq"];
transp.FrequencyInMhz = int.Parse(freq[i]);
if (muxData.ContainsKey("ui4_sym_rate"))
transp.SymbolRate = int.Parse(muxData["ui4_sym_rate"][i]);
if (Char.ToLowerInvariant(dvbSystem[dvbSystem.Length - 1]) == 's') // "DvbGs", "DvbPs", "DvbCis"
{
transp.Polarity = muxData["e_pol"][i] == "1" ? 'H' : 'V';
@@ -232,7 +234,8 @@ namespace ChanSort.Loader.Sony
transp.TransportStreamId = this.ParseInt(muxData["Tsid"][i]);
transp.FrequencyInMhz = int.Parse(rfParmData["Freq"][i]) / 1000;
transp.Polarity = polarity == null ? ' ' : polarity[i] == "H_L" ? 'H' : 'V';
transp.SymbolRate = int.Parse(dvbsData["SymbolRate"][i]) / 1000;
if (dvbsData.ContainsKey("SymbolRate"))
transp.SymbolRate = int.Parse(dvbsData["SymbolRate"][i]) / 1000;
}
this.DataRoot.AddTransponder(sat, transp);

View File

@@ -6,7 +6,7 @@ namespace ChanSort.Loader.Sony
{
public string DllName { get; set; }
public string PluginName => "Sony sdb.xml";
public string FileFilter => "sdb*.xml";
public string FileFilter => "*.xml";
public SerializerBase CreateSerializer(string inputFile)
{

View File

@@ -102,6 +102,7 @@
<Reference Include="DevExpress.XtraReports.v19.1.Extensions, Version=19.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Data.Linq" />
<Reference Include="System.Deployment" />
@@ -157,6 +158,7 @@
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
</Compile>
<Compile Include="Properties\Config.cs" />
<Compile Include="ReferenceListForm.cs">
<SubType>Form</SubType>
</Compile>

View File

@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Drawing;
using System.Globalization;
using System.IO;
@@ -55,8 +56,8 @@ namespace ChanSort.Ui
public MainForm()
{
if (!string.IsNullOrEmpty(Settings.Default.Language))
Thread.CurrentThread.CurrentUICulture = new CultureInfo(Settings.Default.Language);
if (!string.IsNullOrEmpty(Config.Default.Language))
Thread.CurrentThread.CurrentUICulture = new CultureInfo(Config.Default.Language);
this.LookAndFeel.SetSkinStyle("Office 2010 Blue");
InitializeComponent();
@@ -69,8 +70,8 @@ namespace ChanSort.Ui
foreach (GridColumn col in this.gviewRight.Columns)
col.Tag = col.Visible;
if (!Settings.Default.WindowSize.IsEmpty)
this.Size = Settings.Default.WindowSize;
if (!Config.Default.WindowSize.IsEmpty)
this.Size = Config.Default.WindowSize;
this.title = string.Format(base.Text, AppVersion);
base.Text = title;
this.Plugins = this.LoadSerializerPlugins();
@@ -152,7 +153,7 @@ namespace ChanSort.Ui
}
}
if (Settings.Default.CheckForUpdates)
if (Config.Default.CheckForUpdates)
this.BeginInvoke((Action) UpdateCheck.CheckForNewVersion);
}
@@ -185,6 +186,7 @@ namespace ChanSort.Ui
HandleException(new IOException("Plugin " + file + "\n" + ex.Message, ex));
}
}
list.Sort((a, b) => a.PluginName.CompareTo(b.PluginName));
return list;
}
@@ -223,13 +225,11 @@ namespace ChanSort.Ui
numberOfFilters = 0;
var filter = new StringBuilder();
var extension = new StringBuilder();
var sortedPlugins = this.Plugins.ToList();
sortedPlugins.Sort((a, b) => a.PluginName.CompareTo(b.PluginName));
foreach (var plugin in sortedPlugins)
foreach (var plugin in this.Plugins)
{
filter.Append(plugin.PluginName).Append("|").Append(plugin.FileFilter);
filter.Append("|");
if (!(";" + extension + ";").Contains(plugin.FileFilter))
if (!(";" + extension + ";").Contains(";" + plugin.FileFilter + ";"))
{
extension.Append(plugin.FileFilter);
extension.Append(";");
@@ -1243,31 +1243,26 @@ namespace ChanSort.Ui
private void LoadSettings()
{
// note: WindowSize must be restored in ctor in order to make WindowStartPosition.CenterScreen work
if (!string.IsNullOrEmpty(Settings.Default.Encoding))
this.defaultEncoding = Encoding.GetEncoding(Settings.Default.Encoding);
if (!string.IsNullOrEmpty(Config.Default.Encoding))
this.defaultEncoding = Encoding.GetEncoding(Config.Default.Encoding);
var width = Settings.Default.LeftPanelWidth;
var width = Config.Default.LeftPanelWidth;
if (width > 0)
this.splitContainerControl1.SplitterPosition = width;
this.SelectLanguageMenuItem();
//this.SetGridLayout(this.gviewLeft, Settings.Default.OutputListLayout);
//this.SetGridLayout(this.gviewLeft, Config.Default.OutputListLayout);
this.miShowWarningsAfterLoad.Checked = Settings.Default.ShowWarningsAfterLoading;
this.cbCloseGap.Checked = Settings.Default.CloseGaps;
this.miShowWarningsAfterLoad.Checked = Config.Default.ShowWarningsAfterLoading;
this.cbCloseGap.Checked = Config.Default.CloseGaps;
this.ClearLeftFilter();
this.ClearRightFilter();
for (var i = MaxMruEntries - 1; i >= 0; i--)
{
var prop = Settings.Default.GetType().GetProperty("MruFile" + i);
if (prop != null)
this.AddFileToMruList((string) prop.GetValue(Settings.Default, null));
}
foreach(var path in Config.Default.MruFiles)
this.AddFileToMruList(path);
this.UpdateMruMenu();
this.miExplorerIntegration.Down = Settings.Default.ExplorerIntegration;
this.miCheckUpdates.Down = Settings.Default.CheckForUpdates;
this.miExplorerIntegration.Down = Config.Default.ExplorerIntegration;
this.miCheckUpdates.Down = Config.Default.CheckForUpdates;
}
#endregion
@@ -1279,7 +1274,7 @@ namespace ChanSort.Ui
this.barManager1.ForceLinkCreate();
foreach (BarItemLink itemLink in this.barSubItem1.ItemLinks)
{
if (Settings.Default.Language.StartsWith((string) itemLink.Item.Tag))
if (Config.Default.Language.StartsWith((string) itemLink.Item.Tag))
{
this.ignoreLanguageChange = true;
((BarButtonItem) itemLink.Item).Down = true;
@@ -1409,11 +1404,11 @@ namespace ChanSort.Ui
string newLayout;
var newSource = list.SignalSource;
if ((newSource & SignalSource.Analog) != 0)
newLayout = Settings.Default.InputGridLayoutAnalog;
newLayout = Config.Default.InputGridLayoutAnalog;
else if ((newSource & SignalSource.DvbS) != 0)
newLayout = Settings.Default.InputGridLayoutDvbS;
newLayout = Config.Default.InputGridLayoutDvbS;
else
newLayout = Settings.Default.InputGridLayoutDvbCT;
newLayout = Config.Default.InputGridLayoutDvbCT;
if (!string.IsNullOrEmpty(newLayout))
this.SetGridLayout(this.gviewRight, newLayout);
#endif
@@ -1441,11 +1436,11 @@ namespace ChanSort.Ui
{
var currentLayout = GetGridLayout(this.gviewRight);
if ((signalSource & SignalSource.Analog) != 0)
Settings.Default.InputGridLayoutAnalog = currentLayout;
Config.Default.InputGridLayoutAnalog = currentLayout;
else if ((signalSource & SignalSource.DvbS) != 0)
Settings.Default.InputGridLayoutDvbS = currentLayout;
Config.Default.InputGridLayoutDvbS = currentLayout;
else //if ((signalSource & SignalSource.DvbCT) != 0)
Settings.Default.InputGridLayoutDvbCT = currentLayout;
Config.Default.InputGridLayoutDvbCT = currentLayout;
}
#endregion
@@ -2597,21 +2592,21 @@ namespace ChanSort.Ui
this.gviewRight.PostEditor();
this.gviewLeft.PostEditor();
Settings.Default.WindowSize = this.WindowState == FormWindowState.Normal ? this.Size : this.RestoreBounds.Size;
Settings.Default.Encoding = this.defaultEncoding.WebName;
Settings.Default.Language = Thread.CurrentThread.CurrentUICulture.Name;
Settings.Default.LeftPanelWidth = this.splitContainerControl1.SplitterPosition;
Settings.Default.OutputListLayout = GetGridLayout(this.gviewLeft);
Config.Default.WindowSize = this.WindowState == FormWindowState.Normal ? this.Size : this.RestoreBounds.Size;
Config.Default.Encoding = this.defaultEncoding.WebName;
Config.Default.Language = Thread.CurrentThread.CurrentUICulture.Name;
Config.Default.LeftPanelWidth = this.splitContainerControl1.SplitterPosition;
Config.Default.OutputListLayout = GetGridLayout(this.gviewLeft);
if (this.CurrentChannelList != null)
SaveInputGridLayout(this.CurrentChannelList.SignalSource);
Settings.Default.ShowWarningsAfterLoading = this.miShowWarningsAfterLoad.Checked;
Settings.Default.CloseGaps = this.cbCloseGap.Checked;
for (var i = 0; i < this.mruFiles.Count; i++)
Settings.Default.GetType().GetProperty("MruFile" + i).SetValue(Settings.Default, this.mruFiles[i], null);
Settings.Default.ExplorerIntegration = this.miExplorerIntegration.Down;
Settings.Default.CheckForUpdates = this.miCheckUpdates.Down;
Config.Default.ShowWarningsAfterLoading = this.miShowWarningsAfterLoad.Checked;
Config.Default.CloseGaps = this.cbCloseGap.Checked;
Config.Default.MruFiles.Clear();
Config.Default.MruFiles.AddRange(this.mruFiles);
Config.Default.ExplorerIntegration = this.miExplorerIntegration.Down;
Config.Default.CheckForUpdates = this.miCheckUpdates.Down;
Settings.Default.Save();
Config.Default.Save();
}
private string GetGridLayout(GridView grid)
@@ -2954,7 +2949,7 @@ namespace ChanSort.Ui
{
try
{
if (this.miExplorerIntegration.Down == Settings.Default.ExplorerIntegration)
if (this.miExplorerIntegration.Down == Config.Default.ExplorerIntegration)
return;
// get all file extensions from loader plugins
@@ -2989,7 +2984,7 @@ namespace ChanSort.Ui
{
try
{
if (this.miCheckUpdates.Down == Settings.Default.CheckForUpdates)
if (this.miCheckUpdates.Down == Config.Default.CheckForUpdates)
return;
if (this.miCheckUpdates.Down)

View File

@@ -1,6 +1,7 @@
using System;
using System.Drawing;
using ChanSort.Api;
using ChanSort.Ui.Properties;
using DevExpress.LookAndFeel;
using DevExpress.XtraEditors;
using DevExpress.XtraReports.UI;
@@ -17,18 +18,18 @@ namespace ChanSort.Ui.Printing
InitializeComponent();
this.channelList = channelList;
this.subListIndex = subListIndex;
if (Properties.Settings.Default.PrintSortByName)
if (Config.Default.PrintSortByName)
this.rbSortByName.Checked = true;
this.fontEdit1.EditValue = Properties.Settings.Default.PrintFontName;
this.spinFontSize.Value = Properties.Settings.Default.PrintFontSize;
this.fontEdit1.EditValue = Config.Default.PrintFontName;
this.spinFontSize.Value = Config.Default.PrintFontSize;
}
private void btnPreview_Click(object sender, EventArgs e)
{
Properties.Settings.Default.PrintFontName = (string)this.fontEdit1.EditValue;
Properties.Settings.Default.PrintFontSize = this.spinFontSize.Value;
Properties.Settings.Default.PrintSortByName = this.rbSortByNumber.Checked;
Properties.Settings.Default.Save();
Config.Default.PrintFontName = (string)this.fontEdit1.EditValue;
Config.Default.PrintFontSize = this.spinFontSize.Value;
Config.Default.PrintSortByName = this.rbSortByNumber.Checked;
Config.Default.Save();
using (var font = new Font(this.fontEdit1.Text, (float)this.spinFontSize.Value))
using (var report = new ChannelListReport(this.channelList, this.subListIndex, this.rbSortByName.Checked, font))

View File

@@ -0,0 +1,67 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Xml.Serialization;
namespace ChanSort.Ui.Properties
{
public class Config
{
private static readonly XmlSerializer Serializer;
private static readonly string ConfigFilePath;
#region static ctor()
static Config()
{
Serializer = new XmlSerializer(typeof(Config));
try
{
ConfigFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "ChanSort", "config.xml");
if (File.Exists(ConfigFilePath))
{
using (var stream = new StreamReader(ConfigFilePath, System.Text.Encoding.UTF8))
Default = (Config)Serializer.Deserialize(stream);
return;
}
}
catch
{
// ignore
}
Default = new Config();
}
#endregion
public static Config Default { get; set; }
public string OutputListLayout { get; set; } = "";
public string Language { get; set; } = "";
public string Encoding { get; set; } = "";
public Size WindowSize { get; set; } = new Size(0,0);
public string InputGridLayoutAnalog { get; set; } = "";
public string InputGridLayoutDvbCT { get; set; } = "";
public string InputGridLayoutDvbS { get; set; } = "";
public int LeftPanelWidth { get; set; } = 0;
public bool ShowWarningsAfterLoading { get; set; } = false;
public bool CloseGaps { get; set; } = true;
[XmlArray("MruFiles")]
public List<string> MruFiles { get; set; } = new List<string>();
public string PrintFontName { get; set; } = "Tahoma";
public decimal PrintFontSize { get; set; } = 12;
public bool PrintSortByName { get; set; } = false;
public bool ExplorerIntegration { get; set; } = false;
public bool CheckForUpdates { get; set; } = true;
public void Save()
{
using (var stream = new FileStream(ConfigFilePath, FileMode.Create))
using (var writer = new StreamWriter(stream, System.Text.Encoding.UTF8))
{
Serializer.Serialize(writer, this);
}
}
}
}

View File

@@ -22,473 +22,5 @@ namespace ChanSort.Ui.Properties {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int InputListRowHandle {
get {
return ((int)(this["InputListRowHandle"]));
}
set {
this["InputListRowHandle"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int OutputListRowHandle {
get {
return ((int)(this["OutputListRowHandle"]));
}
set {
this["OutputListRowHandle"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string OutputListLayout {
get {
return ((string)(this["OutputListLayout"]));
}
set {
this["OutputListLayout"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string InputFilterName {
get {
return ((string)(this["InputFilterName"]));
}
set {
this["InputFilterName"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string InputFilterOldSlot {
get {
return ((string)(this["InputFilterOldSlot"]));
}
set {
this["InputFilterOldSlot"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string InputFilterCrypt {
get {
return ((string)(this["InputFilterCrypt"]));
}
set {
this["InputFilterCrypt"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string InputFilterNewSlot {
get {
return ((string)(this["InputFilterNewSlot"]));
}
set {
this["InputFilterNewSlot"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string InputFilterChannel {
get {
return ((string)(this["InputFilterChannel"]));
}
set {
this["InputFilterChannel"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string InputFilterUid {
get {
return ((string)(this["InputFilterUid"]));
}
set {
this["InputFilterUid"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string OutputFilterName {
get {
return ((string)(this["OutputFilterName"]));
}
set {
this["OutputFilterName"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string Language {
get {
return ((string)(this["Language"]));
}
set {
this["Language"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string OutputFilterNewSlot {
get {
return ((string)(this["OutputFilterNewSlot"]));
}
set {
this["OutputFilterNewSlot"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string Encoding {
get {
return ((string)(this["Encoding"]));
}
set {
this["Encoding"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool HideLeftList {
get {
return ((bool)(this["HideLeftList"]));
}
set {
this["HideLeftList"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
public global::System.Drawing.Size WindowSize {
get {
return ((global::System.Drawing.Size)(this["WindowSize"]));
}
set {
this["WindowSize"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string InputGridLayoutAnalog {
get {
return ((string)(this["InputGridLayoutAnalog"]));
}
set {
this["InputGridLayoutAnalog"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string InputGridLayoutDvbCT {
get {
return ((string)(this["InputGridLayoutDvbCT"]));
}
set {
this["InputGridLayoutDvbCT"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string InputGridLayoutDvbS {
get {
return ((string)(this["InputGridLayoutDvbS"]));
}
set {
this["InputGridLayoutDvbS"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int LeftPanelWidth {
get {
return ((int)(this["LeftPanelWidth"]));
}
set {
this["LeftPanelWidth"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool ShowWarningsAfterLoading {
get {
return ((bool)(this["ShowWarningsAfterLoading"]));
}
set {
this["ShowWarningsAfterLoading"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool EraseDuplicateChannels {
get {
return ((bool)(this["EraseDuplicateChannels"]));
}
set {
this["EraseDuplicateChannels"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool AutoLoadRefList {
get {
return ((bool)(this["AutoLoadRefList"]));
}
set {
this["AutoLoadRefList"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool AutoAppendUnsortedChannels {
get {
return ((bool)(this["AutoAppendUnsortedChannels"]));
}
set {
this["AutoAppendUnsortedChannels"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool CloseGaps {
get {
return ((bool)(this["CloseGaps"]));
}
set {
this["CloseGaps"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string MruFile0 {
get {
return ((string)(this["MruFile0"]));
}
set {
this["MruFile0"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string MruFile1 {
get {
return ((string)(this["MruFile1"]));
}
set {
this["MruFile1"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string MruFile2 {
get {
return ((string)(this["MruFile2"]));
}
set {
this["MruFile2"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string MruFile3 {
get {
return ((string)(this["MruFile3"]));
}
set {
this["MruFile3"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string MruFile4 {
get {
return ((string)(this["MruFile4"]));
}
set {
this["MruFile4"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string MruFile5 {
get {
return ((string)(this["MruFile5"]));
}
set {
this["MruFile5"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string MruFile6 {
get {
return ((string)(this["MruFile6"]));
}
set {
this["MruFile6"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string MruFile7 {
get {
return ((string)(this["MruFile7"]));
}
set {
this["MruFile7"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string MruFile8 {
get {
return ((string)(this["MruFile8"]));
}
set {
this["MruFile8"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string MruFile9 {
get {
return ((string)(this["MruFile9"]));
}
set {
this["MruFile9"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("Tahoma")]
public string PrintFontName {
get {
return ((string)(this["PrintFontName"]));
}
set {
this["PrintFontName"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("12")]
public decimal PrintFontSize {
get {
return ((decimal)(this["PrintFontSize"]));
}
set {
this["PrintFontSize"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool PrintSortByName {
get {
return ((bool)(this["PrintSortByName"]));
}
set {
this["PrintSortByName"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool ExplorerIntegration {
get {
return ((bool)(this["ExplorerIntegration"]));
}
set {
this["ExplorerIntegration"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool CheckForUpdates {
get {
return ((bool)(this["CheckForUpdates"]));
}
set {
this["CheckForUpdates"] = value;
}
}
}
}

View File

@@ -1,123 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="ChanSort.Ui.Properties" GeneratedClassName="Settings">
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles />
<Settings>
<Setting Name="InputListRowHandle" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="OutputListRowHandle" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="OutputListLayout" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="InputFilterName" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="InputFilterOldSlot" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="InputFilterCrypt" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="InputFilterNewSlot" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="InputFilterChannel" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="InputFilterUid" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="OutputFilterName" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="Language" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="OutputFilterNewSlot" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="Encoding" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="HideLeftList" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="WindowSize" Type="System.Drawing.Size" Scope="User">
<Value Profile="(Default)">0, 0</Value>
</Setting>
<Setting Name="InputGridLayoutAnalog" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="InputGridLayoutDvbCT" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="InputGridLayoutDvbS" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="LeftPanelWidth" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="ShowWarningsAfterLoading" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="EraseDuplicateChannels" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="AutoLoadRefList" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="AutoAppendUnsortedChannels" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="CloseGaps" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="MruFile0" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="MruFile1" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="MruFile2" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="MruFile3" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="MruFile4" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="MruFile5" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="MruFile6" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="MruFile7" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="MruFile8" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="MruFile9" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="PrintFontName" Type="System.String" Scope="User">
<Value Profile="(Default)">Tahoma</Value>
</Setting>
<Setting Name="PrintFontSize" Type="System.Decimal" Scope="User">
<Value Profile="(Default)">12</Value>
</Setting>
<Setting Name="PrintSortByName" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ExplorerIntegration" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="CheckForUpdates" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
<Settings />
</SettingsFile>

View File

@@ -2,130 +2,10 @@
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="ChanSort.Ui.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
<section name="GUI.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
</configSections>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup><userSettings>
<ChanSort.Ui.Properties.Settings>
<setting name="InputListRowHandle" serializeAs="String">
<value>0</value>
</setting>
<setting name="OutputListRowHandle" serializeAs="String">
<value>0</value>
</setting>
<setting name="OutputListLayout" serializeAs="String">
<value />
</setting>
<setting name="InputFilterName" serializeAs="String">
<value />
</setting>
<setting name="InputFilterOldSlot" serializeAs="String">
<value />
</setting>
<setting name="InputFilterCrypt" serializeAs="String">
<value />
</setting>
<setting name="InputFilterNewSlot" serializeAs="String">
<value />
</setting>
<setting name="InputFilterChannel" serializeAs="String">
<value />
</setting>
<setting name="InputFilterUid" serializeAs="String">
<value />
</setting>
<setting name="OutputFilterName" serializeAs="String">
<value />
</setting>
<setting name="Language" serializeAs="String">
<value />
</setting>
<setting name="OutputFilterNewSlot" serializeAs="String">
<value />
</setting>
<setting name="Encoding" serializeAs="String">
<value />
</setting>
<setting name="HideLeftList" serializeAs="String">
<value>False</value>
</setting>
<setting name="WindowSize" serializeAs="String">
<value>0, 0</value>
</setting>
<setting name="InputGridLayoutAnalog" serializeAs="String">
<value />
</setting>
<setting name="InputGridLayoutDvbCT" serializeAs="String">
<value />
</setting>
<setting name="InputGridLayoutDvbS" serializeAs="String">
<value />
</setting>
<setting name="LeftPanelWidth" serializeAs="String">
<value>0</value>
</setting>
<setting name="ShowWarningsAfterLoading" serializeAs="String">
<value>False</value>
</setting>
<setting name="EraseDuplicateChannels" serializeAs="String">
<value>True</value>
</setting>
<setting name="AutoLoadRefList" serializeAs="String">
<value>True</value>
</setting>
<setting name="AutoAppendUnsortedChannels" serializeAs="String">
<value>True</value>
</setting>
<setting name="CloseGaps" serializeAs="String">
<value>True</value>
</setting>
<setting name="MruFile0" serializeAs="String">
<value />
</setting>
<setting name="MruFile1" serializeAs="String">
<value />
</setting>
<setting name="MruFile2" serializeAs="String">
<value />
</setting>
<setting name="MruFile3" serializeAs="String">
<value />
</setting>
<setting name="MruFile4" serializeAs="String">
<value />
</setting>
<setting name="MruFile5" serializeAs="String">
<value />
</setting>
<setting name="MruFile6" serializeAs="String">
<value />
</setting>
<setting name="MruFile7" serializeAs="String">
<value />
</setting>
<setting name="MruFile8" serializeAs="String">
<value />
</setting>
<setting name="MruFile9" serializeAs="String">
<value />
</setting>
<setting name="PrintFontName" serializeAs="String">
<value>Tahoma</value>
</setting>
<setting name="PrintFontSize" serializeAs="String">
<value>12</value>
</setting>
<setting name="PrintSortByName" serializeAs="String">
<value>False</value>
</setting>
<setting name="ExplorerIntegration" serializeAs="String">
<value>False</value>
</setting>
<setting name="CheckForUpdates" serializeAs="String">
<value>True</value>
</setting>
</ChanSort.Ui.Properties.Settings>
<GUI.Properties.Settings>
<setting name="InputTLL" serializeAs="String">
<value/>

View File

@@ -1,6 +1,12 @@
ChanSort Change Log
===================
2019-07-20
- user settings are now persisted across releases in %LOCALAPPDATA%\ChanSort\config.xml
- fixed Sony sdb.xml DVB-T channel lists
- added support for ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz and Telefunken (same .sdx format as Silva-Schneider)
- fixed using wrong loader when the file type was manually selected in the "Open File" dialog
2019-07-18
- fixed support for Sony "FormateVer 1.1.0" DVB-C channel lists