aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/facade/Sound.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe/facade/Sound.h')
-rw-r--r--src/crepe/facade/Sound.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/crepe/facade/Sound.h b/src/crepe/facade/Sound.h
new file mode 100644
index 0000000..4a5d692
--- /dev/null
+++ b/src/crepe/facade/Sound.h
@@ -0,0 +1,31 @@
+#pragma once
+
+#include <soloud/soloud.h>
+#include <soloud/soloud_wav.h>
+
+#include "../Resource.h"
+
+namespace crepe {
+
+class SoundContext;
+class Mediator;
+
+/**
+ * \brief Sound resource facade
+ *
+ * This class is a wrapper around a \c SoLoud::Wav instance, which holds a single sample. It is
+ * part of the sound facade.
+ */
+class Sound : public Resource {
+public:
+ Sound(const Asset & src, Mediator & mediator);
+ ~Sound(); // dbg_trace
+
+private:
+ //! Deserialized resource (soloud)
+ SoLoud::Wav sample;
+ //! SoundContext uses \c sample
+ friend class SoundContext;
+};
+
+} // namespace crepe