Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(655)

Unified Diff: remoting/host/client_session.h

Issue 398873005: Preparations for Cast Host Extension (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Clarified Cast Mode and Removed Me2Me Host Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/host/client_session.h
diff --git a/remoting/host/client_session.h b/remoting/host/client_session.h
index a86839ec5875e133f5a6f87a987829cd112aeb40..9dbfeb55ea43f8d23ac8b5ab71656df9ba9135f0 100644
--- a/remoting/host/client_session.h
+++ b/remoting/host/client_session.h
@@ -30,6 +30,7 @@
#include "remoting/protocol/input_stub.h"
#include "remoting/protocol/pairing_registry.h"
#include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h"
+#include "third_party/webrtc/modules/desktop_capture/screen_capturer.h"
namespace base {
class SingleThreadTaskRunner;
@@ -165,6 +166,27 @@ class ClientSession
return client_capabilities_.get();
}
+ // Setting enable_cast notifies ClientSession that cast-mode is
+ // supported by the host. Enabling cast mode means that if requested by
+ // the client, the ClientSession may switch from default video streaming
+ // to using WebRTC, via the CastExtension mechanism. If the ClientSession
+ // receives no request, video streaming carries on normally. This switch is
+ // currently allowed on a per-session basis, i.e., if the client requests
+ // cast mode but then wants to switch back, it must reconnect.
+ void set_enable_cast(bool enable) { enable_cast_ = enable; }
+
+ scoped_refptr<base::SingleThreadTaskRunner> network_task_runner() {
+ return network_task_runner_;
+ }
+
+ scoped_refptr<base::SingleThreadTaskRunner> video_capture_task_runner() {
Sergey Ulanov 2014/07/24 19:11:36 I'm not sure why you need these methods here. Can
aiguha 2014/07/28 17:11:56 Yes I can pass the task runners to the extension c
Sergey Ulanov 2014/07/28 17:19:06 Yes - it's the same mechanism we use in other plac
aiguha 2014/07/28 17:44:33 Done.
+ return video_capture_task_runner_;
+ }
+
+ // Stops the VideoScheduler (which stops capturing, encoding and streaming)
+ // and passes a new ScreenCapturer to the caller.
+ scoped_ptr<webrtc::ScreenCapturer> RequestScreenCapturer();
+
private:
typedef ScopedVector<HostExtensionSession> HostExtensionSessionList;
@@ -266,6 +288,9 @@ class ClientSession
// Host extension sessions, used to handle extension messages.
HostExtensionSessionList extension_sessions_;
+ // True if cast mode is enabled on the host.
+ bool enable_cast_;
+
DISALLOW_COPY_AND_ASSIGN(ClientSession);
};

Powered by Google App Engine
This is Rietveld 408576698