MusicSpectrum  1.0.0
hud.hpp
Vá para a documentação desse arquivo.
1 #pragma once
2 
3 #include "imgui/imgui.h"
4 #include <SFML/Audio.hpp>
5 #include <SFML/Graphics.hpp>
6 #include <memory>
7 
8 // Constantes
9 const int WIDTH = 1000;
10 const int HEIGHT = 720;
11 const int HUD_WIDTH = 400;
12 const int HUD_HEIGHT = 300;
13 const size_t buffer_size = 1000;
14 
24 class HUD {
25  private:
26  const float icon_size = 17.0f;
27 
28  int fftMode = 0;
29  int spectrumMode = 0;
30  float volume = 10.f;
31 
32  bool isMuted = false;
33  bool isPlaying = false;
34  bool audioListWindow = false;
35 
36  std::size_t selectedIndex = 0;
37  std::vector<std::string> list_audio;
38 
39  sf::Texture play_tex, pause_tex;
40  sf::Texture stop_tex, forward_tex;
41  sf::Texture backward_tex, previous_tex;
42  sf::Texture next_tex, mute_tex;
43  sf::Texture volume_tex;
44 
45  std::shared_ptr<sf::RenderWindow> window;
46 
47  // GUI
48  void initFont();
49  void audioList();
50  void modeAudio();
51  void initTexture();
52  void styleWidget();
53  void drawAudioHUD();
54  void controlAudio();
55  void openFileDialog();
56  void showAudioListWindow();
57 
58  // Events
59  void skipForward();
60  void skipBackward();
61  void playNextAudio();
62  void resetControls();
63  void toggleMusicMute();
64  void playPreviousAudio();
65  void toggleMusicPlayback();
66 
67  // Util
68  void setSoundBuffer(const std::string &filename);
69 
70  public:
71  int option = 3;
72 
73  sf::Sound sound;
74  sf::SoundBuffer sound_buffer;
75  std::vector<sf::Int16> sample_buffer;
76 
77  void run();
78  void handleEvents(sf::Event &event);
79 
80  HUD(std::shared_ptr<sf::RenderWindow> win);
81  ~HUD();
82 };
Definition: hud.hpp:24
void handleEvents(sf::Event &event)
Definition: events.cpp:13
void styleWidget()
Definition: ui.cpp:6
sf::Texture play_tex
Definition: hud.hpp:39
void run()
Definition: hud.cpp:82
~HUD()
Definition: hud.cpp:27
void playNextAudio()
Definition: events.cpp:91
int fftMode
Definition: hud.hpp:28
sf::Texture forward_tex
Definition: hud.hpp:40
sf::Texture next_tex
Definition: hud.hpp:42
std::size_t selectedIndex
Definition: hud.hpp:36
const float icon_size
Definition: hud.hpp:26
void resetControls()
Definition: events.cpp:110
void toggleMusicPlayback()
Definition: events.cpp:65
void audioList()
Definition: ui.cpp:170
void showAudioListWindow()
Definition: ui.cpp:185
void controlAudio()
Definition: ui.cpp:81
void skipBackward()
Definition: events.cpp:84
bool isPlaying
Definition: hud.hpp:33
void initFont()
Definition: hud.cpp:30
void skipForward()
Definition: events.cpp:77
void modeAudio()
Definition: ui.cpp:124
std::vector< sf::Int16 > sample_buffer
Definition: hud.hpp:75
bool isMuted
Definition: hud.hpp:32
sf::Texture volume_tex
Definition: hud.hpp:43
void toggleMusicMute()
Definition: events.cpp:59
sf::Texture stop_tex
Definition: hud.hpp:40
std::shared_ptr< sf::RenderWindow > window
Definition: hud.hpp:45
int spectrumMode
Definition: hud.hpp:29
void setSoundBuffer(const std::string &filename)
Definition: hud.cpp:75
void initTexture()
Definition: hud.cpp:40
void drawAudioHUD()
std::vector< std::string > list_audio
Definition: hud.hpp:37
sf::SoundBuffer sound_buffer
Definition: hud.hpp:74
bool audioListWindow
Definition: hud.hpp:34
sf::Texture backward_tex
Definition: hud.hpp:41
HUD(std::shared_ptr< sf::RenderWindow > win)
Definition: hud.cpp:13
sf::Sound sound
Definition: hud.hpp:73
float volume
Definition: hud.hpp:30
sf::Texture mute_tex
Definition: hud.hpp:42
int option
Definition: hud.hpp:71
sf::Texture previous_tex
Definition: hud.hpp:41
void openFileDialog()
Definition: ui.cpp:42
void playPreviousAudio()
Definition: events.cpp:100
sf::Texture pause_tex
Definition: hud.hpp:39
const int WIDTH
Definition: hud.hpp:9
const size_t buffer_size
Definition: hud.hpp:13
const int HEIGHT
Definition: hud.hpp:10
const int HUD_HEIGHT
Definition: hud.hpp:12
const int HUD_WIDTH
Definition: hud.hpp:11