Gem Illuminator
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
soundmanager.h
Go to the documentation of this file.
1 #ifndef SOUNDMANAGER_H
2 #define SOUNDMANAGER_H
3 
4 #include <QObject>
5 #include <QQmlEngine>
6 
7 class QJSEngine;
8 class QMediaPlayer;
9 class QQmlEngine;
10 
11 enum class SoundEffects {
12  Collision1 = 0,
13  Collision2 = 1,
14  Collision3 = 2,
15  Collision4 = 3,
16  Collision5 = 4,
17  Collision6 = 5,
18  Collision7 = 6,
19  GameOver = 7
20 };
21 
26 class Soundmanager : public QObject
27 {
28  Q_OBJECT
29 
30  Soundmanager(const Soundmanager &) = delete;
31  Soundmanager& operator=(const Soundmanager &) = delete;
32 public:
33  virtual ~Soundmanager();
34 
38  static void drop();
43  static Soundmanager *instance();
48  Q_INVOKABLE void playBackgroundMusic();
53  void playCollisionSound();
58  void setCollisionSound(SoundEffects effect);
62  Q_INVOKABLE void stopBackgroundMusic();
63 
64 protected:
65  Soundmanager();
66  void loadSounds();
67 
68 protected:
70  QMediaPlayer *m_backgroundMusic;
71  QMediaPlayer *m_collisionSound;
72 };
73 
80 QObject *soundmanagerSingletontypeProvider(QQmlEngine * engine, QJSEngine * scriptEngine);
81 
82 #endif // SOUNDMANAGER_H
void setCollisionSound(SoundEffects effect)
Sets the collision sound that will be played next time playCollisionSound() is called.
Definition: soundmanager.cpp:52
static void drop()
Drops current instance of Soundmanager.
Definition: soundmanager.cpp:21
static Soundmanager * m_instance
Definition: soundmanager.h:69
SoundEffects
Definition: soundmanager.h:11
The Soundmanager class provides several sounds which can be played. The Soundmanager is implemented ...
Definition: soundmanager.h:26
QMediaPlayer * m_collisionSound
Definition: soundmanager.h:71
Soundmanager()
Definition: soundmanager.cpp:9
void loadSounds()
Definition: soundmanager.cpp:68
virtual ~Soundmanager()
Definition: soundmanager.cpp:13
Q_INVOKABLE void stopBackgroundMusic()
Stops playing our background music.
Definition: soundmanager.cpp:63
QMediaPlayer * m_backgroundMusic
Definition: soundmanager.h:70
QObject * soundmanagerSingletontypeProvider(QQmlEngine *engine, QJSEngine *scriptEngine)
Callback function used to get the current instance of Soundmanager within QML.
Definition: soundmanager.cpp:94
static Soundmanager * instance()
The instance of our Soundmanager.
Definition: soundmanager.cpp:30
Q_INVOKABLE void playBackgroundMusic()
Starts playing our background music.
Definition: soundmanager.cpp:47
void playCollisionSound()
Plays a previously defined sound in order to indicate a collision.
Definition: soundmanager.cpp:58