17 [[nodiscard]]
virtual auto is_bound() const ->
bool = 0;
45 [[nodiscard]] virtual auto
is_playing() const ->
bool = 0;
51 [[nodiscard]] virtual auto
at_end() const ->
bool = 0;
62 [[nodiscard]] virtual auto
get_duration() const -> std::chrono::duration<
float> = 0;
65 [[nodiscard]] virtual auto
get_cursor() const -> std::chrono::duration<
float> = 0;
67 virtual auto
set_cursor(std::chrono::duration<
float> position) ->
bool = 0;
80 virtual auto
set_fade_in(std::chrono::duration<
float> duration,
float gain = -1.0f) ->
bool = 0;
84 virtual auto
set_fade_out(std::chrono::duration<
float> duration) ->
bool = 0;
86 [[nodiscard]] virtual auto
is_looping() const ->
bool = 0;
89 [[nodiscard]] virtual auto
get_gain() const ->
float = 0;
95 [[nodiscard]] virtual auto
get_pan() const ->
float = 0;
98 [[nodiscard]] virtual auto
get_pitch() const ->
float = 0;
Audio Buffer: stores decoded PCM data in memory.
Definition buffer.hpp:13
Audio Source. API for audio playback. Open file for streaming or bind to existing Audio Buffer....
Definition source.hpp:14
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 open_file_stream(char const *path) -> bool=0
Open file stream and bind to it. The same encodings are supported as with capo::Buffer.
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 stream if bound.
Interface for custom audio stream (data source). Supports streaming data of indefinite length....
Definition stream.hpp:12
Base class for polymorphic types.
Definition polymorphic.hpp:5
3D spatial vector.
Definition vec3.hpp:5