// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef SERVICES_AUDIO_OUTPUT_DEVICE_MIXER_H_ #define SERVICES_AUDIO_OUTPUT_DEVICE_MIXER_H_ #include <memory> #include <string> #include "base/functional/callback.h" #include "base/task/single_thread_task_runner.h" #include "media/base/audio_parameters.h" #include "services/audio/reference_output.h" namespace media { class AudioOutputStream; } namespace audio { // Manages mixing and rendering of all audio outputs going to a specific output // device. As ReferenceOutput provides to Listeners an ability to listen to the // audio mix being rendered. If there is at least one listener connected, the // mixer is mixing all the audio output and rendering the mix as a single audio // output stream. Otherwise the streams are rendered independently. class OutputDeviceMixer : public ReferenceOutput { … }; } // namespace audio #endif // SERVICES_AUDIO_OUTPUT_DEVICE_MIXER_H_