capo-lite v2.0.1
Simple audio playback library
 
Loading...
Searching...
No Matches
capo::ISource Class Referenceabstract

Audio Source. API for audio playback. Open file for streaming or bind to existing Audio Buffer. Supports 3D spatialization. More...

#include <capo/source.hpp>

Inheritance diagram for capo::ISource:
capo::Polymorphic

Public Member Functions

virtual auto is_bound () const -> bool=0
 Check if source is bound to a stream or buffer.
 
auto bind_to (std::nullptr_t)=delete
 
virtual auto bind_to (Buffer const *buffer) -> bool=0
 Bind to existing buffer. Passed buffer must outlive this instance.
 
virtual auto bind_to (std::shared_ptr< Buffer const > buffer) -> bool=0
 Bind to existing buffer and increment its ref-count.
 
virtual auto open_stream (char const *path) -> bool=0
 Open file stream and bind to it.
 
virtual void unbind ()=0
 Detach buffer or file stream if bound.
 
virtual auto is_playing () const -> bool=0
 
virtual void play ()=0
 
virtual void stop ()=0
 
virtual auto at_end () const -> bool=0
 Check if source is at end.
 
virtual auto can_wait_until_ended () const -> bool=0
 Check if feasible to block until source is at end.
 
virtual void wait_until_ended ()=0
 Block until source is at end. The calling thread is blocked via atomic wait/notify (not spinlocking). Returns immediately if can_wait_until_ended() returns false.
 
virtual auto get_duration () const -> std::chrono::duration< float >=0
 Get duration of source.
 
virtual auto get_cursor () const -> std::chrono::duration< float >=0
 Get position of playback cursor.
 
virtual auto set_cursor (std::chrono::duration< float > position) -> bool=0
 Set position of playback cursor.
 
virtual auto is_spatialized () const -> bool=0
 Check if spatialization is enabled.
 
virtual auto set_spatialized (bool spatialized) -> bool=0
 Toggle spatialization.
 
virtual auto set_fade_in (std::chrono::duration< float > duration, float gain=-1.0f) -> bool=0
 Set fade in parameters.
 
virtual auto set_fade_out (std::chrono::duration< float > duration) -> bool=0
 Set fade out parameters. Target gain is implicitly 0.
 
virtual auto is_looping () const -> bool=0
 
virtual void set_looping (bool looping)=0
 
virtual auto get_gain () const -> float=0
 
virtual void set_gain (float gain)=0
 
virtual auto get_position () const -> Vec3f=0
 
virtual void set_position (Vec3f const &pos)=0
 
virtual auto get_pan () const -> float=0
 
virtual void set_pan (float pan)=0
 
virtual auto get_pitch () const -> float=0
 
virtual void set_pitch (float pitch)=0
 
- Public Member Functions inherited from capo::Polymorphic
 Polymorphic ()=default
 
virtual ~Polymorphic ()=default
 
 Polymorphic (Polymorphic const &)=default
 
 Polymorphic (Polymorphic &&)=default
 
auto operator= (Polymorphic const &) -> Polymorphic &=default
 
auto operator= (Polymorphic &&) -> Polymorphic &=default
 

Detailed Description

Audio Source. API for audio playback. Open file for streaming or bind to existing Audio Buffer. Supports 3D spatialization.

Member Function Documentation

◆ at_end()

virtual auto capo::ISource::at_end ( ) const -> bool
pure virtual

Check if source is at end.

Returns
true after playback is complete, unless looping.

◆ bind_to() [1/3]

virtual auto capo::ISource::bind_to ( Buffer const *  buffer) -> bool
pure virtual

Bind to existing buffer. Passed buffer must outlive this instance.

Parameters
bufferAudio Buffer to bind source to.
Returns
true on success.

◆ bind_to() [2/3]

auto capo::ISource::bind_to ( std::nullptr_t  )
delete

◆ bind_to() [3/3]

