Added migration for old configs

This commit is contained in:
Darth Affe 2017-09-29 10:17:31 +02:00
parent 9d4aa2728c
commit 07e4221877
4 changed files with 66 additions and 2 deletions

View File

@ -1,12 +1,12 @@
using System; using System;
using System.Diagnostics;
using System.IO; using System.IO;
using System.Windows; using System.Windows;
using Hardcodet.Wpf.TaskbarNotification; using Hardcodet.Wpf.TaskbarNotification;
using KeyboardAudioVisualizer.AudioProcessing; using KeyboardAudioVisualizer.AudioProcessing;
using KeyboardAudioVisualizer.Configuration;
using KeyboardAudioVisualizer.Helper; using KeyboardAudioVisualizer.Helper;
using KeyboardAudioVisualizer.Legacy;
using Newtonsoft.Json; using Newtonsoft.Json;
using Settings = KeyboardAudioVisualizer.Configuration.Settings;
namespace KeyboardAudioVisualizer namespace KeyboardAudioVisualizer
{ {
@ -43,6 +43,10 @@ namespace KeyboardAudioVisualizer
Console.WriteLine(ex.Message); Console.WriteLine(ex.Message);
/* File doesn't exist or is corrupt - just create a new one. */ /* File doesn't exist or is corrupt - just create a new one. */
} }
if (settings == null)
settings = ConfigurationMigrator.MigrateOldConfig();
if (settings == null) if (settings == null)
{ {
settings = new Settings(); settings = new Settings();
@ -68,6 +72,7 @@ namespace KeyboardAudioVisualizer
base.OnExit(e); base.OnExit(e);
File.WriteAllText(PATH_SETTINGS, JsonConvert.SerializeObject(ApplicationManager.Instance.Settings)); File.WriteAllText(PATH_SETTINGS, JsonConvert.SerializeObject(ApplicationManager.Instance.Settings));
ConfigurationMigrator.CleanupOldConfigs();
} }
#endregion #endregion

View File

@ -1,6 +1,7 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Xml.Serialization;
using RGB.NET.Core; using RGB.NET.Core;
namespace KeyboardAudioVisualizer.Configuration namespace KeyboardAudioVisualizer.Configuration
@ -10,6 +11,7 @@ namespace KeyboardAudioVisualizer.Configuration
#region Properties & Fields #region Properties & Fields
private IBrush _brush; private IBrush _brush;
[XmlIgnore]
public IBrush Brush public IBrush Brush
{ {
get => _brush; get => _brush;

View File

@ -164,6 +164,7 @@
<Compile Include="Helper\WPFHelper.cs" /> <Compile Include="Helper\WPFHelper.cs" />
<Compile Include="Configuration\Settings.cs" /> <Compile Include="Configuration\Settings.cs" />
<Compile Include="Controls\BlurredDecorationWindow.cs" /> <Compile Include="Controls\BlurredDecorationWindow.cs" />
<Compile Include="Legacy\ConfigurationMigrator.cs" />
<Compile Include="Legacy\Settings.cs" /> <Compile Include="Legacy\Settings.cs" />
<Compile Include="Styles\CachedResourceDictionary.cs" /> <Compile Include="Styles\CachedResourceDictionary.cs" />
<Compile Include="UI\ConfigurationWindow.xaml.cs"> <Compile Include="UI\ConfigurationWindow.xaml.cs">

View File

@ -0,0 +1,56 @@
using System.IO;
using KeyboardAudioVisualizer.AudioProcessing.VisualizationProvider;
using KeyboardAudioVisualizer.Helper;
namespace KeyboardAudioVisualizer.Legacy
{
public static class ConfigurationMigrator
{
#region Constants
private const string PATH_V1_SETTINGS = "Settings.xml";
#endregion
#region Constructors
#endregion
#region Methods
public static Configuration.Settings MigrateOldConfig()
{
if (!File.Exists(PATH_V1_SETTINGS)) return null;
try
{
Settings oldSettings = SerializationHelper.LoadObjectFromFile<Settings>(PATH_V1_SETTINGS);
Configuration.Settings settings = new Configuration.Settings { UpdateRate = oldSettings.UpdateRate };
settings[VisualizationIndex.Primary].SelectedVisualization = VisualizationType.FrequencyBars;
settings[VisualizationIndex.Primary].FrequencyBarsConfiguration = oldSettings.FrequencyBarsVisualizationProviderConfiguration;
settings[VisualizationIndex.Primary].EqualizerConfiguration = oldSettings.EqualizerConfiguration;
settings[VisualizationIndex.Secondary].SelectedVisualization = VisualizationType.Beat;
settings[VisualizationIndex.Secondary].BeatConfiguration = oldSettings.BeatVisualizationProviderConfiguration;
settings[VisualizationIndex.Tertiary].SelectedVisualization = VisualizationType.Level;
settings[VisualizationIndex.Tertiary].LevelConfiguration = oldSettings.LevelVisualizationProviderConfiguration;
return settings;
}
catch
{
return null;
}
}
public static void CleanupOldConfigs()
{
if (File.Exists(PATH_V1_SETTINGS))
File.Delete(PATH_V1_SETTINGS);
}
#endregion
}
}