Only grant permissions to new extensions from sync if they have the expected version
[chromium-blink-merge.git] / chrome / browser / media / router / media_sink.h
blobd94a047603a2aa2b65273e0e13b980670ef47c8d
1 // Copyright 2015 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.
5 #ifndef CHROME_BROWSER_MEDIA_ROUTER_MEDIA_SINK_H_
6 #define CHROME_BROWSER_MEDIA_ROUTER_MEDIA_SINK_H_
8 #include <string>
10 namespace media_router {
12 // Represents a sink to which media can be routed.
13 class MediaSink {
14 public:
15 using Id = std::string;
17 enum IconType {
18 CAST,
19 CAST_AUDIO,
20 GENERIC,
21 HANGOUT
24 MediaSink(const MediaSink::Id& sink_id,
25 const std::string& name,
26 const IconType icon_type);
28 MediaSink(const MediaSink::Id& sink_id,
29 const std::string& name,
30 const IconType icon_type,
31 bool is_launching);
33 ~MediaSink();
35 const MediaSink::Id& id() const { return sink_id_; }
36 const std::string& name() const { return name_; }
37 MediaSink::IconType icon_type() const { return icon_type_; }
38 bool is_launching() const { return is_launching_; }
40 bool Equals(const MediaSink& other) const;
41 bool Empty() const;
43 private:
44 // Unique identifier for the MediaSink.
45 MediaSink::Id sink_id_;
46 // Descriptive name of the MediaSink.
47 // Optional, can use an empty string if no sink name is available.
48 std::string name_;
49 // The type of icon that corresponds with the MediaSink.
50 MediaSink::IconType icon_type_;
51 // True when the media router is creating a route to this sink.
52 bool is_launching_;
55 } // namespace media_router
57 #endif // CHROME_BROWSER_MEDIA_ROUTER_MEDIA_SINK_H_