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/desktop_session_proxy.h

Issue 13932020: Set the initial resolution of an RDP session to the client screen resolution if it is available. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Clang Created 7 years, 8 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
« no previous file with comments | « remoting/host/desktop_process_unittest.cc ('k') | remoting/host/desktop_session_proxy.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_DESKTOP_SESSION_PROXY_H_ 5 #ifndef REMOTING_HOST_DESKTOP_SESSION_PROXY_H_
6 #define REMOTING_HOST_DESKTOP_SESSION_PROXY_H_ 6 #define REMOTING_HOST_DESKTOP_SESSION_PROXY_H_
7 7
8 #include <map> 8 #include <map>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 class DesktopSessionProxy 63 class DesktopSessionProxy
64 : public base::RefCountedThreadSafe<DesktopSessionProxy, 64 : public base::RefCountedThreadSafe<DesktopSessionProxy,
65 DesktopSessionProxyTraits>, 65 DesktopSessionProxyTraits>,
66 public IPC::Listener { 66 public IPC::Listener {
67 public: 67 public:
68 DesktopSessionProxy( 68 DesktopSessionProxy(
69 scoped_refptr<base::SingleThreadTaskRunner> audio_capture_task_runner, 69 scoped_refptr<base::SingleThreadTaskRunner> audio_capture_task_runner,
70 scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner, 70 scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
71 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, 71 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
72 scoped_refptr<base::SingleThreadTaskRunner> video_capture_task_runner, 72 scoped_refptr<base::SingleThreadTaskRunner> video_capture_task_runner,
73 base::WeakPtr<ClientSessionControl> client_session_control); 73 base::WeakPtr<ClientSessionControl> client_session_control,
74 base::WeakPtr<DesktopSessionConnector> desktop_session_connector,
75 bool virtual_terminal);
74 76
75 // Mirrors DesktopEnvironment. 77 // Mirrors DesktopEnvironment.
76 scoped_ptr<AudioCapturer> CreateAudioCapturer(); 78 scoped_ptr<AudioCapturer> CreateAudioCapturer();
77 scoped_ptr<InputInjector> CreateInputInjector(); 79 scoped_ptr<InputInjector> CreateInputInjector();
78 scoped_ptr<ScreenControls> CreateScreenControls(); 80 scoped_ptr<ScreenControls> CreateScreenControls();
79 scoped_ptr<media::ScreenCapturer> CreateVideoCapturer(); 81 scoped_ptr<media::ScreenCapturer> CreateVideoCapturer();
82 std::string GetCapabilities() const;
83 void SetCapabilities(const std::string& capabilities);
80 84
81 // IPC::Listener implementation. 85 // IPC::Listener implementation.
82 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; 86 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
83 virtual void OnChannelConnected(int32 peer_pid) OVERRIDE; 87 virtual void OnChannelConnected(int32 peer_pid) OVERRIDE;
84 virtual void OnChannelError() OVERRIDE; 88 virtual void OnChannelError() OVERRIDE;
85 89
86 // Connects to the desktop session agent. 90 // Connects to the desktop session agent.
87 bool AttachToDesktop(base::ProcessHandle desktop_process, 91 bool AttachToDesktop(base::ProcessHandle desktop_process,
88 IPC::PlatformFileForTransit desktop_pipe); 92 IPC::PlatformFileForTransit desktop_pipe);
89 93
90 // Binds |this| to a desktop session.
91 void ConnectToDesktopSession(
92 base::WeakPtr<DesktopSessionConnector> desktop_session_connector,
93 bool virtual_terminal);
94
95 // Closes the connection to the desktop session agent and cleans up 94 // Closes the connection to the desktop session agent and cleans up
96 // the associated resources. 95 // the associated resources.
97 void DetachFromDesktop(); 96 void DetachFromDesktop();
98 97
99 // Disconnects the client session that owns |this|. 98 // Disconnects the client session that owns |this|.
100 void DisconnectSession(); 99 void DisconnectSession();
101 100
102 // Stores |audio_capturer| to be used to post captured audio packets. Called 101 // Stores |audio_capturer| to be used to post captured audio packets. Called
103 // on the |audio_capture_task_runner_| thread. 102 // on the |audio_capture_task_runner_| thread.
104 void SetAudioCapturer(const base::WeakPtr<IpcAudioCapturer>& audio_capturer); 103 void SetAudioCapturer(const base::WeakPtr<IpcAudioCapturer>& audio_capturer);
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 175
177 // Points to the audio capturer receiving captured audio packets. 176 // Points to the audio capturer receiving captured audio packets.
178 base::WeakPtr<IpcAudioCapturer> audio_capturer_; 177 base::WeakPtr<IpcAudioCapturer> audio_capturer_;
179 178
180 // Points to the client stub passed to StartInputInjector(). 179 // Points to the client stub passed to StartInputInjector().
181 scoped_ptr<protocol::ClipboardStub> client_clipboard_; 180 scoped_ptr<protocol::ClipboardStub> client_clipboard_;
182 181
183 // Used to disconnect the client session. 182 // Used to disconnect the client session.
184 base::WeakPtr<ClientSessionControl> client_session_control_; 183 base::WeakPtr<ClientSessionControl> client_session_control_;
185 184
186 // Used to bind to a desktop session and receive notifications every time 185 // Used to create a desktop session and receive notifications every time
187 // the desktop process is replaced. 186 // the desktop process is replaced.
188 base::WeakPtr<DesktopSessionConnector> desktop_session_connector_; 187 base::WeakPtr<DesktopSessionConnector> desktop_session_connector_;
189 188
190 // Points to the video capturer receiving captured video frames. 189 // Points to the video capturer receiving captured video frames.
191 base::WeakPtr<IpcVideoFrameCapturer> video_capturer_; 190 base::WeakPtr<IpcVideoFrameCapturer> video_capturer_;
192 191
193 // IPC channel to the desktop session agent. 192 // IPC channel to the desktop session agent.
194 scoped_ptr<IPC::ChannelProxy> desktop_channel_; 193 scoped_ptr<IPC::ChannelProxy> desktop_channel_;
195 194
196 // Handle of the desktop process. 195 // Handle of the desktop process.
197 base::ProcessHandle desktop_process_; 196 base::ProcessHandle desktop_process_;
198 197
199 int pending_capture_frame_requests_; 198 int pending_capture_frame_requests_;
200 199
201 typedef std::map<int, scoped_refptr<media::SharedBuffer> > SharedBuffers; 200 typedef std::map<int, scoped_refptr<media::SharedBuffer> > SharedBuffers;
202 SharedBuffers shared_buffers_; 201 SharedBuffers shared_buffers_;
203 202
204 // Keeps the desired screen resolution so it can be passed to a newly attached 203 // Keeps the desired screen resolution so it can be passed to a newly attached
205 // desktop session agent. 204 // desktop session agent.
206 ScreenResolution screen_resolution_; 205 ScreenResolution screen_resolution_;
207 206
207 // True if |this| has been connected to the desktop session.
208 bool is_desktop_session_connected_;
209
210 bool virtual_terminal_;
211
208 DISALLOW_COPY_AND_ASSIGN(DesktopSessionProxy); 212 DISALLOW_COPY_AND_ASSIGN(DesktopSessionProxy);
209 }; 213 };
210 214
211 // Destroys |DesktopSessionProxy| instances on the caller's thread. 215 // Destroys |DesktopSessionProxy| instances on the caller's thread.
212 struct DesktopSessionProxyTraits { 216 struct DesktopSessionProxyTraits {
213 static void Destruct(const DesktopSessionProxy* desktop_session_proxy); 217 static void Destruct(const DesktopSessionProxy* desktop_session_proxy);
214 }; 218 };
215 219
216 } // namespace remoting 220 } // namespace remoting
217 221
218 #endif // REMOTING_HOST_DESKTOP_SESSION_PROXY_H_ 222 #endif // REMOTING_HOST_DESKTOP_SESSION_PROXY_H_
OLDNEW
« no previous file with comments | « remoting/host/desktop_process_unittest.cc ('k') | remoting/host/desktop_session_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698