Index: remoting/host/desktop_session_agent.h |
diff --git a/remoting/host/desktop_session_agent.h b/remoting/host/desktop_session_agent.h |
index 0421eeb1a5aff90bacd359b984b404fc9070e220..e5893d0e8908c5df93d770a915206c5dbfe69410 100644 |
--- a/remoting/host/desktop_session_agent.h |
+++ b/remoting/host/desktop_session_agent.h |
@@ -18,6 +18,7 @@ |
#include "remoting/host/client_session_control.h" |
#include "remoting/protocol/clipboard_stub.h" |
#include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h" |
+#include "third_party/webrtc/modules/desktop_capture/mouse_cursor_monitor.h" |
#include "third_party/webrtc/modules/desktop_capture/screen_capturer.h" |
namespace IPC { |
@@ -47,7 +48,7 @@ class DesktopSessionAgent |
: public base::RefCountedThreadSafe<DesktopSessionAgent>, |
public IPC::Listener, |
public webrtc::DesktopCapturer::Callback, |
- public webrtc::ScreenCapturer::MouseShapeObserver, |
+ public webrtc::MouseCursorMonitor::Callback, |
public ClientSessionControl { |
public: |
class Delegate { |
@@ -78,9 +79,11 @@ class DesktopSessionAgent |
virtual webrtc::SharedMemory* CreateSharedMemory(size_t size) OVERRIDE; |
virtual void OnCaptureCompleted(webrtc::DesktopFrame* frame) OVERRIDE; |
- // webrtc::ScreenCapturer::MouseShapeObserver implementation. |
- virtual void OnCursorShapeChanged( |
- webrtc::MouseCursorShape* cursor_shape) OVERRIDE; |
+ // webrtc::MouseCursorMonitor::Callback implementation. |
+ virtual void OnMouseCursor(webrtc::MouseCursor* cursor) OVERRIDE; |
+ virtual void OnMouseCursorPosition( |
+ webrtc::MouseCursorMonitor::CursorState state, |
+ const webrtc::DesktopVector& position) OVERRIDE; |
// Forwards a local clipboard event though the IPC channel to the network |
// process. |
@@ -139,11 +142,13 @@ class DesktopSessionAgent |
// Posted to |audio_capture_task_runner_| to stop the audio capturer. |
void StopAudioCapturer(); |
- // Posted to |video_capture_task_runner_| to start the video capturer. |
- void StartVideoCapturer(); |
+ // Posted to |video_capture_task_runner_| to start the video capturer and the |
+ // mouse cursor monitor. |
+ void StartVideoCapturerAndMouseMonitor(); |
- // Posted to |video_capture_task_runner_| to stop the video capturer. |
- void StopVideoCapturer(); |
+ // Posted to |video_capture_task_runner_| to stop the video capturer and the |
+ // mouse cursor monitor. |
+ void StopVideoCapturerAndMouseMonitor(); |
private: |
class SharedBuffer; |
@@ -217,6 +222,9 @@ class DesktopSessionAgent |
// Captures the screen. |
scoped_ptr<webrtc::ScreenCapturer> video_capturer_; |
+ // Captures mouse shapes. |
+ scoped_ptr<webrtc::MouseCursorMonitor> mouse_cursor_monitor_; |
+ |
// Keep reference to the last frame sent to make sure shared buffer is alive |
// before it's received. |
scoped_ptr<webrtc::DesktopFrame> last_frame_; |