| 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_;
|
|
|