1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CONTENT_RENDERER_MEDIA_WEBMEDIAPLAYER_PROXY_IMPL_ANDROID_H_
6 #define CONTENT_RENDERER_MEDIA_WEBMEDIAPLAYER_PROXY_IMPL_ANDROID_H_
10 #include "content/public/renderer/render_view_observer.h"
11 #include "media/base/media_keys.h"
12 #include "webkit/renderer/media/android/webmediaplayer_proxy_android.h"
14 namespace webkit_media
{
15 class WebMediaPlayerAndroid
;
16 class WebMediaPlayerManagerAndroid
;
21 // This class manages all the IPC communications between
22 // WebMediaPlayerAndroid and the MediaPlayerManagerAndroid in the browser
24 class WebMediaPlayerProxyImplAndroid
25 : public RenderViewObserver
,
26 public webkit_media::WebMediaPlayerProxyAndroid
{
28 // Construct a WebMediaPlayerProxyImplAndroid object for the |render_view|.
29 // |manager| is passed to this class so that it can find the right
30 // WebMediaPlayerAndroid using player IDs.
31 WebMediaPlayerProxyImplAndroid(
32 RenderView
* render_view
,
33 webkit_media::WebMediaPlayerManagerAndroid
* manager
);
34 virtual ~WebMediaPlayerProxyImplAndroid();
36 virtual bool OnMessageReceived(const IPC::Message
& msg
) OVERRIDE
;
38 // Methods inherited from WebMediaPlayerProxyAndroid.
39 virtual void Initialize(
42 media::MediaPlayerAndroid::SourceType source_type
,
43 const GURL
& first_party_for_cookies
) OVERRIDE
;
44 virtual void Start(int player_id
) OVERRIDE
;
45 virtual void Pause(int player_id
) OVERRIDE
;
46 virtual void Seek(int player_id
, base::TimeDelta time
) OVERRIDE
;
47 virtual void ReleaseResources(int player_id
) OVERRIDE
;
48 virtual void DestroyPlayer(int player_id
) OVERRIDE
;
49 virtual void EnterFullscreen(int player_id
) OVERRIDE
;
50 virtual void ExitFullscreen(int player_id
) OVERRIDE
;
51 virtual void DemuxerReady(
53 const media::MediaPlayerHostMsg_DemuxerReady_Params
& params
) OVERRIDE
;
54 virtual void ReadFromDemuxerAck(
56 const media::MediaPlayerHostMsg_ReadFromDemuxerAck_Params
&) OVERRIDE
;
57 virtual void GenerateKeyRequest(int player_id
,
58 const std::string
& key_system
,
59 const std::string
& type
,
60 const std::vector
<uint8
>& init_data
) OVERRIDE
;
61 virtual void AddKey(int player_id
,
62 const std::string
& key_system
,
63 const std::vector
<uint8
>& key
,
64 const std::vector
<uint8
>& init_data
,
65 const std::string
& session_id
) OVERRIDE
;
66 virtual void CancelKeyRequest(int player_id
,
67 const std::string
& key_system
,
68 const std::string
& session_id
) OVERRIDE
;
69 virtual void DurationChanged(int player_id
,
70 const base::TimeDelta
& duration
) OVERRIDE
;
72 #if defined(GOOGLE_TV)
73 virtual void RequestExternalSurface(
74 int player_id
, const gfx::RectF
& geometry
) OVERRIDE
;
76 // Methods inherited from RenderViewObserver.
77 virtual void DidCommitCompositorFrame() OVERRIDE
;
81 webkit_media::WebMediaPlayerAndroid
* GetWebMediaPlayer(int player_id
);
84 void OnMediaMetadataChanged(int player_id
, base::TimeDelta duration
,
85 int width
, int height
, bool success
);
86 void OnMediaPlaybackCompleted(int player_id
);
87 void OnMediaBufferingUpdate(int player_id
, int percent
);
88 void OnMediaSeekCompleted(int player_id
, base::TimeDelta current_time
);
89 void OnMediaError(int player_id
, int error
);
90 void OnVideoSizeChanged(int player_id
, int width
, int height
);
91 void OnTimeUpdate(int player_id
, base::TimeDelta current_time
);
92 void OnMediaPlayerReleased(int player_id
);
93 void OnDidExitFullscreen(int player_id
);
94 void OnDidEnterFullscreen(int player_id
);
95 void OnPlayerPlay(int player_id
);
96 void OnPlayerPause(int player_id
);
97 void OnReadFromDemuxer(
98 int player_id
, media::DemuxerStream::Type type
, bool seek_done
);
99 void OnMediaSeekRequest(int player_id
, base::TimeDelta time_to_seek
,
100 unsigned seek_request_id
);
101 void OnMediaConfigRequest(int player_id
);
102 void OnKeyAdded(int player_id
,
103 const std::string
& key_system
,
104 const std::string
& session_id
);
105 void OnKeyError(int player_id
,
106 const std::string
& key_system
,
107 const std::string
& session_id
,
108 media::MediaKeys::KeyError error_code
,
110 void OnKeyMessage(int player_id
,
111 const std::string
& key_system
,
112 const std::string
& session_id
,
113 const std::string
& message
,
114 const std::string
& destination_url
);
116 webkit_media::WebMediaPlayerManagerAndroid
* manager_
;
118 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerProxyImplAndroid
);
121 } // namespace content
123 #endif // CONTENT_RENDERER_MEDIA_WEBMEDIAPLAYER_PROXY_IMPL_ANDROID_H_