| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef REMOTING_HOST_CLIENT_SESSION_CONTROL_H_ |
| #define REMOTING_HOST_CLIENT_SESSION_CONTROL_H_ |
| |
| #include "base/basictypes.h" |
| |
| namespace webrtc { |
| class DesktopVector; |
| } // namespace webrtc |
| |
| namespace remoting { |
| |
| // Allows the desktop environment to disconnect the client session and |
| // to control the remote input handling (i.e. disable, enable, and pause |
| // temporarily if the local mouse movements are detected). |
| class ClientSessionControl { |
| public: |
| virtual ~ClientSessionControl() {} |
| |
| // Returns the authenticated JID of the client session. |
| virtual const std::string& client_jid() const = 0; |
| |
| // Disconnects the client session, tears down transport resources and stops |
| // scheduler components. |
| virtual void DisconnectSession() = 0; |
| |
| // Called when local mouse movement is detected. |
| virtual void OnLocalMouseMoved(const webrtc::DesktopVector& position) = 0; |
| |
| // Disables or enables the remote input in the client session. |
| virtual void SetDisableInputs(bool disable_inputs) = 0; |
| |
| // Resets the video pipeline, including re-creating the capturer & encoder. |
| virtual void ResetVideoPipeline() = 0; |
| }; |
| |
| } // namespace remoting |
| |
| #endif // REMOTING_HOST_CLIENT_SESSION_CONTROL_H_ |