virtual auto capo::ISource::bind_to ( std::shared_ptr< Buffer const >  buffer) -> bool
pure virtual

Bind to existing buffer and increment its ref-count.

Parameters
bufferAudio Buffer to bind source to.
Returns
true on success.

◆ can_wait_until_ended()

virtual auto capo::ISource::can_wait_until_ended ( ) const -> bool
pure virtual

Check if feasible to block until source is at end.

Returns
true if playing and not looping.

◆ get_cursor()

virtual auto capo::ISource::get_cursor ( ) const -> std::chrono::duration< float >
pure virtual

Get position of playback cursor.

Returns
-1s if not bound.

◆ get_duration()

virtual auto capo::ISource::get_duration ( ) const -> std::chrono::duration< float >
pure virtual

Get duration of source.

Returns
-1s if not bound.

◆ get_gain()

virtual auto capo::ISource::get_gain ( ) const -> float
pure virtual

◆ get_pan()

virtual auto capo::ISource::get_pan ( ) const -> float
pure virtual

◆ get_pitch()

virtual auto capo::ISource::get_pitch ( ) const -> float
pure virtual

◆ get_position()

virtual auto capo::ISource::get_position ( ) const -> Vec3f
pure virtual

◆ is_bound()

virtual auto capo::ISource::is_bound ( ) const -> bool
pure virtual

Check if source is bound to a stream or buffer.

◆ is_looping()

virtual auto capo::ISource::is_looping ( ) const -> bool
pure virtual

◆ is_playing()

virtual auto capo::ISource::is_playing ( ) const -> bool
pure virtual

◆ is_spatialized()

virtual auto capo::ISource::is_spatialized ( ) const -> bool
pure virtual

Check if spatialization is enabled.

Returns
true if bound and spatialized.

◆ open_stream()

virtual auto capo::ISource::open_stream ( char const *  path) -> bool
pure virtual

Open file stream and bind to it.

Parameters
pathPath to audio file.
Returns
true on success.

◆ play()

virtual void capo::ISource::play ( )
pure virtual

◆ set_cursor()

virtual auto capo::ISource::set_cursor ( std::chrono::duration< float >  position) -> bool
pure virtual

Set position of playback cursor.

◆ set_fade_in()

virtual auto capo::ISource::set_fade_in ( std::chrono::duration< float >  duration,
float  gain = -1.0f 
) -> bool
pure virtual

Set fade in parameters.

Parameters
durationDuration of fade.
gainGain to fade to.
Returns
false if not bound.

◆ set_fade_out()

virtual auto capo::ISource::set_fade_out ( std::chrono::duration< float >  duration) -> bool
pure virtual

Set fade out parameters. Target gain is implicitly 0.

Parameters
durationDuration of fade.
Returns
false if not bound.

◆ set_gain()

virtual void capo::ISource::set_gain ( float  gain)
pure virtual

◆ set_looping()

virtual void capo::ISource::set_looping ( bool  looping)
pure virtual

◆ set_pan()

virtual void capo::ISource::set_pan ( float  pan)
pure virtual

◆ set_pitch()

virtual void capo::ISource::set_pitch ( float  pitch)
pure virtual

◆ set_position()

virtual void capo::ISource::set_position ( Vec3f const &  pos)
pure virtual

◆ set_spatialized()

virtual auto capo::ISource::set_spatialized ( bool  spatialized) -> bool
pure virtual

Toggle spatialization.

returns false if not bound.

◆ stop()

virtual void capo::ISource::stop ( )
pure virtual

◆ unbind()

virtual void capo::ISource::unbind ( )
pure virtual

Detach buffer or file stream if bound.

◆ wait_until_ended()

virtual void capo::ISource::wait_until_ended ( )
pure virtual

Block until source is at end. The calling thread is blocked via atomic wait/notify (not spinlocking). Returns immediately if can_wait_until_ended() returns false.


The documentation for this class was generated from the following file: