diff options
Diffstat (limited to 'source/frontend/StarMainMixer.hpp')
-rw-r--r-- | source/frontend/StarMainMixer.hpp | 34 |
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 |