28#ifndef ASYNC_AUDIO_SELECTOR_INCLUDED
29#define ASYNC_AUDIO_SELECTOR_INCLUDED
209 STATE_IDLE, STATE_WRITING, STATE_STOPPED, STATE_FLUSHING
213 typedef std::map<Async::AudioSource *, Branch *> BranchMap;
215 BranchMap m_branch_map;
216 Branch * m_selected_branch;
217 StreamState m_stream_state;
221 void selectBranch(
Branch *branch);
222 Branch *selectedBranch(
void)
const {
return m_selected_branch; }
223 void selectHighestPrioActiveBranch(
bool clear_if_no_active);
224 int branchWriteSamples(
const float *samples,
int count);
225 void branchFlushSamples(
void);
This file contains the base class for an audio source.
This class is used to select one of many audio streams.
~AudioSelector(void)
Destructor.
virtual void allSamplesFlushed(void)
The registered sink has flushed all samples.
void disableAutoSelect(AudioSource *source)
Disable autoselection on the given source.
bool autoSelectEnabled(const AudioSource *source) const
Find out if auto select is enabled or not for the given source.
void addSource(AudioSource *source)
Add an audio source to the selector.
void setSelectionPrio(AudioSource *source, int prio)
Set the prio to be used for selection.
AudioSource * selectedSource(void) const
Find out which source that is currently selected.
virtual void resumeOutput(void)
Resume audio output to the sink.
void enableAutoSelect(AudioSource *source, int prio)
Enable autoselection on the given source.
void selectSource(AudioSource *source)
Select one of the previously added audio sources.
void setFlushWait(AudioSource *source, bool flush_wait)
Set if this souce want to wait for allSamplesFlushed.
AudioSelector(void)
Default constuctor.
void removeSource(AudioSource *source)
Remove a previously added audio source from the selector.
The base class for an audio source.
Namespace for the asynchronous programming classes.