123456789101112131415161718192021222324252627282930313233343536373839 |
- // Copyright 2021 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef SERVICES_AUDIO_REFERENCE_OUTPUT_H_
- #define SERVICES_AUDIO_REFERENCE_OUTPUT_H_
- #include "base/time/time.h"
- namespace media {
- class AudioBus;
- } // namespace media
- namespace audio {
- class ReferenceOutput {
- public:
- class Listener {
- public:
- // Provides read-only access to the auio played by ReferenceOutput.
- // Must execute quickly, as it will typically be called on a realtime
- // thread; otherwise, audio glitches may occur.
- virtual void OnPlayoutData(const media::AudioBus& audio_bus,
- int sample_rate,
- base::TimeDelta audio_delay) = 0;
- protected:
- virtual ~Listener() = default;
- };
- // Starts/Stops listening to the reference output.
- virtual void StartListening(Listener* listener) = 0;
- virtual void StopListening(Listener* listener) = 0;
- protected:
- virtual ~ReferenceOutput() = default;
- };
- } // namespace audio
- #endif // SERVICES_AUDIO_REFERENCE_OUTPUT_H_
|