ipc_audio_capturer.cc 938 B

123456789101112131415161718192021222324252627282930313233
  1. // Copyright (c) 2012 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "remoting/host/ipc_audio_capturer.h"
  5. #include <utility>
  6. #include "remoting/host/desktop_session_proxy.h"
  7. #include "remoting/proto/audio.pb.h"
  8. namespace remoting {
  9. IpcAudioCapturer::IpcAudioCapturer(
  10. scoped_refptr<DesktopSessionProxy> desktop_session_proxy)
  11. : desktop_session_proxy_(desktop_session_proxy) {}
  12. IpcAudioCapturer::~IpcAudioCapturer() = default;
  13. bool IpcAudioCapturer::Start(const PacketCapturedCallback& callback) {
  14. DCHECK(callback_.is_null());
  15. DCHECK(!callback.is_null());
  16. callback_ = callback;
  17. desktop_session_proxy_->SetAudioCapturer(weak_factory_.GetWeakPtr());
  18. return true;
  19. }
  20. void IpcAudioCapturer::OnAudioPacket(std::unique_ptr<AudioPacket> packet) {
  21. callback_.Run(std::move(packet));
  22. }
  23. } // namespace remoting