GameKit  0.0.1a
C++ gamedev tools
Music.hpp
Go to the documentation of this file.
1 /*
2  * =====================================================================================
3  *
4  * Filename: BackgroundMusic.hpp
5  *
6  * Description:
7  *
8  * Created: 15/09/2014 23:03:43
9  *
10  * Author: Quentin Bazin, <quent42340@gmail.com>
11  *
12  * =====================================================================================
13  */
14 #ifndef GK_MUSIC_HPP_
15 #define GK_MUSIC_HPP_
16 
17 #include <memory>
18 #include <string>
19 
20 #include "gk/core/SDLHeaders.hpp"
21 
22 namespace gk {
23 
24 class Music {
25  public:
26  Music() = default;
27  Music(const std::string &filename);
28 
29  void openFromFile(const std::string &filename);
30 
31  void play();
32 
33  void setVolume(int volume) { m_volume = volume; }
34 
35  private:
36  using Mix_MusicPtr = std::unique_ptr<Mix_Music, decltype(&Mix_FreeMusic)>;
37 
38  Mix_MusicPtr m_music{nullptr, Mix_FreeMusic};
39 
40  int m_volume = MIX_MAX_VOLUME;
41 };
42 
43 } // namespace gk
44 
45 #endif // GK_BACKGROUNDMUSIC_HPP_
int m_volume
Definition: Music.hpp:40
Music()=default
void openFromFile(const std::string &filename)
Definition: Music.cpp:23
Mix_MusicPtr m_music
Definition: Music.hpp:38
std::unique_ptr< Mix_Music, decltype(&Mix_FreeMusic)> Mix_MusicPtr
Definition: Music.hpp:36
void setVolume(int volume)
Definition: Music.hpp:33
void play()
Definition: Music.cpp:30