From c42ef6e621a5f1cae353dbe21adb78b15960a5b7 Mon Sep 17 00:00:00 2001 From: Darth Affe Date: Sat, 12 Aug 2017 09:43:40 +0200 Subject: [PATCH] Fixed wrong Spectrum-Frequency-Indexers --- .../Spectrum/AbstractSpectrum.cs | 20 +++---------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/KeyboardAudioVisualizer/AudioProcessing/Spectrum/AbstractSpectrum.cs b/KeyboardAudioVisualizer/AudioProcessing/Spectrum/AbstractSpectrum.cs index 0529336..4e2788f 100644 --- a/KeyboardAudioVisualizer/AudioProcessing/Spectrum/AbstractSpectrum.cs +++ b/KeyboardAudioVisualizer/AudioProcessing/Spectrum/AbstractSpectrum.cs @@ -1,8 +1,6 @@ -using System; -using System.Collections; +using System.Collections; using System.Collections.Generic; using System.Linq; -using KeyboardAudioVisualizer.Helper; namespace KeyboardAudioVisualizer.AudioProcessing.Spectrum { @@ -13,21 +11,9 @@ namespace KeyboardAudioVisualizer.AudioProcessing.Spectrum protected Band[] Bands { get; set; } public int BandCount => Bands.Length; - //TODO DarthAffe 10.08.2017: Check Frequency-Indexers - they are most likely wrong public Band this[int index] => Bands[index]; - public Band this[float frequency] => Bands[FrequencyHelper.GetIndexOfFrequency(frequency, BandCount)]; - public Band[] this[float minFrequency, float maxFrequency] - { - get - { - int minIndex = FrequencyHelper.GetIndexOfFrequency(minFrequency, BandCount); - int maxIndex = FrequencyHelper.GetIndexOfFrequency(maxFrequency, BandCount); - - Band[] result = new Band[maxIndex - minIndex]; - Array.Copy(Bands, minIndex, result, 0, result.Length); - return result; - } - } + public Band this[float frequency] => Bands.FirstOrDefault(band => (band.LowerFrequency <= frequency) && (band.UpperFrequency >= frequency)); + public Band[] this[float minFrequency, float maxFrequency] => Bands.Where(band => (band.LowerFrequency > minFrequency) && (band.UpperFrequency < maxFrequency)).ToArray(); #endregion