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

Side by Side Diff: remoting/host/host_extension_session_manager.cc

Issue 468613002: Readability review. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "remoting/host/host_extension_session_manager.h" 5 #include "remoting/host/host_extension_session_manager.h"
6 6
7 #include "remoting/base/capabilities.h" 7 #include "remoting/base/capabilities.h"
8 #include "remoting/codec/video_encoder.h" 8 #include "remoting/codec/video_encoder.h"
9 #include "remoting/host/client_session_control.h" 9 #include "remoting/host/client_session_control.h"
10 #include "remoting/host/host_extension.h" 10 #include "remoting/host/host_extension.h"
11 #include "remoting/host/host_extension_session.h" 11 #include "remoting/host/host_extension_session.h"
12 #include "third_party/webrtc/modules/desktop_capture/desktop_capturer.h" 12 #include "third_party/webrtc/modules/desktop_capture/desktop_capturer.h"
13 namespace remoting { 13 namespace remoting {
14 14
15 HostExtensionSessionManager::HostExtensionSessionManager( 15 HostExtensionSessionManager::HostExtensionSessionManager(
16 const std::vector<HostExtension*>& extensions, 16 const std::vector<HostExtension*>& extensions,
17 ClientSessionControl* client_session_control) 17 ClientSessionControl* client_session_control)
18 : client_session_control_(client_session_control), 18 : client_session_control_(client_session_control),
19 client_stub_(NULL), 19 client_stub_(NULL),
20 extensions_(extensions) { 20 extensions_(extensions) {
21 } 21 }
22 22
23 HostExtensionSessionManager::~HostExtensionSessionManager() { 23 HostExtensionSessionManager::~HostExtensionSessionManager() {
24 } 24 }
25 25
26 std::string HostExtensionSessionManager::GetCapabilities() { 26 std::string HostExtensionSessionManager::GetCapabilities() const {
27 std::string capabilities; 27 std::string capabilities;
28 for (HostExtensionList::const_iterator extension = extensions_.begin(); 28 for (HostExtensions::const_iterator extension = extensions_.begin();
29 extension != extensions_.end(); ++extension) { 29 extension != extensions_.end(); ++extension) {
30 std::string capability = (*extension)->capability(); 30 const std::string& capability = (*extension)->capability();
31 if (capability.empty()) { 31 if (capability.empty()) {
32 continue; 32 continue;
33 } 33 }
34 if (!capabilities.empty()) { 34 if (!capabilities.empty()) {
35 capabilities.append(" "); 35 capabilities.append(" ");
36 } 36 }
37 capabilities.append(capability); 37 capabilities.append(capability);
38 } 38 }
39 return capabilities; 39 return capabilities;
40 } 40 }
41 41
42 scoped_ptr<webrtc::DesktopCapturer> 42 void HostExtensionSessionManager::OnCreateVideoCapturer(
43 HostExtensionSessionManager::OnCreateVideoCapturer( 43 scoped_ptr<webrtc::DesktopCapturer>* capturer) {
44 scoped_ptr<webrtc::DesktopCapturer> capturer) { 44 for (HostExtensionSessions::const_iterator it = extension_sessions_.begin();
45 for(HostExtensionSessionList::const_iterator it = extension_sessions_.begin();
46 it != extension_sessions_.end(); ++it) { 45 it != extension_sessions_.end(); ++it) {
47 if ((*it)->ModifiesVideoPipeline()) { 46 if ((*it)->ModifiesVideoPipeline()) {
48 capturer = (*it)->OnCreateVideoCapturer(capturer.Pass()); 47 (*it)->OnCreateVideoCapturer(capturer);
49 } 48 }
50 } 49 }
51 return capturer.Pass();
52 } 50 }
53 51
54 scoped_ptr<VideoEncoder> HostExtensionSessionManager::OnCreateVideoEncoder( 52 void HostExtensionSessionManager::OnCreateVideoEncoder(
55 scoped_ptr<VideoEncoder> encoder) { 53 scoped_ptr<VideoEncoder>* encoder) {
56 for(HostExtensionSessionList::const_iterator it = extension_sessions_.begin(); 54 for (HostExtensionSessions::const_iterator it = extension_sessions_.begin();
57 it != extension_sessions_.end(); ++it) { 55 it != extension_sessions_.end(); ++it) {
58 if ((*it)->ModifiesVideoPipeline()) { 56 if ((*it)->ModifiesVideoPipeline()) {
59 encoder = (*it)->OnCreateVideoEncoder(encoder.Pass()); 57 (*it)->OnCreateVideoEncoder(encoder);
60 } 58 }
61 } 59 }
62 return encoder.Pass();
63 } 60 }
64 61
65 void HostExtensionSessionManager::OnNegotiatedCapabilities( 62 void HostExtensionSessionManager::OnNegotiatedCapabilities(
66 protocol::ClientStub* client_stub, 63 protocol::ClientStub* client_stub,
67 const std::string& capabilities) { 64 const std::string& capabilities) {
68 DCHECK(client_stub); 65 DCHECK(client_stub);
69 DCHECK(!client_stub_); 66 DCHECK(!client_stub_);
70 67
71 client_stub_ = client_stub; 68 client_stub_ = client_stub;
72 69
73 bool reset_video_pipeline = false; 70 bool reset_video_pipeline = false;
74 71
75 for (HostExtensionList::const_iterator extension = extensions_.begin(); 72 for (HostExtensions::const_iterator extension = extensions_.begin();
76 extension != extensions_.end(); ++extension) { 73 extension != extensions_.end(); ++extension) {
77 // If the extension requires a capability that was not negotiated then do 74 // If the extension requires a capability that was not negotiated then do
78 // not instantiate it. 75 // not instantiate it.
79 if (!(*extension)->capability().empty() && 76 if (!(*extension)->capability().empty() &&
80 !HasCapability(capabilities, (*extension)->capability())) { 77 !HasCapability(capabilities, (*extension)->capability())) {
81 continue; 78 continue;
82 } 79 }
83 80
84 scoped_ptr<HostExtensionSession> extension_session = 81 scoped_ptr<HostExtensionSession> extension_session =
85 (*extension)->CreateExtensionSession( 82 (*extension)->CreateExtensionSession(
86 client_session_control_, client_stub_); 83 client_session_control_, client_stub_);
87 DCHECK(extension_session); 84 DCHECK(extension_session);
88 85
89 if (extension_session->ModifiesVideoPipeline()) { 86 if (extension_session->ModifiesVideoPipeline()) {
90 reset_video_pipeline = true; 87 reset_video_pipeline = true;
91 } 88 }
92 89
93 extension_sessions_.push_back(extension_session.release()); 90 extension_sessions_.push_back(extension_session.release());
94 } 91 }
95 92
96 // Re-create the video pipeline if one or more extensions need to modify it. 93 // Re-create the video pipeline if one or more extensions need to modify it.
97 if (reset_video_pipeline) { 94 if (reset_video_pipeline) {
98 client_session_control_->ResetVideoPipeline(); 95 client_session_control_->ResetVideoPipeline();
99 } 96 }
100 } 97 }
101 98
102 bool HostExtensionSessionManager::OnExtensionMessage( 99 bool HostExtensionSessionManager::OnExtensionMessage(
103 const protocol::ExtensionMessage& message) { 100 const protocol::ExtensionMessage& message) {
104 for(HostExtensionSessionList::const_iterator it = extension_sessions_.begin(); 101 for(HostExtensionSessions::const_iterator it = extension_sessions_.begin();
105 it != extension_sessions_.end(); ++it) { 102 it != extension_sessions_.end(); ++it) {
106 if ((*it)->OnExtensionMessage( 103 if ((*it)->OnExtensionMessage(
107 client_session_control_, client_stub_, message)) { 104 client_session_control_, client_stub_, message)) {
108 return true; 105 return true;
109 } 106 }
110 } 107 }
111 return false; 108 return false;
112 } 109 }
113 110
114 } // namespace remoting 111 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/host_extension_session_manager.h ('k') | remoting/host/host_extension_session_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698