summaryrefslogtreecommitdiff
path: root/libcef/browser/media_router/media_sink_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'libcef/browser/media_router/media_sink_impl.h')
-rw-r--r--libcef/browser/media_router/media_sink_impl.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/libcef/browser/media_router/media_sink_impl.h b/libcef/browser/media_router/media_sink_impl.h
new file mode 100644
index 00000000..20dbdefd
--- /dev/null
+++ b/libcef/browser/media_router/media_sink_impl.h
@@ -0,0 +1,43 @@
+// Copyright (c) 2020 The Chromium Embedded Framework Authors. All rights
+// reserved. Use of this source code is governed by a BSD-style license that
+// can be found in the LICENSE file.
+
+#ifndef CEF_LIBCEF_BROWSER_MEDIA_ROUTER_MEDIA_SINK_IMPL_H_
+#define CEF_LIBCEF_BROWSER_MEDIA_ROUTER_MEDIA_SINK_IMPL_H_
+#pragma once
+
+#include "include/cef_media_router.h"
+
+#include "components/media_router/common/media_sink.h"
+
+// Implementation of the CefMediaSink interface. May be created on any thread.
+class CefMediaSinkImpl : public CefMediaSink {
+ public:
+ explicit CefMediaSinkImpl(const media_router::MediaSink& sink);
+ CefMediaSinkImpl(const media_router::MediaSink::Id& sink_id,
+ const std::string& sink_name,
+ media_router::mojom::MediaRouteProviderId provider_id);
+
+ CefMediaSinkImpl(const CefMediaSinkImpl&) = delete;
+ CefMediaSinkImpl& operator=(const CefMediaSinkImpl&) = delete;
+
+ // CefMediaSink methods.
+ CefString GetId() override;
+ CefString GetName() override;
+ IconType GetIconType() override;
+ void GetDeviceInfo(
+ CefRefPtr<CefMediaSinkDeviceInfoCallback> callback) override;
+ bool IsCastSink() override;
+ bool IsDialSink() override;
+ bool IsCompatibleWith(CefRefPtr<CefMediaSource> source) override;
+
+ const media_router::MediaSink& sink() const { return sink_; }
+
+ private:
+ // Read-only after creation.
+ const media_router::MediaSink sink_;
+
+ IMPLEMENT_REFCOUNTING(CefMediaSinkImpl);
+};
+
+#endif // CEF_LIBCEF_BROWSER_MEDIA_ROUTER_MEDIA_SINK_IMPL_H_