blob: f07bc516d6dea0ecab66401893d52a6f352724b1 [file] [log] [blame]
[email protected]da457fc2013-03-14 16:32:121// 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
3// found in the LICENSE file.
4
5#ifndef REMOTING_HOST_ME2ME_DESKTOP_ENVIRONMENT_H_
6#define REMOTING_HOST_ME2ME_DESKTOP_ENVIRONMENT_H_
7
8#include "remoting/host/basic_desktop_environment.h"
9
10namespace remoting {
11
12// Same as BasicDesktopEnvironment but supports desktop resizing and X DAMAGE
13// notifications on Linux.
14class Me2MeDesktopEnvironment : public BasicDesktopEnvironment {
15 public:
16 virtual ~Me2MeDesktopEnvironment();
17
18 // DesktopEnvironment interface.
19 virtual scoped_ptr<SessionController> CreateSessionController() OVERRIDE;
20 virtual scoped_ptr<media::ScreenCapturer> CreateVideoCapturer(
21 scoped_refptr<base::SingleThreadTaskRunner> capture_task_runner,
22 scoped_refptr<base::SingleThreadTaskRunner> encode_task_runner) OVERRIDE;
23
24 protected:
25 friend class Me2MeDesktopEnvironmentFactory;
26 Me2MeDesktopEnvironment();
27
28 private:
29 DISALLOW_COPY_AND_ASSIGN(Me2MeDesktopEnvironment);
30};
31
32// Used to create |Me2MeDesktopEnvironment| instances.
33class Me2MeDesktopEnvironmentFactory : public BasicDesktopEnvironmentFactory {
34 public:
35 Me2MeDesktopEnvironmentFactory();
36 virtual ~Me2MeDesktopEnvironmentFactory();
37
38 // DesktopEnvironmentFactory interface.
39 virtual scoped_ptr<DesktopEnvironment> Create(
40 const std::string& client_jid,
41 const base::Closure& disconnect_callback) OVERRIDE;
42
43 private:
44 DISALLOW_COPY_AND_ASSIGN(Me2MeDesktopEnvironmentFactory);
45};
46
47} // namespace remoting
48
49#endif // REMOTING_HOST_ME2ME_DESKTOP_ENVIRONMENT_H_