mirror of
https://github.com/DarthAffe/KeyboardAudioVisualizer.git
synced 2025-12-13 07:38:44 +00:00
Persisted configuration
This commit is contained in:
parent
907bb027c7
commit
fdf78e34b8
@ -3,6 +3,7 @@ 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;
|
||||||
|
|
||||||
namespace KeyboardAudioVisualizer
|
namespace KeyboardAudioVisualizer
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
using System.Windows;
|
using System.Windows;
|
||||||
using KeyboardAudioVisualizer.AudioProcessing;
|
using KeyboardAudioVisualizer.AudioProcessing;
|
||||||
using KeyboardAudioVisualizer.Brushes;
|
using KeyboardAudioVisualizer.Brushes;
|
||||||
|
using KeyboardAudioVisualizer.Configuration;
|
||||||
using KeyboardAudioVisualizer.Helper;
|
using KeyboardAudioVisualizer.Helper;
|
||||||
using KeyboardAudioVisualizer.UI;
|
using KeyboardAudioVisualizer.UI;
|
||||||
using RGB.NET.Brushes;
|
using RGB.NET.Brushes;
|
||||||
|
|||||||
@ -58,16 +58,20 @@ namespace KeyboardAudioVisualizer.AudioProcessing
|
|||||||
_spectrumProvider = new FourierSpectrumProvider(_audioBuffer);
|
_spectrumProvider = new FourierSpectrumProvider(_audioBuffer);
|
||||||
_spectrumProvider.Initialize();
|
_spectrumProvider.Initialize();
|
||||||
|
|
||||||
//TODO DarthAffe 03.08.2017: Initialize correctly; Settings
|
//TODO DarthAffe 13.08.2017: Refactore Settings-stuff to work with multiple providers
|
||||||
MultiBandEqualizer equalizer = new MultiBandEqualizer { IsEnabled = false };
|
|
||||||
PrimaryVisualizationProvider = new FrequencyBarsVisualizationProvider(new FrequencyBarsVisualizationProviderConfiguration(), _spectrumProvider) { Equalizer = equalizer };
|
MultiBandEqualizer equalizer = new MultiBandEqualizer();
|
||||||
|
ApplicationManager.Instance.Settings.EqualizerConfiguration.LoadInto(equalizer);
|
||||||
|
equalizer.PropertyChanged += (sender, args) => ApplicationManager.Instance.Settings.EqualizerConfiguration.SaveFrom(equalizer);
|
||||||
|
|
||||||
|
PrimaryVisualizationProvider = new FrequencyBarsVisualizationProvider(ApplicationManager.Instance.Settings.FrequencyBarsVisualizationProviderConfiguration, _spectrumProvider) { Equalizer = equalizer };
|
||||||
//PrimaryVisualizationProvider = new BeatVisualizationProvider(new BeatVisualizationProviderConfiguration(), _spectrumProvider);
|
//PrimaryVisualizationProvider = new BeatVisualizationProvider(new BeatVisualizationProviderConfiguration(), _spectrumProvider);
|
||||||
PrimaryVisualizationProvider.Initialize();
|
PrimaryVisualizationProvider.Initialize();
|
||||||
|
|
||||||
SecondaryVisualizationProvider = new BeatVisualizationProvider(new BeatVisualizationProviderConfiguration(), _spectrumProvider);
|
SecondaryVisualizationProvider = new BeatVisualizationProvider(ApplicationManager.Instance.Settings.BeatVisualizationProviderConfiguration, _spectrumProvider);
|
||||||
SecondaryVisualizationProvider.Initialize();
|
SecondaryVisualizationProvider.Initialize();
|
||||||
|
|
||||||
TertiaryVisualizationProvider = new LevelVisualizationProvider(new LevelVisualizationProviderConfiguration(), _audioBuffer);
|
TertiaryVisualizationProvider = new LevelVisualizationProvider(ApplicationManager.Instance.Settings.LevelVisualizationProviderConfiguration, _audioBuffer);
|
||||||
TertiaryVisualizationProvider.Initialize();
|
TertiaryVisualizationProvider.Initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -25,12 +25,14 @@ namespace KeyboardAudioVisualizer.AudioProcessing.Equalizer
|
|||||||
set => SetProperty(ref _value, float.IsNaN(value) ? 0 : MathHelper.Clamp(value, -1, 1));
|
set => SetProperty(ref _value, float.IsNaN(value) ? 0 : MathHelper.Clamp(value, -1, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsFixedOffset { get; }
|
public bool IsFixedOffset { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Constructors
|
#region Constructors
|
||||||
|
|
||||||
|
public EqualizerBand() : this(0) { }
|
||||||
|
|
||||||
public EqualizerBand(float offset, float value = 0, bool fixedOffset = false)
|
public EqualizerBand(float offset, float value = 0, bool fixedOffset = false)
|
||||||
{
|
{
|
||||||
this.Offset = offset;
|
this.Offset = offset;
|
||||||
|
|||||||
@ -0,0 +1,48 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using KeyboardAudioVisualizer.AudioProcessing.Equalizer;
|
||||||
|
|
||||||
|
namespace KeyboardAudioVisualizer.Configuration
|
||||||
|
{
|
||||||
|
public class EqualizerConfiguration : AbstractConfiguration
|
||||||
|
{
|
||||||
|
#region Properties & Fields
|
||||||
|
|
||||||
|
public bool IsEnabled { get; set; } = false;
|
||||||
|
|
||||||
|
public List<EqualizerBand> Bands { get; set; } = new List<EqualizerBand>();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Methods
|
||||||
|
|
||||||
|
public void LoadInto(IEqualizer equalizer)
|
||||||
|
{
|
||||||
|
equalizer.IsEnabled = IsEnabled;
|
||||||
|
|
||||||
|
foreach (EqualizerBand band in Bands)
|
||||||
|
{
|
||||||
|
if (band.IsFixedOffset)
|
||||||
|
{
|
||||||
|
EqualizerBand bandToUpdate = equalizer.Bands.FirstOrDefault(b => b.IsFixedOffset && (Math.Abs(b.Offset - band.Offset) < 0.01));
|
||||||
|
if (bandToUpdate != null)
|
||||||
|
bandToUpdate.Value = band.Value;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
equalizer.AddBand(band.Offset, band.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SaveFrom(IEqualizer equalizer)
|
||||||
|
{
|
||||||
|
IsEnabled = equalizer.IsEnabled;
|
||||||
|
|
||||||
|
Bands.Clear();
|
||||||
|
foreach (EqualizerBand band in equalizer.Bands)
|
||||||
|
Bands.Add(new EqualizerBand(band.Offset, band.Value, band.IsFixedOffset));
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
25
KeyboardAudioVisualizer/Configuration/Settings.cs
Normal file
25
KeyboardAudioVisualizer/Configuration/Settings.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
using KeyboardAudioVisualizer.AudioProcessing.VisualizationProvider;
|
||||||
|
|
||||||
|
namespace KeyboardAudioVisualizer.Configuration
|
||||||
|
{
|
||||||
|
public class Settings
|
||||||
|
{
|
||||||
|
#region General
|
||||||
|
|
||||||
|
public double UpdateRate { get; set; } = 40.0;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region AudioProcessing
|
||||||
|
|
||||||
|
public EqualizerConfiguration EqualizerConfiguration { get; set; } = new EqualizerConfiguration();
|
||||||
|
|
||||||
|
public FrequencyBarsVisualizationProviderConfiguration FrequencyBarsVisualizationProviderConfiguration { get; set; } = new FrequencyBarsVisualizationProviderConfiguration();
|
||||||
|
|
||||||
|
public LevelVisualizationProviderConfiguration LevelVisualizationProviderConfiguration { get; set; } = new LevelVisualizationProviderConfiguration();
|
||||||
|
|
||||||
|
public BeatVisualizationProviderConfiguration BeatVisualizationProviderConfiguration { get; set; } = new BeatVisualizationProviderConfiguration();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -127,6 +127,7 @@
|
|||||||
<Compile Include="Brushes\FrequencyBarsBrush.cs" />
|
<Compile Include="Brushes\FrequencyBarsBrush.cs" />
|
||||||
<Compile Include="Brushes\LevelBarBrush.cs" />
|
<Compile Include="Brushes\LevelBarBrush.cs" />
|
||||||
<Compile Include="Configuration\AbstractConfiguration.cs" />
|
<Compile Include="Configuration\AbstractConfiguration.cs" />
|
||||||
|
<Compile Include="Configuration\EqualizerConfiguration.cs" />
|
||||||
<Compile Include="Configuration\IConfiguration.cs" />
|
<Compile Include="Configuration\IConfiguration.cs" />
|
||||||
<Compile Include="Controls\Formular.cs" />
|
<Compile Include="Controls\Formular.cs" />
|
||||||
<Compile Include="Controls\ImageButton.cs" />
|
<Compile Include="Controls\ImageButton.cs" />
|
||||||
@ -140,7 +141,7 @@
|
|||||||
<Compile Include="Helper\FrequencyHelper.cs" />
|
<Compile Include="Helper\FrequencyHelper.cs" />
|
||||||
<Compile Include="Helper\MathHelper.cs" />
|
<Compile Include="Helper\MathHelper.cs" />
|
||||||
<Compile Include="Helper\WPFHelper.cs" />
|
<Compile Include="Helper\WPFHelper.cs" />
|
||||||
<Compile Include="Settings.cs" />
|
<Compile Include="Configuration\Settings.cs" />
|
||||||
<Compile Include="Controls\BlurredDecorationWindow.cs" />
|
<Compile Include="Controls\BlurredDecorationWindow.cs" />
|
||||||
<Compile Include="Styles\CachedResourceDictionary.cs" />
|
<Compile Include="Styles\CachedResourceDictionary.cs" />
|
||||||
<Compile Include="UI\ConfigurationWindow.xaml.cs">
|
<Compile Include="UI\ConfigurationWindow.xaml.cs">
|
||||||
|
|||||||
@ -1,6 +0,0 @@
|
|||||||
namespace KeyboardAudioVisualizer
|
|
||||||
{
|
|
||||||
public class Settings
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
x
Reference in New Issue
Block a user