OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 CONTENT_PUBLIC_COMMON_DESKTOP_MEDIA_ID_H_ | 5 #ifndef CONTENT_PUBLIC_BROWSER_DESKTOP_MEDIA_ID_H_ |
6 #define CONTENT_PUBLIC_COMMON_DESKTOP_MEDIA_ID_H_ | 6 #define CONTENT_PUBLIC_BROWSER_DESKTOP_MEDIA_ID_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
11 #include "base/strings/string_number_conversions.h" | 11 #include "base/strings/string_number_conversions.h" |
12 #include "base/strings/string_util.h" | 12 #include "base/strings/string_util.h" |
13 #include "content/common/content_export.h" | 13 #include "content/common/content_export.h" |
14 | 14 |
| 15 namespace aura { |
| 16 class Window; |
| 17 } // namespace aura |
| 18 |
15 namespace content { | 19 namespace content { |
16 | 20 |
17 // Type used to identify desktop media sources. It's converted to string and | 21 // Type used to identify desktop media sources. It's converted to string and |
18 // stored in MediaStreamRequest::requested_video_device_id . | 22 // stored in MediaStreamRequest::requested_video_device_id . |
19 struct CONTENT_EXPORT DesktopMediaID { | 23 struct CONTENT_EXPORT DesktopMediaID { |
20 public: | 24 public: |
21 enum Type { | 25 enum Type { |
22 TYPE_NONE, | 26 TYPE_NONE, |
23 TYPE_SCREEN, | 27 TYPE_SCREEN, |
24 TYPE_WINDOW, | 28 TYPE_WINDOW, |
| 29 TYPE_AURA_WINDOW, |
25 }; | 30 }; |
26 typedef intptr_t Id; | 31 typedef intptr_t Id; |
27 | 32 |
| 33 #if defined(USE_AURA) |
| 34 // Assigns integer identifier to the |window| and returns DesktopMediaID of |
| 35 // type TYPE_AURA_WINDOW that corresponds to that |window|. |
| 36 static DesktopMediaID RegisterAuraWindow(aura::Window* window); |
| 37 |
| 38 // For DesktopMediaID of type TYPE_AURA_WINDOW returns the |window| that was |
| 39 // previously registered using RegisterAuraWindow(). |
| 40 static aura::Window* GetAuraWindowById(const DesktopMediaID& id); |
| 41 #endif // defined(USE_AURA) |
| 42 |
28 static DesktopMediaID Parse(const std::string& str); | 43 static DesktopMediaID Parse(const std::string& str); |
29 | 44 |
30 DesktopMediaID() | 45 DesktopMediaID() |
31 : type(TYPE_NONE), | 46 : type(TYPE_NONE), |
32 id(0) { | 47 id(0) { |
33 } | 48 } |
34 DesktopMediaID(Type type, Id id) | 49 DesktopMediaID(Type type, Id id) |
35 : type(type), | 50 : type(type), |
36 id(id) { | 51 id(id) { |
37 } | 52 } |
38 | 53 |
39 // Operators so that DesktopMediaID can be used with STL containers. | 54 // Operators so that DesktopMediaID can be used with STL containers. |
40 bool operator<(const DesktopMediaID& other) const { | 55 bool operator<(const DesktopMediaID& other) const { |
41 return type < other.type || (type == other.type && id < other.id); | 56 return type < other.type || (type == other.type && id < other.id); |
42 } | 57 } |
43 bool operator==(const DesktopMediaID& other) const { | 58 bool operator==(const DesktopMediaID& other) const { |
44 return type == other.type && id == other.id; | 59 return type == other.type && id == other.id; |
45 } | 60 } |
46 | 61 |
47 bool is_null() { return type == TYPE_NONE; } | 62 bool is_null() { return type == TYPE_NONE; } |
48 | 63 |
49 std::string ToString(); | 64 std::string ToString(); |
50 | 65 |
51 Type type; | 66 Type type; |
52 Id id; | 67 Id id; |
53 }; | 68 }; |
54 | 69 |
55 } // namespace content | 70 } // namespace content |
56 | 71 |
57 #endif // CONTENT_PUBLIC_COMMON_DESKTOP_MEDIA_ID_H_ | 72 #endif // CONTENT_PUBLIC_BROWSER_DESKTOP_MEDIA_ID_H_ |
OLD | NEW |