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

Unified Diff: media/remoting/remoting_interstitial_ui.h

Issue 2566223005: Media Remoting: Update remoting interstitial when status changes. (Closed)
Patch Set: Removed unused declare. Created 4 years 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: media/remoting/remoting_interstitial_ui.h
diff --git a/media/remoting/remoting_interstitial_ui.h b/media/remoting/remoting_interstitial_ui.h
index 7807628258326b2bc7d64d54cc7567d41b696cdb..83d35fc9e95f2212e836af2b7ffd5f6de2beebd8 100644
--- a/media/remoting/remoting_interstitial_ui.h
+++ b/media/remoting/remoting_interstitial_ui.h
@@ -5,32 +5,41 @@
#ifndef MEDIA_REMOTING_REMOTING_INTERSTITIAL_UI_H_
#define MEDIA_REMOTING_REMOTING_INTERSTITIAL_UI_H_
-#include "base/callback.h"
-#include "base/memory/ref_counted.h"
-#include "media/base/pipeline_metadata.h"
+#include "base/memory/weak_ptr.h"
#include "third_party/skia/include/core/SkBitmap.h"
+#include "ui/gfx/geometry/size.h"
namespace media {
-class VideoFrame;
class VideoRendererSink;
+enum RemotingInterstitialType {
+ NONE, // No interstitial is drawn. Show background image only.
+ SUCCESS,
+ FAIL,
+};
+
class RemotingInterstitialUI {
public:
- RemotingInterstitialUI(VideoRendererSink* video_renderer_sink,
- const PipelineMetadata& pipeline_metadata);
+ explicit RemotingInterstitialUI(VideoRendererSink* video_renderer_sink);
~RemotingInterstitialUI();
- void ShowInterstitial(bool is_remoting_successful);
+ // Draw remoting interstitial on |background_image| and show it.
+ // |background_image| will be scaled to fit in |canvas_size|, but keep its
+ // aspect ratio. When has different aspect ratio with |canvas_size|, scaled
+ // |background_image| will be centered in the canvas. When |background_image|
+ // is empty, interstitial will be drawn on a blank and black background.
+ void ShowInterstitialOnSink(const SkBitmap& background_image,
+ const gfx::Size& canvas_size,
+ RemotingInterstitialType interstial_type);
- private:
- // Gets an 'interstitial' VideoFrame to paint on the media player when the
- // video is being played remotely.
- scoped_refptr<VideoFrame> GetInterstitial(const SkBitmap& background_image,
- bool is_remoting_successful);
+ base::WeakPtr<RemotingInterstitialUI> GetWeakPtr() {
+ return weak_factory_.GetWeakPtr();
+ }
+ private:
VideoRendererSink* const video_renderer_sink_; // Outlives this class.
- PipelineMetadata pipeline_metadata_;
+ base::WeakPtrFactory<RemotingInterstitialUI> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(RemotingInterstitialUI);
};

Powered by Google App Engine
This is Rietveld 408576698