コード例 #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 LevelBarDecorator(IVisualizationProvider visualizationProvider, LevelBarDirection direction, int dataIndex, LinearGradient gradient)
 {
     this._visualizationProvider = visualizationProvider;
     this.Direction = direction;
     this.DataIndex = dataIndex;
     this.Gradient  = gradient;
 }
コード例 #3
0
 public BeatDecorator(IVisualizationProvider visualizationProvider)
 {
     this._visualizationProvider = visualizationProvider;
 }
コード例 #4
0
 public FrequencyBarsDecorator(IVisualizationProvider visualizationProvider)
 {
     this._visualizationProvider = visualizationProvider;
 }
コード例 #5
0
 public HangmanGame(IWordsProvider wordsProvider, IVisualizationProvider visualizationProvider)
 {
     _wordsProvider         = wordsProvider;
     _visualizationProvider = visualizationProvider;
 }