Implement MediaSourceDelegate::SetDuration() for android
[chromium-blink-merge.git] / content / renderer / media / webmediaplayer_proxy_impl_android.h
blob5f4f2d6ac6e527b8cbc4ffb667c9566829276c65
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_
8 #include <map>
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;
19 namespace content {
21 // This class manages all the IPC communications between
22 // WebMediaPlayerAndroid and the MediaPlayerManagerAndroid in the browser
23 // process.
24 class WebMediaPlayerProxyImplAndroid
25 : public RenderViewObserver,
26 public webkit_media::WebMediaPlayerProxyAndroid {
27 public:
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(
40 int player_id,
41 const GURL& url,
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(
52 int player_id,
53 const media::MediaPlayerHostMsg_DemuxerReady_Params& params) OVERRIDE;
54 virtual void ReadFromDemuxerAck(
55 int player_id,
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;
78 #endif
80 private:
81 webkit_media::WebMediaPlayerAndroid* GetWebMediaPlayer(int player_id);
83 // Message handlers.
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,
109 int system_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_