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.
5 #include "remoting/host/ipc_mouse_cursor_monitor.h"
7 #include "remoting/host/desktop_session_proxy.h"
8 #include "third_party/webrtc/modules/desktop_capture/mouse_cursor.h"
12 IpcMouseCursorMonitor::IpcMouseCursorMonitor(
13 scoped_refptr<DesktopSessionProxy> desktop_session_proxy)
15 desktop_session_proxy_(desktop_session_proxy),
19 IpcMouseCursorMonitor::~IpcMouseCursorMonitor() {}
21 void IpcMouseCursorMonitor::Init(Callback* callback, Mode mode) {
24 DCHECK_EQ(webrtc::MouseCursorMonitor::SHAPE_ONLY, mode);
26 desktop_session_proxy_->SetMouseCursorMonitor(weak_factory_.GetWeakPtr());
29 void IpcMouseCursorMonitor::Capture() {
30 // Ignore. DesktopSessionAgent will capture the cursor at the same time it
31 // captures a screen frame when |IpcVideoFrameCapturer::Capture()| is called.
32 // This saves an IPC roundtrip.
35 void IpcMouseCursorMonitor::OnMouseCursor(
36 scoped_ptr<webrtc::MouseCursor> cursor) {
38 callback_->OnMouseCursor(cursor.release());
41 } // namespace remoting