mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	Add "cef/" prefix for CEF #includes in libcef/ directory. Sort #includes by following https://google.github.io/styleguide/cppguide.html#Names_and_Order_of_Includes
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // 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_ROUTER_IMPL_H_
 | |
| #define CEF_LIBCEF_BROWSER_MEDIA_ROUTER_MEDIA_ROUTER_IMPL_H_
 | |
| #pragma once
 | |
| 
 | |
| #include "cef/include/cef_media_router.h"
 | |
| #include "cef/libcef/browser/browser_context.h"
 | |
| #include "components/media_router/common/mojom/media_router.mojom.h"
 | |
| 
 | |
| class CefRegistrationImpl;
 | |
| 
 | |
| // Implementation of the CefMediaRouter interface. May be created on any thread.
 | |
| class CefMediaRouterImpl : public CefMediaRouter {
 | |
|  public:
 | |
|   CefMediaRouterImpl();
 | |
| 
 | |
|   CefMediaRouterImpl(const CefMediaRouterImpl&) = delete;
 | |
|   CefMediaRouterImpl& operator=(const CefMediaRouterImpl&) = delete;
 | |
| 
 | |
|   // Called on the UI thread after object creation and before any other object
 | |
|   // methods are executed on the UI thread.
 | |
|   void Initialize(const CefBrowserContext::Getter& browser_context_getter,
 | |
|                   CefRefPtr<CefCompletionCallback> callback);
 | |
| 
 | |
|   // CefMediaRouter methods.
 | |
|   CefRefPtr<CefRegistration> AddObserver(
 | |
|       CefRefPtr<CefMediaObserver> observer) override;
 | |
|   CefRefPtr<CefMediaSource> GetSource(const CefString& urn) override;
 | |
|   void NotifyCurrentSinks() override;
 | |
|   void CreateRoute(CefRefPtr<CefMediaSource> source,
 | |
|                    CefRefPtr<CefMediaSink> sink,
 | |
|                    CefRefPtr<CefMediaRouteCreateCallback> callback) override;
 | |
|   void NotifyCurrentRoutes() override;
 | |
| 
 | |
|  private:
 | |
|   void InitializeRegistrationInternal(
 | |
|       CefRefPtr<CefRegistrationImpl> registration);
 | |
|   void NotifyCurrentSinksInternal();
 | |
|   void CreateRouteInternal(CefRefPtr<CefMediaSource> source,
 | |
|                            CefRefPtr<CefMediaSink> sink,
 | |
|                            CefRefPtr<CefMediaRouteCreateCallback> callback);
 | |
|   void NotifyCurrentRoutesInternal();
 | |
| 
 | |
|   void CreateRouteCallback(CefRefPtr<CefMediaRouteCreateCallback> callback,
 | |
|                            const media_router::RouteRequestResult& result);
 | |
| 
 | |
|   // If the context is fully initialized execute |callback|, otherwise
 | |
|   // store it until the context is fully initialized.
 | |
|   void StoreOrTriggerInitCallback(base::OnceClosure callback);
 | |
| 
 | |
|   bool ValidContext() const;
 | |
| 
 | |
|   // Only accessed on the UI thread. Will be non-null after Initialize().
 | |
|   CefBrowserContext::Getter browser_context_getter_;
 | |
| 
 | |
|   bool initialized_ = false;
 | |
|   std::vector<base::OnceClosure> init_callbacks_;
 | |
| 
 | |
|   IMPLEMENT_REFCOUNTING(CefMediaRouterImpl);
 | |
| };
 | |
| 
 | |
| #endif  // CEF_LIBCEF_BROWSER_MEDIA_ROUTER_MEDIA_ROUTER_IMPL_H_
 |