| Index: content/renderer/media/renderer_webmediaplayer_delegate.cc
|
| diff --git a/content/renderer/media/renderer_webmediaplayer_delegate.cc b/content/renderer/media/renderer_webmediaplayer_delegate.cc
|
| index 722b13d5440a1cc0d068e1f9c85da73da4f6e79a..2c7054648da8bc4c9c4da3fc1fe9fe8dba8df94c 100644
|
| --- a/content/renderer/media/renderer_webmediaplayer_delegate.cc
|
| +++ b/content/renderer/media/renderer_webmediaplayer_delegate.cc
|
| @@ -6,7 +6,7 @@
|
|
|
| #include <stdint.h>
|
|
|
| -#include "content/common/frame_messages.h"
|
| +#include "content/common/media/media_player_delegate_messages.h"
|
| #include "content/public/renderer/render_frame.h"
|
| #include "third_party/WebKit/public/platform/WebMediaPlayer.h"
|
|
|
| @@ -18,40 +18,84 @@ RendererWebMediaPlayerDelegate::RendererWebMediaPlayerDelegate(
|
|
|
| RendererWebMediaPlayerDelegate::~RendererWebMediaPlayerDelegate() {}
|
|
|
| -void RendererWebMediaPlayerDelegate::DidPlay(blink::WebMediaPlayer* player) {
|
| - has_played_media_ = true;
|
| - Send(new FrameHostMsg_MediaPlayingNotification(
|
| - routing_id(), reinterpret_cast<int64_t>(player), player->hasVideo(),
|
| - player->hasAudio(), player->isRemote()));
|
| +int RendererWebMediaPlayerDelegate::AddObserver(Observer* observer) {
|
| + return id_map_.Add(observer);
|
| }
|
|
|
| -void RendererWebMediaPlayerDelegate::DidPause(blink::WebMediaPlayer* player) {
|
| - Send(new FrameHostMsg_MediaPausedNotification(
|
| - routing_id(), reinterpret_cast<int64_t>(player)));
|
| +void RendererWebMediaPlayerDelegate::RemoveObserver(int delegate_id) {
|
| + DCHECK(id_map_.Lookup(delegate_id));
|
| + id_map_.Remove(delegate_id);
|
| }
|
|
|
| -void RendererWebMediaPlayerDelegate::PlayerGone(blink::WebMediaPlayer* player) {
|
| - DidPause(player);
|
| +void RendererWebMediaPlayerDelegate::DidPlay(int delegate_id,
|
| + bool has_video,
|
| + bool has_audio,
|
| + bool is_remote,
|
| + base::TimeDelta duration) {
|
| + DCHECK(id_map_.Lookup(delegate_id));
|
| + has_played_media_ = true;
|
| + Send(new MediaPlayerDelegateHostMsg_OnMediaPlaying(
|
| + routing_id(), delegate_id, has_video, has_audio, is_remote, duration));
|
| }
|
|
|
| -void RendererWebMediaPlayerDelegate::AddObserver(Observer* observer) {
|
| - observer_list_.AddObserver(observer);
|
| +void RendererWebMediaPlayerDelegate::DidPause(int delegate_id,
|
| + bool reached_end_of_stream) {
|
| + DCHECK(id_map_.Lookup(delegate_id));
|
| + Send(new MediaPlayerDelegateHostMsg_OnMediaPaused(routing_id(), delegate_id,
|
| + reached_end_of_stream));
|
| }
|
|
|
| -void RendererWebMediaPlayerDelegate::RemoveObserver(Observer* observer) {
|
| - observer_list_.RemoveObserver(observer);
|
| +void RendererWebMediaPlayerDelegate::PlayerGone(int delegate_id) {
|
| + DCHECK(id_map_.Lookup(delegate_id));
|
| + Send(new MediaPlayerDelegateHostMsg_OnMediaDestroyed(routing_id(),
|
| + delegate_id));
|
| +}
|
| +
|
| +bool RendererWebMediaPlayerDelegate::IsHidden() {
|
| + return render_frame()->IsHidden();
|
| }
|
|
|
| void RendererWebMediaPlayerDelegate::WasHidden() {
|
| - FOR_EACH_OBSERVER(Observer, observer_list_, OnHidden());
|
| + for (IDMap<Observer>::iterator it(&id_map_); !it.IsAtEnd(); it.Advance())
|
| + it.GetCurrentValue()->OnHidden();
|
| }
|
|
|
| void RendererWebMediaPlayerDelegate::WasShown() {
|
| - FOR_EACH_OBSERVER(Observer, observer_list_, OnShown());
|
| + for (IDMap<Observer>::iterator it(&id_map_); !it.IsAtEnd(); it.Advance())
|
| + it.GetCurrentValue()->OnShown();
|
| }
|
|
|
| -bool RendererWebMediaPlayerDelegate::IsHidden() {
|
| - return render_frame()->IsHidden();
|
| +bool RendererWebMediaPlayerDelegate::OnMessageReceived(
|
| + const IPC::Message& msg) {
|
| + bool handled = true;
|
| + IPC_BEGIN_MESSAGE_MAP(RendererWebMediaPlayerDelegate, msg)
|
| + IPC_MESSAGE_HANDLER(MediaPlayerDelegateMsg_Pause, OnMediaDelegatePause)
|
| + IPC_MESSAGE_HANDLER(MediaPlayerDelegateMsg_Play, OnMediaDelegatePlay)
|
| + IPC_MESSAGE_HANDLER(MediaPlayerDelegateMsg_UpdateVolumeMultiplier,
|
| + OnMediaDelegateVolumeMultiplierUpdate)
|
| + IPC_MESSAGE_UNHANDLED(handled = false)
|
| + IPC_END_MESSAGE_MAP()
|
| + return handled;
|
| +}
|
| +
|
| +void RendererWebMediaPlayerDelegate::OnMediaDelegatePause(int delegate_id) {
|
| + Observer* observer = id_map_.Lookup(delegate_id);
|
| + if (observer)
|
| + observer->OnPause();
|
| +}
|
| +
|
| +void RendererWebMediaPlayerDelegate::OnMediaDelegatePlay(int delegate_id) {
|
| + Observer* observer = id_map_.Lookup(delegate_id);
|
| + if (observer)
|
| + observer->OnPlay();
|
| +}
|
| +
|
| +void RendererWebMediaPlayerDelegate::OnMediaDelegateVolumeMultiplierUpdate(
|
| + int delegate_id,
|
| + double multiplier) {
|
| + Observer* observer = id_map_.Lookup(delegate_id);
|
| + if (observer)
|
| + observer->OnVolumeMultiplierUpdate(multiplier);
|
| }
|
|
|
| } // namespace media
|
|
|