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 |