// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // AudioOutputDispatcher is a single-threaded base class that dispatches // creation and deletion of audio output streams. AudioOutputProxy objects use // this class to allocate and recycle actual audio output streams. When playback // is started, the proxy calls StartStream() to get an output stream that it // uses to play audio. When playback is stopped, the proxy returns the stream // back to the dispatcher by calling StopStream(). // // AudioManagerBase creates one specialization of AudioOutputDispatcher on the // audio thread for each possible set of audio parameters. I.e streams with // different parameters are managed independently. The AudioOutputDispatcher // instance is then deleted on the audio thread when the AudioManager shuts // down. #ifndef MEDIA_AUDIO_AUDIO_OUTPUT_DISPATCHER_H_ #define MEDIA_AUDIO_AUDIO_OUTPUT_DISPATCHER_H_ #include "base/memory/raw_ptr.h" #include "media/audio/audio_io.h" namespace media { class AudioManager; class AudioOutputProxy; // Lives and must be called on AudioManager device thread. class MEDIA_EXPORT AudioOutputDispatcher { … }; } // namespace media #endif // MEDIA_AUDIO_AUDIO_OUTPUT_DISPATCHER_H_