Index: remoting/host/desktop_session_proxy.h |
diff --git a/remoting/host/desktop_session_proxy.h b/remoting/host/desktop_session_proxy.h |
index 14f3ff77c80fb7dd1d0e629602d5c5f9e41bda69..2cb5d9643d3b92ef39fd87a6dd9bc58332939ca8 100644 |
--- a/remoting/host/desktop_session_proxy.h |
+++ b/remoting/host/desktop_session_proxy.h |
@@ -31,7 +31,12 @@ class ChannelProxy; |
class Message; |
} // namespace IPC |
+namespace webrtc { |
+class MouseCursor; |
+} // namespace webrtc |
+ |
struct SerializedDesktopFrame; |
+struct SerializedMouseCursor; |
namespace remoting { |
@@ -41,6 +46,7 @@ class ClientSessionControl; |
class DesktopSessionConnector; |
struct DesktopSessionProxyTraits; |
class IpcAudioCapturer; |
+class IpcMouseCursorMonitor; |
class IpcVideoFrameCapturer; |
class ScreenControls; |
@@ -77,6 +83,7 @@ class DesktopSessionProxy |
scoped_ptr<InputInjector> CreateInputInjector(); |
scoped_ptr<ScreenControls> CreateScreenControls(); |
scoped_ptr<webrtc::ScreenCapturer> CreateVideoCapturer(); |
+ scoped_ptr<webrtc::MouseCursorMonitor> CreateMouseCursorMonitor(); |
std::string GetCapabilities() const; |
void SetCapabilities(const std::string& capabilities); |
@@ -109,6 +116,11 @@ class DesktopSessionProxy |
void SetVideoCapturer( |
const base::WeakPtr<IpcVideoFrameCapturer> video_capturer); |
+ // Stores |mouse_cursor_monitor| to be used to post mouse cursor changes. |
+ // Called on the |video_capture_task_runner_| thread. |
+ void SetMouseCursorMonitor( |
+ const base::WeakPtr<IpcMouseCursorMonitor>& mouse_cursor_monitor); |
+ |
// APIs used to implement the InputInjector interface. |
void InjectClipboardEvent(const protocol::ClipboardEvent& event); |
void InjectKeyEvent(const protocol::KeyEvent& event); |
@@ -145,8 +157,8 @@ class DesktopSessionProxy |
// Handles CaptureCompleted notification from the desktop session agent. |
void OnCaptureCompleted(const SerializedDesktopFrame& serialized_frame); |
- // Handles CursorShapeChanged notification from the desktop session agent. |
- void OnCursorShapeChanged(const webrtc::MouseCursorShape& cursor_shape); |
+ // Handles MouseCursor notification from the desktop session agent. |
+ void OnMouseCursor(const webrtc::MouseCursor& mouse_cursor); |
// Handles InjectClipboardEvent request from the desktop integration process. |
void OnInjectClipboardEvent(const std::string& serialized_event); |
@@ -155,9 +167,9 @@ class DesktopSessionProxy |
// passing |frame|. |
void PostCaptureCompleted(scoped_ptr<webrtc::DesktopFrame> frame); |
- // Posts OnCursorShapeChanged() to |video_capturer_| on the video thread, |
- // passing |cursor_shape|. |
- void PostCursorShape(scoped_ptr<webrtc::MouseCursorShape> cursor_shape); |
+ // Posts OnMouseCursor() to |mouse_cursor_monitor_| on the video thread, |
+ // passing |mouse_cursor|. |
+ void PostMouseCursor(scoped_ptr<webrtc::MouseCursor> mouse_cursor); |
// Sends a message to the desktop session agent. The message is silently |
// deleted if the channel is broken. |
@@ -190,6 +202,9 @@ class DesktopSessionProxy |
// Points to the video capturer receiving captured video frames. |
base::WeakPtr<IpcVideoFrameCapturer> video_capturer_; |
+ // Points to the mouse cursor monitor receiving mouse cursor changes. |
+ base::WeakPtr<IpcMouseCursorMonitor> mouse_cursor_monitor_; |
+ |
// IPC channel to the desktop session agent. |
scoped_ptr<IPC::ChannelProxy> desktop_channel_; |