Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1644)

Unified Diff: chrome/browser/media/router/media_sink.h

Issue 2675033002: [Media Router] Add MediaSink subtypes (Closed)
Patch Set: add TypedMediaSink class Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/router/media_sink.h
diff --git a/chrome/browser/media/router/media_sink.h b/chrome/browser/media/router/media_sink.h
index e12b6b16f55de968635b3955b6f2484c8dfe3d5e..f0c211165b4fedb70b431b58ca9df8a292353c4f 100644
--- a/chrome/browser/media/router/media_sink.h
+++ b/chrome/browser/media/router/media_sink.h
@@ -7,6 +7,7 @@
#include <string>
+#include "base/optional.h"
#include "third_party/icu/source/common/unicode/uversion.h"
namespace U_ICU_NAMESPACE {
@@ -16,6 +17,7 @@ class Collator;
namespace media_router {
// Represents a sink to which media can be routed.
+// TODO(zhaobin): convert MediaSink into a struct.
class MediaSink {
public:
using Id = std::string;
@@ -31,24 +33,48 @@ class MediaSink {
GENERIC
};
+ // SinkType indicates if sink is discovered by DIAL / CAST / other (e.g.
+ // cloud) media sink services. Each SinkType value, with the exception of
+ // GENERIC, corresponds to a subtype of MediaSink.
+ enum class SinkType {
imcheng 2017/02/11 01:00:21 Can be removed.
zhaobin 2017/02/14 02:08:49 Done.
+ DIAL, // DialMediaSink
+ CAST, // CastMediaSink
+ GENERIC
+ };
+
MediaSink(const MediaSink::Id& sink_id,
const std::string& name,
const IconType icon_type);
+ MediaSink();
MediaSink(const MediaSink& other);
- ~MediaSink();
+ virtual ~MediaSink();
imcheng 2017/02/11 01:00:21 revert virtual
zhaobin 2017/02/14 02:08:49 Done.
+ SinkType type() const { return type_; }
+ void set_sink_id(const MediaSink::Id& sink_id) { sink_id_ = sink_id; }
const MediaSink::Id& id() const { return sink_id_; }
+
+ void set_name(const std::string& name) { name_ = name; }
const std::string& name() const { return name_; }
void set_description(const std::string& description) {
description_ = description;
}
- const std::string& description() const { return description_; }
+ const base::Optional<std::string>& description() const {
+ return description_;
+ }
void set_domain(const std::string& domain) { domain_ = domain; }
- const std::string& domain() const { return domain_; }
+ const base::Optional<std::string>& domain() const { return domain_; }
+ void set_icon_type(IconType icon_type) { icon_type_ = icon_type; }
IconType icon_type() const { return icon_type_; }
+ // void set_model_name(const std::string& model_name) {
imcheng 2017/02/11 01:00:21 Remove
zhaobin 2017/02/14 02:08:48 Done.
+ // model_name_ = model_name;
+ // }
+ // const base::Optional<std::string>& model_name() const { return model_name_;
+ // }
+
+ // This method only compares IDs.
bool Equals(const MediaSink& other) const;
// Compares |this| to |other| first by their icon types, then their names
@@ -63,6 +89,15 @@ class MediaSink {
}
};
+ protected:
imcheng 2017/02/11 01:00:21 Remove ctor and SinkType
zhaobin 2017/02/14 02:08:48 Done.
+ MediaSink(const MediaSink::Id& sink_id,
+ const std::string& name,
+ const IconType icon_type,
+ const SinkType sink_type);
+
+ // Type of the MediaSink.
+ SinkType type_;
+
private:
// Unique identifier for the MediaSink.
MediaSink::Id sink_id_;
@@ -70,14 +105,15 @@ class MediaSink {
// Descriptive name of the MediaSink.
std::string name_;
- // Optional description of the MediaSink.
- std::string description_;
+ base::Optional<std::string> description_;
- // Optional domain of the MediaSink.
- std::string domain_;
+ base::Optional<std::string> domain_;
// The type of icon that corresponds with the MediaSink.
IconType icon_type_;
+
+ // Model name of the sink, if it represents a physical device.
+ base::Optional<std::string> model_name_;
imcheng 2017/02/11 01:00:21 This can be removed as it is now in TypedMediaSink
zhaobin 2017/02/14 02:08:48 Done.
};
} // namespace media_router

Powered by Google App Engine
This is Rietveld 408576698