Bomberman
Music.hpp
Go to the documentation of this file.
1 /*
2 ** EPITECH PROJECT, 2021
3 ** Bomberman
4 ** File description:
5 ** Music
6 */
7 
8 #ifndef MUSIC_HPP_
9 #define MUSIC_HPP_
10 
11 #include "Audio/IAudio.hpp"
12 #include <raylib.h>
13 #include "Utils/Cache.hpp"
14 
15 namespace RAY::Audio
16 {
18  class Music: public IAudio {
19  public:
20 
23  Music(const std::string &path, bool lonely = false);
24 
26  ~Music() = default;
27 
29  Music(const Music &Music) = default;
30 
32  Music &operator=(const Music &Music) = default;
33 
35  bool isPlaying(void) override;
36 
38  Music &play(void) override;
39 
41  Music &stop(void) override;
42 
44  Music &pause(void) override;
45 
47  Music &resume(void) override;
48 
50  Music &setVolume(float volume) override;
51 
52  // Set pitch for a Music (1.0 is base level)
53  Music &setPitch(float pitch) override;
54 
55  Music &updateMusicStream(void);
56 
57  private:
58  std::shared_ptr<::Music> _music;
59 
61  };
62 }
63 
64 #endif /* !Music_HPP_ */
RAY::Audio::Music::play
Music & play(void) override
Start Music.
Definition: Music.cpp:23
RAY::Audio::Music::isPlaying
bool isPlaying(void) override
Check if Music is playing.
Definition: Music.cpp:18
RAY::Audio::Music::setVolume
Music & setVolume(float volume) override
Set volume for Music (1.0 is max level)
Definition: Music.cpp:47
RAY::Audio::Music::_music
std::shared_ptr<::Music > _music
Definition: Music.hpp:58
RAY::Audio::Music
A manager for music stream.
Definition: Music.hpp:18
Cache.hpp
RAY::Audio::IAudio
Interface for Audio ressources.
Definition: IAudio.hpp:15
RAY::Audio::Music::stop
Music & stop(void) override
Stop Music playing.
Definition: Music.cpp:29
RAY::Audio::Music::~Music
~Music()=default
Default destructor.
RAY::Audio::Music::setPitch
Music & setPitch(float pitch) override
Definition: Music.cpp:53
RAY::Audio::Music::_musicsCache
static RAY::Cache<::Music > _musicsCache
Definition: Music.hpp:60
RAY::Audio::Music::operator=
Music & operator=(const Music &Music)=default
A Music is assignable.
RAY::Audio::Music::updateMusicStream
Music & updateMusicStream(void)
Definition: Music.cpp:59
RAY::Audio::Music::Music
Music(const std::string &path, bool lonely=false)
Load Music stream from file.
Definition: Music.cpp:13
RAY::Audio::Music::pause
Music & pause(void) override
Pause Music playing.
Definition: Music.cpp:35
RAY::Audio
Definition: IAudio.hpp:12
RAY::Cache
A templated class used to cache ressources, indexed with a string.
Definition: Cache.hpp:23
IAudio.hpp
RAY::Audio::Music::resume
Music & resume(void) override
Resume playing paused Music.
Definition: Music.cpp:41