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

IStream wrapper that enables subtypes to push arbitrary number of samples. More...

#include <capo/stream_pipe.hpp>

Inheritance diagram for capo::IStreamPipe:
capo::IStream capo::Polymorphic

Protected Member Functions

virtual void push_samples (std::vector< float > &out)=0
 Push desired number of samples at the end of out. Push nothing to indicate end of stream.
 

Additional Inherited Members

- Public Member Functions inherited from capo::IStream
virtual auto get_sample_rate () const -> std::uint32_t=0
 Must return positive value.
 
virtual auto get_channels () const -> std::uint8_t=0
 Must return positive value.
 
virtual auto seek_to_sample (std::size_t index) -> bool
 
virtual auto get_cursor () const -> std::optional< std::size_t >
 
virtual auto get_sample_count () const -> std::size_t
 
virtual auto set_looping (bool looping) -> bool
 Handle custom looping behavior, if applicable. Just return true / don't override for the bound Audio Source to use its own looping mechanism.
 
- 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

IStream wrapper that enables subtypes to push arbitrary number of samples.

Member Function Documentation

◆ push_samples()

virtual void capo::IStreamPipe::push_samples ( std::vector< float > &  out)
protectedpure virtual

Push desired number of samples at the end of out. Push nothing to indicate end of stream.

Parameters
outBuffer to push next samples into. Do not modify existing data!

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