le2d v0.4.6
2D game engine framework
 
Loading...
Searching...
No Matches
audio_mixer.hpp
Go to the documentation of this file.
1#pragma once
3#include <capo/source.hpp>
4#include <klib/base_types.hpp>
5#include <gsl/pointers>
6
7namespace le {
12class IAudioMixer : public klib::Polymorphic {
13 public:
14 [[nodiscard]] virtual auto get_sfx_gain() const -> float = 0;
15 virtual void set_sfx_gain(float gain) = 0;
16 virtual void play_sfx(gsl::not_null<IAudioBuffer const*> buffer) = 0;
17 virtual void stop_sfx() = 0;
18
19 [[nodiscard]] virtual auto get_music_gain() const -> float = 0;
20 virtual void set_music_gain(float gain) = 0;
21 virtual void loop_music(gsl::not_null<IAudioBuffer const*> buffer, kvf::Seconds fade = 1s) = 0;
22 virtual void pause_music() = 0;
23 virtual void resume_music() = 0;
24 virtual void stop_music() = 0;
25
27 [[nodiscard]] virtual auto create_source() const -> std::unique_ptr<capo::ISource> = 0;
28
30 [[nodiscard]] virtual auto is_playing() const -> bool = 0;
32 virtual void wait_idle() = 0;
34 virtual void stop_all() = 0;
35};
36} // namespace le
Opaque interface for an Audio Buffer.
Definition audio_buffer.hpp:8
Opaque audio mixer interface.
Definition audio_mixer.hpp:12
virtual void stop_sfx()=0
virtual auto create_source() const -> std::unique_ptr< capo::ISource >=0
Create a custom audio source managed outide the mixer.
virtual void stop_music()=0
virtual void set_music_gain(float gain)=0
virtual void stop_all()=0
Stops all SFX and music.
virtual void loop_music(gsl::not_null< IAudioBuffer const * > buffer, kvf::Seconds fade=1s)=0
virtual auto is_playing() const -> bool=0
virtual void set_sfx_gain(float gain)=0
virtual void pause_music()=0
virtual auto get_sfx_gain() const -> float=0
virtual void resume_music()=0
virtual void wait_idle()=0
Waits for playing SFX to finish, stops music.
virtual void play_sfx(gsl::not_null< IAudioBuffer const * > buffer)=0
virtual auto get_music_gain() const -> float=0
Definition texture.hpp:9
Definition animation.hpp:8