20#include <freertos/FreeRTOS.h>
21#include <freertos/queue.h>
68class SpeakerSourceMediaPlayer;
90static constexpr uint32_t PIPELINE_TIMEOUT_IDS[] = {1, 2};
94 optional<media_player::MediaPlayerSupportedFormat>
format;
104 std::vector<std::unique_ptr<SourceBinding>>
sources;
154 void setup()
override;
155 void loop()
override;
constexpr float PROCESSOR
For components that use data from sensors like displays.
const char int const __FlashStringHelper * format
speaker::Speaker * speaker
std::vector< size_t > shuffle_indices
uint32_t playlist_delay_ms
optional< media_player::MediaPlayerSupportedFormat > format
bool is_configured() const
Check if this pipeline is configured (has a speaker assigned)
media_source::MediaSource * last_source
media_source::MediaSource * pending_source
std::atomic< uint32_t > pending_frames
std::vector< std::unique_ptr< SourceBinding > > sources
std::vector< std::string > playlist
std::atomic< media_source::MediaSource * > active_source
media_source::MediaSource * stopping_source
Per-source listener binding that captures the source pointer at registration time.
void request_play_uri(const std::string &uri) override
void request_mute(bool is_muted) override
SourceBinding(SpeakerSourceMediaPlayer *player, media_source::MediaSource *source, uint8_t pipeline)
SpeakerSourceMediaPlayer * player
void request_volume(float volume) override
void report_state(media_source::MediaSourceState state) override
size_t write_audio(const uint8_t *data, size_t length, uint32_t timeout_ms, const audio::AudioStreamInfo &stream_info) override
media_source::MediaSource * source