|
MusicSpectrum
1.0.0
|
#include <render.hpp>
Membros Públicos | |
| void | run () |
| Render () | |
| ~Render () | |
Membros Privados | |
| void | handlePlot (std::vector< Float_Complex > spectrum, std::size_t fft_size) |
| void | frameRate (time_point< high_resolution_clock > &prev_time) |
Atributos Privados | |
| const int | FPS = 60 |
| const double | frame_duration = 1.0 / FPS |
| sf::Clock | clock |
| std::shared_ptr< sf::RenderWindow > | window |
| std::shared_ptr< sf::VideoMode > | desktop |
| std::shared_ptr< HUD > | hud_ptr |
| std::shared_ptr< Spectrum > | spectrum_ptr |
| std::shared_ptr< FFT< sf::Int16 > > | fft_ptr |
| std::shared_ptr< Spectrum3D > | spectrum3D_ptr |
Classe responsável pela renderização do programa.
A classe Render é responsável por inicializar a janela principal, gerenciar objetos como HUD, Spectrum e Spectrum3D, processar eventos, controlar a taxa de quadros e realizar a renderização do espectro de áudio de acordo com a opção selecionada na HUD.
| Render::Render | ( | ) |
Construtor da classe Render.
Esta função inicializa os principais objetos usados pela classe Render:
window: Janela principal da aplicação.desktop: Modo de exibição do desktop.hud_ptr: Ponteiro compartilhado para a instância da classe HUD.fft_ptr: Ponteiro compartilhado para a instância da classe FFT.spectrum_ptr: Ponteiro compartilhado para a instância da classe Spectrum.spectrum3D_ptr: Ponteiro compartilhado para a instância da classe Spectrum3D.
|
private |
Ajuste da taxa de quadros.
Esta função controla a taxa de quadros da aplicação para manter uma renderização suave. Ela calcula o tempo decorrido desde o último frame e, se for menor que a duração desejada, coloca a thread em espera por um determinado tempo para garantir a taxa de quadros.
prev_time: Referência para o tempo do frame anterior.
|
private |
Processa o plot de acordo com a opção selecionada na HUD.
A função verifica a opção selecionada na HUD e chama o método apropriado do objeto spectrum_ptr ou spectrum3D_ptr para visualizar o espectro ou a forma de onda.
spectrum: Um vetor de números complexos que representam o espectro.
fft_size: O tamanho da transformada de Fourier rápida (FFT).
| void Render::run | ( | ) |
Loop principal da aplicação.
Esta função é o loop principal da aplicação e é responsável por:
run de HUD, Spectrum e Spectrum3D para realizar a atualização e renderização.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |