#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "remoting/protocol/webrtc_audio_source_adapter.h"
#include <utility>
#include "base/check_op.h"
#include "base/functional/bind.h"
#include "base/observer_list.h"
#include "base/synchronization/lock.h"
#include "base/task/single_thread_task_runner.h"
#include "base/threading/thread_checker.h"
#include "base/time/time.h"
#include "remoting/proto/audio.pb.h"
#include "remoting/protocol/audio_source.h"
namespace remoting::protocol {
static const int kChannels = …;
static const int kBytesPerSample = …;
static constexpr base::TimeDelta kAudioFrameDuration = …;
class WebrtcAudioSourceAdapter::Core { … };
WebrtcAudioSourceAdapter::Core::Core() { … }
WebrtcAudioSourceAdapter::Core::~Core() { … }
void WebrtcAudioSourceAdapter::Core::Start(
std::unique_ptr<AudioSource> audio_source) { … }
void WebrtcAudioSourceAdapter::Core::Pause(bool pause) { … }
void WebrtcAudioSourceAdapter::Core::AddSink(
webrtc::AudioTrackSinkInterface* sink) { … }
void WebrtcAudioSourceAdapter::Core::RemoveSink(
webrtc::AudioTrackSinkInterface* sink) { … }
void WebrtcAudioSourceAdapter::Core::OnAudioPacket(
std::unique_ptr<AudioPacket> packet) { … }
WebrtcAudioSourceAdapter::WebrtcAudioSourceAdapter(
scoped_refptr<base::SingleThreadTaskRunner> audio_task_runner)
: … { … }
WebrtcAudioSourceAdapter::~WebrtcAudioSourceAdapter() { … }
void WebrtcAudioSourceAdapter::Start(
std::unique_ptr<AudioSource> audio_source) { … }
void WebrtcAudioSourceAdapter::Pause(bool pause) { … }
WebrtcAudioSourceAdapter::SourceState WebrtcAudioSourceAdapter::state() const { … }
bool WebrtcAudioSourceAdapter::remote() const { … }
void WebrtcAudioSourceAdapter::RegisterAudioObserver(AudioObserver* observer) { … }
void WebrtcAudioSourceAdapter::UnregisterAudioObserver(
AudioObserver* observer) { … }
void WebrtcAudioSourceAdapter::AddSink(webrtc::AudioTrackSinkInterface* sink) { … }
void WebrtcAudioSourceAdapter::RemoveSink(
webrtc::AudioTrackSinkInterface* sink) { … }
void WebrtcAudioSourceAdapter::RegisterObserver(
webrtc::ObserverInterface* observer) { … }
void WebrtcAudioSourceAdapter::UnregisterObserver(
webrtc::ObserverInterface* observer) { … }
}