Пример #1
0
        public IVisualizationProvider CreateVisualizationProvider(VisualizationIndex visualizationIndex, VisualizationType visualizationType)
        {
            IVisualizationProvider visualizationProvider = default;

            switch (visualizationType)
            {
            case VisualizationType.FrequencyBars:
                MultiBandEqualizer equalizer = new MultiBandEqualizer();
                ApplicationManager.Instance.Settings[visualizationIndex].EqualizerConfiguration.LoadInto(equalizer);
                equalizer.PropertyChanged += (sender, args) => ApplicationManager.Instance.Settings[visualizationIndex].EqualizerConfiguration.SaveFrom(equalizer);
                visualizationProvider      = new FrequencyBarsVisualizationProvider(ApplicationManager.Instance.Settings[visualizationIndex].GetConfiguration <FrequencyBarsVisualizationProviderConfiguration>(visualizationType), GetAudioProcessor <FourierSpectrumProvider>())
                {
                    Equalizer = equalizer
                };
                break;

            case VisualizationType.Level:
                visualizationProvider = new LevelVisualizationProvider(ApplicationManager.Instance.Settings[visualizationIndex].GetConfiguration <LevelVisualizationProviderConfiguration>(visualizationType), _audioBuffer);
                break;

            case VisualizationType.Beat:
                visualizationProvider = new BeatVisualizationProvider(ApplicationManager.Instance.Settings[visualizationIndex].GetConfiguration <BeatVisualizationProviderConfiguration>(visualizationType), GetAudioProcessor <FourierSpectrumProvider>());
                break;
            }

            visualizationProvider?.Initialize();
            return(visualizationProvider);
        }
Пример #2
0
        public VisualizationSettings(VisualizationIndex visualizationIndex)
        {
            switch (visualizationIndex)
            {
            case VisualizationIndex.Primary:
                SelectedVisualization = VisualizationType.FrequencyBars;
                Gradient = new LinearGradient(new GradientStop(0, HSVColor.Create(300, 1, 1)),
                                              new GradientStop(0.20, HSVColor.Create(225, 1, 1)),
                                              new GradientStop(0.35, HSVColor.Create(180, 1, 1)),
                                              new GradientStop(0.50, HSVColor.Create(135, 1, 1)),
                                              new GradientStop(0.65, HSVColor.Create(90, 1, 1)),
                                              new GradientStop(0.80, HSVColor.Create(45, 1, 1)),
                                              new GradientStop(0.95, HSVColor.Create(0, 1, 1)));
                break;

            case VisualizationIndex.Secondary:
                SelectedVisualization = VisualizationType.Beat;
                Gradient = new LinearGradient(new GradientStop(0.5, new Color(255, 255, 255)));
                break;

            case VisualizationIndex.Tertiary:
                SelectedVisualization = VisualizationType.Level;
                Gradient = new LinearGradient(new GradientStop(0, new Color(0, 0, 255)),
                                              new GradientStop(1, new Color(255, 0, 0)));
                break;
            }
        }
Пример #3
0
 public VisualizationSettings this[VisualizationIndex visualizationIndex]
 {
     get
     {
         if (!Visualizations.TryGetValue(visualizationIndex, out VisualizationSettings settings))
         {
             Visualizations[visualizationIndex] = (settings = new VisualizationSettings(visualizationIndex));
         }
         return(settings);
     }
 }