MusicSpectrum  1.0.0
spectrum.hpp
Vá para a documentação desse arquivo.
1 #pragma once
2 
3 #include "FFT/fft.hpp"
4 #include "HUD/hud.hpp"
5 #include "Sample/sample.hpp"
6 #include "Timer/timer.hpp"
7 #include <SFML/Graphics.hpp>
8 #include <functional>
9 #include <iostream>
10 #include <memory>
11 
21 class Spectrum {
22  private:
23  // Variáveis privadas do constructor
24  std::shared_ptr<sf::RenderWindow> window;
25  std::shared_ptr<HUD> hud_ptr;
26  std::shared_ptr<FFT<sf::Int16>> fft_ptr;
27 
28  std::unique_ptr<Timer> timer_ptr;
29  std::unique_ptr<Sample> sample_ptr;
30 
31  private:
32  float gravity_velocity = 0.001f;
33  const float gravity_acceleration = 9.81f;
34 
35  sf::Color start_color = sf::Color::Blue;
36  sf::Color end_color = sf::Color::Magenta;
37 
38  std::vector<sf::RectangleShape> rectangles;
39 
40  public:
41  void run(std::function<void(std::vector<Float_Complex>, std::size_t)>
42  handlePlot);
43 
44  void viewWaveform();
45  void viewWaveformFFT();
46  void viewWaveformRect();
47  void viewWaveformRectFFT();
48 
49  Spectrum(std::shared_ptr<sf::RenderWindow> win, std::shared_ptr<HUD> hud,
50  std::shared_ptr<FFT<sf::Int16>> fft);
51 };
Definition: fft.hpp:21
Definition: spectrum.hpp:21
std::unique_ptr< Timer > timer_ptr
Definition: spectrum.hpp:28
std::shared_ptr< FFT< sf::Int16 > > fft_ptr
Definition: spectrum.hpp:26
const float gravity_acceleration
Definition: spectrum.hpp:33
void viewWaveformRect()
Renderiza a forma de onda do sinal de áudio utilizando retângulo.
Definition: waves_rect.cpp:4
void viewWaveformFFT()
Renderiza a FFT do sinal de áudio utilizando linhas.
Definition: Spectrum/waves_sine.cpp:32
Spectrum(std::shared_ptr< sf::RenderWindow > win, std::shared_ptr< HUD > hud, std::shared_ptr< FFT< sf::Int16 >> fft)
Definition: spectrum.cpp:10
sf::Color start_color
Definition: spectrum.hpp:35
std::vector< sf::RectangleShape > rectangles
Definition: spectrum.hpp:38
float gravity_velocity
Definition: spectrum.hpp:32
void viewWaveformRectFFT()
Renderiza a FFT do sinal de áudio utilizando retângulos.
Definition: waves_rect.cpp:33
std::unique_ptr< Sample > sample_ptr
Definition: spectrum.hpp:29
std::shared_ptr< sf::RenderWindow > window
Definition: spectrum.hpp:24
std::shared_ptr< HUD > hud_ptr
Definition: spectrum.hpp:25
void viewWaveform()
Renderiza a forma de onda do sinal de áudio utilizando linhas.
Definition: Spectrum/waves_sine.cpp:4
sf::Color end_color
Definition: spectrum.hpp:36
void run(std::function< void(std::vector< Float_Complex >, std::size_t)> handlePlot)
Definition: spectrum.cpp:25