16 [[nodiscard]]
virtual auto is_bound() const ->
bool = 0;
34 [[nodiscard]] virtual auto
is_playing() const ->
bool = 0;
40 [[nodiscard]] virtual auto
at_end() const ->
bool = 0;
51 [[nodiscard]] virtual auto
get_duration() const -> std::chrono::duration<
float> = 0;
54 [[nodiscard]] virtual auto
get_cursor() const -> std::chrono::duration<
float> = 0;
56 virtual auto
set_cursor(std::chrono::duration<
float> position) ->
bool = 0;
69 virtual auto
set_fade_in(std::chrono::duration<
float> duration,
float gain = -1.0f) ->
bool = 0;
73 virtual auto
set_fade_out(std::chrono::duration<
float> duration) ->
bool = 0;
75 [[nodiscard]] virtual auto
is_looping() const ->
bool = 0;
78 [[nodiscard]] virtual auto
get_gain() const ->
float = 0;
84 [[nodiscard]] virtual auto
get_pan() const ->
float = 0;
87 [[nodiscard]] virtual auto
get_pitch() const ->
float = 0;
Audio Buffer: stores decoded PCM data in memory.
Definition buffer.hpp:12
Audio Source. API for audio playback. Open file for streaming or bind to existing Audio Buffer....
Definition source.hpp:13
virtual auto open_stream(char const *path) -> bool=0
Open file stream and bind to it.
virtual auto set_spatialized(bool spatialized) -> bool=0
Toggle spatialization.
virtual auto is_spatialized() const -> bool=0
Check if spatialization is enabled.
virtual auto set_fade_out(std::chrono::duration< float > duration) -> bool=0
Set fade out parameters. Target gain is implicitly 0.
virtual void set_looping(bool looping)=0
virtual auto get_duration() const -> std::chrono::duration< float >=0
Get duration of source.
virtual void set_pitch(float pitch)=0
virtual auto get_pitch() const -> float=0
virtual void set_pan(float pan)=0
virtual auto set_cursor(std::chrono::duration< float > position) -> bool=0
Set position of playback cursor.
virtual void wait_until_ended()=0
Block until source is at end. The calling thread is blocked via atomic wait/notify (not spinlocking)....
virtual auto is_looping() const -> bool=0
virtual void set_gain(float gain)=0
virtual auto can_wait_until_ended() const -> bool=0
Check if feasible to block until source is at end.
virtual auto is_bound() const -> bool=0
Check if source is bound to a stream or buffer.
virtual auto get_pan() const -> float=0
virtual void set_position(Vec3f const &pos)=0
virtual auto is_playing() const -> bool=0
virtual auto get_cursor() const -> std::chrono::duration< float >=0
Get position of playback cursor.
virtual auto get_gain() const -> float=0
virtual auto get_position() const -> Vec3f=0
virtual auto set_fade_in(std::chrono::duration< float > duration, float gain=-1.0f) -> bool=0
Set fade in parameters.
auto bind_to(std::nullptr_t)=delete
virtual auto at_end() const -> bool=0
Check if source is at end.
virtual void unbind()=0
Detach buffer or file stream if bound.
Base class for polymorphic types.
Definition polymorphic.hpp:5
3D spatial vector.
Definition vec3.hpp:5