aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/facade/SoundContext.h
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-11-30 17:27:16 +0100
committerLoek Le Blansch <loek@pipeframe.xyz>2024-11-30 17:27:16 +0100
commitb8194e02679dc88f5c0a240da83a4700ec5200cf (patch)
tree216e2e28793fce2d468b23fa9b5d2a17db32012b /src/crepe/facade/SoundContext.h
parent9eff2e24fa4cf0ffad2b47cc922a6558bc1a9fa1 (diff)
add doxygen comments + clean up
Diffstat (limited to 'src/crepe/facade/SoundContext.h')
-rw-r--r--src/crepe/facade/SoundContext.h48
1 files changed, 42 insertions, 6 deletions
diff --git a/src/crepe/facade/SoundContext.h b/src/crepe/facade/SoundContext.h
index c651cd5..3bc8be5 100644
--- a/src/crepe/facade/SoundContext.h
+++ b/src/crepe/facade/SoundContext.h
@@ -11,8 +11,8 @@ namespace crepe {
/**
* \brief Sound engine facade
*
- * This class is a wrapper around a \c SoLoud::Soloud instance, which provides
- * the methods for playing \c Sound instances. It is part of the sound facade.
+ * This class is a wrapper around a \c SoLoud::Soloud instance, which provides the methods for
+ * playing \c Sound instances. It is part of the sound facade.
*/
class SoundContext {
public:
@@ -24,15 +24,51 @@ public:
SoundContext & operator=(const SoundContext &) = delete;
SoundContext & operator=(SoundContext &&) = delete;
+ /**
+ * \brief Play a sample
+ *
+ * Plays a Sound from the beginning of the sample and returns a handle to control it later.
+ *
+ * \param resource Sound instance to play
+ *
+ * \returns Handle to control this voice
+ */
virtual Sound::Handle play(Sound & resource);
- virtual void stop(Sound::Handle &);
- virtual void set_volume(Sound &, Sound::Handle &, float);
- virtual void set_loop(Sound &, Sound::Handle &, bool);
+ /**
+ * \brief Stop a voice immediately if it is still playing
+ *
+ * \note This function does nothing if the handle is invalid or if the sound is already
+ * stopped / finished playing.
+ *
+ * \param handle Voice handle returned by SoundContext::play
+ */
+ virtual void stop(Sound::Handle & handle);
+ /**
+ * \brief Change the volume of a voice
+ *
+ * \note This function does nothing if the handle is invalid or if the sound is already
+ * stopped / finished playing.
+ *
+ * \param handle Voice handle returned by SoundContext::play
+ * \param volume New gain value (0=silent, 1=default)
+ */
+ virtual void set_volume(Sound::Handle & handle, float volume);
+ /**
+ * \brief Set the looping behavior of a voice
+ *
+ * \note This function does nothing if the handle is invalid or if the sound is already
+ * stopped / finished playing.
+ *
+ * \param handle Voice handle returned by SoundContext::play
+ * \param loop Looping behavior (false=oneshot, true=loop)
+ */
+ virtual void set_loop(Sound::Handle & handle, bool loop);
private:
+ //! Abstracted class
SoLoud::Soloud engine;
- float default_volume = 1.0f;
+ //! Config reference
Config & config = Config::get_instance();
};