#include "media/audio/audio_output_dispatcher_impl.h"
#include <algorithm>
#include <utility>
#include "base/compiler_specific.h"
#include "base/containers/contains.h"
#include "base/functional/bind.h"
#include "base/not_fatal_until.h"
#include "base/task/single_thread_task_runner.h"
#include "base/time/time.h"
#include "media/audio/audio_logging.h"
#include "media/audio/audio_manager.h"
#include "media/audio/audio_output_proxy.h"
namespace media {
AudioOutputDispatcherImpl::AudioOutputDispatcherImpl(
AudioManager* audio_manager,
const AudioParameters& params,
const std::string& output_device_id,
base::TimeDelta close_delay)
: … { … }
AudioOutputDispatcherImpl::~AudioOutputDispatcherImpl() { … }
AudioOutputProxy* AudioOutputDispatcherImpl::CreateStreamProxy() { … }
bool AudioOutputDispatcherImpl::OpenStream() { … }
bool AudioOutputDispatcherImpl::StartStream(
AudioOutputStream::AudioSourceCallback* callback,
AudioOutputProxy* stream_proxy) { … }
void AudioOutputDispatcherImpl::StopStream(AudioOutputProxy* stream_proxy) { … }
void AudioOutputDispatcherImpl::StreamVolumeSet(AudioOutputProxy* stream_proxy,
double volume) { … }
void AudioOutputDispatcherImpl::CloseStream(AudioOutputProxy* stream_proxy) { … }
void AudioOutputDispatcherImpl::FlushStream(AudioOutputProxy* stream_proxy) { … }
void AudioOutputDispatcherImpl::OnDeviceChange() { … }
bool AudioOutputDispatcherImpl::HasOutputProxies() const { … }
bool AudioOutputDispatcherImpl::CreateAndOpenStream() { … }
void AudioOutputDispatcherImpl::CloseAllIdleStreams() { … }
void AudioOutputDispatcherImpl::CloseIdleStreams(size_t keep_alive) { … }
void AudioOutputDispatcherImpl::StopPhysicalStream(AudioOutputStream* stream) { … }
}