ipc_mouse_cursor_monitor.cc 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Copyright 2014 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_mouse_cursor_monitor.h"
  5. #include "remoting/host/desktop_session_proxy.h"
  6. #include "third_party/webrtc/modules/desktop_capture/mouse_cursor.h"
  7. namespace remoting {
  8. IpcMouseCursorMonitor::IpcMouseCursorMonitor(
  9. scoped_refptr<DesktopSessionProxy> desktop_session_proxy)
  10. : callback_(nullptr), desktop_session_proxy_(desktop_session_proxy) {}
  11. IpcMouseCursorMonitor::~IpcMouseCursorMonitor() = default;
  12. void IpcMouseCursorMonitor::Init(Callback* callback, Mode mode) {
  13. DCHECK(!callback_);
  14. DCHECK(callback);
  15. callback_ = callback;
  16. desktop_session_proxy_->SetMouseCursorMonitor(weak_factory_.GetWeakPtr());
  17. }
  18. void IpcMouseCursorMonitor::Capture() {
  19. // Ignore. DesktopSessionAgent will capture the cursor at the same time it
  20. // captures a screen frame when |IpcVideoFrameCapturer::Capture()| is called.
  21. // This saves an IPC roundtrip.
  22. }
  23. void IpcMouseCursorMonitor::OnMouseCursor(
  24. std::unique_ptr<webrtc::MouseCursor> cursor) {
  25. DCHECK(callback_);
  26. callback_->OnMouseCursor(cursor.release());
  27. }
  28. } // namespace remoting