OLD | NEW |
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 #ifndef REMOTING_HOST_HOST_EXTENSION_SESSION_H_ | 5 #ifndef REMOTING_HOST_HOST_EXTENSION_SESSION_H_ |
6 #define REMOTING_HOST_HOST_EXTENSION_SESSION_H_ | 6 #define REMOTING_HOST_HOST_EXTENSION_SESSION_H_ |
7 | 7 |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 | 9 |
10 namespace webrtc { | 10 namespace webrtc { |
11 class ScreenCapturer; | 11 class DesktopCapturer; |
12 } | 12 } |
13 | 13 |
14 namespace remoting { | 14 namespace remoting { |
15 | 15 |
16 class ClientSessionControl; | 16 class ClientSessionControl; |
17 class VideoEncoder; | 17 class VideoEncoder; |
18 | 18 |
19 namespace protocol { | 19 namespace protocol { |
20 class ExtensionMessage; | 20 class ExtensionMessage; |
21 class ClientStub; | 21 class ClientStub; |
22 } // namespace protocol | 22 } // namespace protocol |
23 | 23 |
24 // Created by an |HostExtension| to store |ClientSession| specific state, and to | 24 // Created by an |HostExtension| to store |ClientSession| specific state, and to |
25 // handle extension messages. | 25 // handle extension messages. |
26 class HostExtensionSession { | 26 class HostExtensionSession { |
27 public: | 27 public: |
28 virtual ~HostExtensionSession() {} | 28 virtual ~HostExtensionSession() {} |
29 | 29 |
30 // Optional hook functions for HostExtensions which need to wrap or replace | 30 // Optional hook functions for HostExtensions which need to wrap or replace |
31 // parts of the video, audio, input, etc pipelines. | 31 // parts of the video, audio, input, etc pipelines. |
32 // These are called in response to ResetVideoPipeline(). | 32 // These are called in response to ResetVideoPipeline(). |
33 virtual scoped_ptr<webrtc::ScreenCapturer> OnCreateVideoCapturer( | 33 virtual scoped_ptr<webrtc::DesktopCapturer> OnCreateVideoCapturer( |
34 scoped_ptr<webrtc::ScreenCapturer> capturer); | 34 scoped_ptr<webrtc::DesktopCapturer> capturer); |
35 virtual scoped_ptr<VideoEncoder> OnCreateVideoEncoder( | 35 virtual scoped_ptr<VideoEncoder> OnCreateVideoEncoder( |
36 scoped_ptr<VideoEncoder> encoder); | 36 scoped_ptr<VideoEncoder> encoder); |
37 virtual bool ModifiesVideoPipeline() const; | 37 virtual bool ModifiesVideoPipeline() const; |
38 | 38 |
39 // Called when the host receives an |ExtensionMessage| for the |ClientSession| | 39 // Called when the host receives an |ExtensionMessage| for the |ClientSession| |
40 // associated with this |HostExtensionSession|. | 40 // associated with this |HostExtensionSession|. |
41 // It returns |true| if the message was handled, and |false| otherwise. | 41 // It returns |true| if the message was handled, and |false| otherwise. |
42 virtual bool OnExtensionMessage( | 42 virtual bool OnExtensionMessage( |
43 ClientSessionControl* client_session_control, | 43 ClientSessionControl* client_session_control, |
44 protocol::ClientStub* client_stub, | 44 protocol::ClientStub* client_stub, |
45 const protocol::ExtensionMessage& message) = 0; | 45 const protocol::ExtensionMessage& message) = 0; |
46 }; | 46 }; |
47 | 47 |
48 } // namespace remoting | 48 } // namespace remoting |
49 | 49 |
50 #endif // REMOTING_HOST_HOST_EXTENSION_SESSION_H_ | 50 #endif // REMOTING_HOST_HOST_EXTENSION_SESSION_H_ |
51 | |
OLD | NEW |