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); |
}; |