Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/frontend/StarMainMixer.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/frontend/StarMainMixer.hpp')
-rw-r--r--source/frontend/StarMainMixer.hpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/source/frontend/StarMainMixer.hpp b/source/frontend/StarMainMixer.hpp
new file mode 100644
index 0000000..e0f1223
--- /dev/null
+++ b/source/frontend/StarMainMixer.hpp
@@ -0,0 +1,34 @@
+#ifndef STAR_MAIN_MIXER_HPP
+#define STAR_MAIN_MIXER_HPP
+
+#include "StarMixer.hpp"
+#include "StarGameTypes.hpp"
+
+namespace Star {
+
+STAR_CLASS(UniverseClient);
+STAR_CLASS(MainMixer);
+
+class MainMixer {
+public:
+ MainMixer(unsigned sampleRate, unsigned channels);
+
+ void setUniverseClient(UniverseClientPtr universeClient);
+
+ void update(bool muteSfx = false, bool muteMusic = false);
+
+ MixerPtr mixer() const;
+
+ void setVolume(float volume, float rampTime = 0.0f);
+ void read(int16_t* sampleData, size_t frameCount);
+
+private:
+ UniverseClientPtr m_universeClient;
+ MixerPtr m_mixer;
+ Set<MixerGroup> m_mutedGroups;
+ Map<MixerGroup, float> m_groupVolumes;
+};
+
+}
+
+#endif