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