From d4b5d186a421c595172d850b0e9a5e5f171c966e Mon Sep 17 00:00:00 2001 From: Darth Affe Date: Sun, 13 Aug 2017 12:30:42 +0200 Subject: [PATCH] Fixed visibility for disabled equalizers, added reset button --- .../AudioProcessing/AudioProcessor.cs | 2 +- .../AudioProcessing/Equalizer/IEqualizer.cs | 2 + .../Equalizer/MultiBandEqualizer.cs | 18 ++- .../Converter/BoolToVisibilityConverter.cs | 4 +- .../KeyboardAudioVisualizer.csproj | 4 + .../Resources/KeyboardAudioVisualizer.xaml | 2 + KeyboardAudioVisualizer/Styles/Button.xaml | 41 +++++ KeyboardAudioVisualizer/Styles/Theme.xaml | 7 + .../Visualization/EqualizerVisualization.xaml | 142 ++++++++---------- .../UI/Visualization/EqualizerVisualizer.cs | 13 ++ 10 files changed, 154 insertions(+), 81 deletions(-) create mode 100644 KeyboardAudioVisualizer/Styles/Button.xaml diff --git a/KeyboardAudioVisualizer/AudioProcessing/AudioProcessor.cs b/KeyboardAudioVisualizer/AudioProcessing/AudioProcessor.cs index d1e51f1..aa50b5d 100644 --- a/KeyboardAudioVisualizer/AudioProcessing/AudioProcessor.cs +++ b/KeyboardAudioVisualizer/AudioProcessing/AudioProcessor.cs @@ -59,7 +59,7 @@ namespace KeyboardAudioVisualizer.AudioProcessing _spectrumProvider.Initialize(); //TODO DarthAffe 03.08.2017: Initialize correctly; Settings - MultiBandEqualizer equalizer = new MultiBandEqualizer(); + MultiBandEqualizer equalizer = new MultiBandEqualizer { IsEnabled = false }; PrimaryVisualizationProvider = new FrequencyBarsVisualizationProvider(new FrequencyBarsVisualizationProviderConfiguration(), _spectrumProvider) { Equalizer = equalizer }; //PrimaryVisualizationProvider = new BeatVisualizationProvider(new BeatVisualizationProviderConfiguration(), _spectrumProvider); PrimaryVisualizationProvider.Initialize(); diff --git a/KeyboardAudioVisualizer/AudioProcessing/Equalizer/IEqualizer.cs b/KeyboardAudioVisualizer/AudioProcessing/Equalizer/IEqualizer.cs index 3c693ca..a5dd8b7 100644 --- a/KeyboardAudioVisualizer/AudioProcessing/Equalizer/IEqualizer.cs +++ b/KeyboardAudioVisualizer/AudioProcessing/Equalizer/IEqualizer.cs @@ -12,5 +12,7 @@ namespace KeyboardAudioVisualizer.AudioProcessing.Equalizer EqualizerBand AddBand(float offset, float modification); void RemoveBandBand(EqualizerBand band); + + void Reset(); } } diff --git a/KeyboardAudioVisualizer/AudioProcessing/Equalizer/MultiBandEqualizer.cs b/KeyboardAudioVisualizer/AudioProcessing/Equalizer/MultiBandEqualizer.cs index ca3aa21..56ef50a 100644 --- a/KeyboardAudioVisualizer/AudioProcessing/Equalizer/MultiBandEqualizer.cs +++ b/KeyboardAudioVisualizer/AudioProcessing/Equalizer/MultiBandEqualizer.cs @@ -14,7 +14,12 @@ namespace KeyboardAudioVisualizer.AudioProcessing.Equalizer private readonly Dictionary _values = new Dictionary(); - public bool IsEnabled { get; set; } = true; + private bool _isEnabled; + public bool IsEnabled + { + get => _isEnabled; + set => SetProperty(ref _isEnabled, value); + } #endregion @@ -22,8 +27,7 @@ namespace KeyboardAudioVisualizer.AudioProcessing.Equalizer public MultiBandEqualizer() { - AddBand(0, 0, true); - AddBand(1, 0, true); + Reset(); } #endregion @@ -51,6 +55,13 @@ namespace KeyboardAudioVisualizer.AudioProcessing.Equalizer InvalidateCache(); } + public void Reset() + { + Bands.Clear(); + AddBand(0, 0, true); + AddBand(1, 0, true); + } + public float[] CalculateValues(int count) { if (!_values.TryGetValue(count, out float[] values)) @@ -66,6 +77,7 @@ namespace KeyboardAudioVisualizer.AudioProcessing.Equalizer float[] values = new float[count]; List orderedBands = Bands.OrderBy(x => x.Offset).ToList(); + if (orderedBands.Count < 2) return values; for (int i = 0; i < count; i++) { diff --git a/KeyboardAudioVisualizer/Converter/BoolToVisibilityConverter.cs b/KeyboardAudioVisualizer/Converter/BoolToVisibilityConverter.cs index 50958ca..42aafb2 100644 --- a/KeyboardAudioVisualizer/Converter/BoolToVisibilityConverter.cs +++ b/KeyboardAudioVisualizer/Converter/BoolToVisibilityConverter.cs @@ -10,7 +10,9 @@ namespace KeyboardAudioVisualizer.Converter { #region Methods - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) => (value as bool?) == true ? Visibility.Visible : Visibility.Collapsed; + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + => (value as bool?) == true ? Visibility.Visible + : (string.Equals(parameter?.ToString(), "true", StringComparison.OrdinalIgnoreCase) ? Visibility.Hidden : Visibility.Collapsed); public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) => value as Visibility? == Visibility.Visible; diff --git a/KeyboardAudioVisualizer/KeyboardAudioVisualizer.csproj b/KeyboardAudioVisualizer/KeyboardAudioVisualizer.csproj index 274534d..8988d84 100644 --- a/KeyboardAudioVisualizer/KeyboardAudioVisualizer.csproj +++ b/KeyboardAudioVisualizer/KeyboardAudioVisualizer.csproj @@ -206,6 +206,10 @@ MSBuild:Compile Designer + + MSBuild:Compile + Designer + MSBuild:Compile Designer diff --git a/KeyboardAudioVisualizer/Resources/KeyboardAudioVisualizer.xaml b/KeyboardAudioVisualizer/Resources/KeyboardAudioVisualizer.xaml index e67945c..6dd28ce 100644 --- a/KeyboardAudioVisualizer/Resources/KeyboardAudioVisualizer.xaml +++ b/KeyboardAudioVisualizer/Resources/KeyboardAudioVisualizer.xaml @@ -12,6 +12,7 @@ + @@ -24,6 +25,7 @@ + + + \ No newline at end of file diff --git a/KeyboardAudioVisualizer/Styles/Theme.xaml b/KeyboardAudioVisualizer/Styles/Theme.xaml index f70bf72..1dfdea1 100644 --- a/KeyboardAudioVisualizer/Styles/Theme.xaml +++ b/KeyboardAudioVisualizer/Styles/Theme.xaml @@ -29,12 +29,19 @@ + + + + + + + diff --git a/KeyboardAudioVisualizer/UI/Visualization/EqualizerVisualization.xaml b/KeyboardAudioVisualizer/UI/Visualization/EqualizerVisualization.xaml index fbd2cdc..d44f372 100644 --- a/KeyboardAudioVisualizer/UI/Visualization/EqualizerVisualization.xaml +++ b/KeyboardAudioVisualizer/UI/Visualization/EqualizerVisualization.xaml @@ -23,100 +23,90 @@ - - - - - - - - - - - + + + + + + + + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - + + + + + + + + + +