33 #include <condition_variable> 48 std::vector<std::vector<std::shared_ptr<ISound>>> m_scenes;
63 std::shared_ptr<IHandle> m_currentHandle;
68 std::shared_ptr<IHandle> m_transitionHandle;
73 std::shared_ptr<IDevice> m_device;
78 std::atomic_bool m_transitioning;
83 std::atomic_bool m_stopThread;
88 std::atomic_int m_soundTarget;
98 std::thread m_fadeThread;
118 int addScene(std::shared_ptr<ISound> sound);
127 bool changeScene(
int id);
142 bool addTransition(
int init,
int end, std::shared_ptr<ISound> sound);
148 void setFadeTime(
double seconds);
154 double getFadeTime();
180 bool seek(
double position);
187 double getPosition();
202 bool setVolume(
float volume);
227 static void transitionCallback(
void* player);
228 static void sceneCallback(
void* player);
230 void crossfadeThread();
232 void fadeOutThread();
#define AUD_NAMESPACE_BEGIN
Opens the audaspace namespace aud.
Definition: Audaspace.h:116
This class allows to play music depending on a current "scene", scene changes are managed by the clas...
Definition: DynamicMusic.h:42
#define AUD_API
Used for exporting symbols in the shared library.
Definition: Audaspace.h:93
Defines the IHandle interface as well as possible states of the handle.
#define AUD_NAMESPACE_END
Closes the audaspace namespace aud.
Definition: Audaspace.h:119
Status
Status of a playback handle.
Definition: IHandle.h:30