#include "services/audio/output_device_mixer_manager.h"
#include "base/check.h"
#include "base/logging.h"
#include "base/memory/raw_ptr.h"
#include "base/metrics/histogram_functions.h"
#include "base/trace_event/trace_event.h"
#include "media/audio/audio_io.h"
#include "media/audio/audio_manager.h"
#include "media/base/audio_latency.h"
#include "services/audio/audio_manager_power_user.h"
#include "services/audio/device_listener_output_stream.h"
#include "services/audio/output_device_mixer.h"
namespace {
const char kNormalizedDefaultDeviceId[] = …;
std::string NormalizeIfDefault(const std::string& device_id) { … }
enum class StreamCreation { … };
}
namespace audio {
OutputDeviceMixerManager::OutputDeviceMixerManager(
media::AudioManager* audio_manager,
OutputDeviceMixer::CreateCallback create_mixer_callback)
: … { … }
OutputDeviceMixerManager::~OutputDeviceMixerManager() { … }
media::AudioOutputStream* OutputDeviceMixerManager::MakeOutputStream(
const std::string& device_id,
const media::AudioParameters& params,
base::OnceClosure close_stream_on_device_change) { … }
void OutputDeviceMixerManager::OnDeviceChange() { … }
void OutputDeviceMixerManager::StartNewListener(
ReferenceOutput::Listener* listener,
const std::string& listener_device_id) { … }
void OutputDeviceMixerManager::StartListening(
ReferenceOutput::Listener* listener,
const std::string& output_device_id) { … }
void OutputDeviceMixerManager::StopListening(
ReferenceOutput::Listener* listener) { … }
std::string OutputDeviceMixerManager::ToMixerDeviceId(
const std::string& device_id) { … }
OutputDeviceMixer* OutputDeviceMixerManager::FindMixer(
const std::string& device_id) { … }
OutputDeviceMixer* OutputDeviceMixerManager::AddMixer(
const std::string& device_id) { … }
base::OnceClosure OutputDeviceMixerManager::GetOnDeviceChangeCallback() { … }
media::AudioOutputStream* OutputDeviceMixerManager::CreateMixerOwnedStream(
const std::string& device_id,
const media::AudioParameters& params) { … }
media::AudioOutputStream* OutputDeviceMixerManager::CreateDeviceListenerStream(
base::OnceClosure on_device_change_callback,
const std::string& device_id,
const media::AudioParameters& params) { … }
bool OutputDeviceMixerManager::IsNormalizedIfDefault(
const std::string& device_id) { … }
}