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

Side by Side Diff: webkit/renderer/media/android/webmediaplayer_manager_android.cc

Issue 17502007: Move webkit/renderer/media/android/ to content/renderer/media/android/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix shared lib Created 7 years, 6 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2013 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.
4
5 #include "webkit/renderer/media/android/webmediaplayer_manager_android.h"
6
7 #include "ui/gfx/rect_f.h"
8 #include "webkit/renderer/media/android/webmediaplayer_android.h"
9
10 namespace webkit_media {
11
12 WebMediaPlayerManagerAndroid::WebMediaPlayerManagerAndroid()
13 : next_media_player_id_(0),
14 fullscreen_frame_(NULL) {
15 }
16
17 WebMediaPlayerManagerAndroid::~WebMediaPlayerManagerAndroid() {
18 std::map<int, WebMediaPlayerAndroid*>::iterator player_it;
19 for (player_it = media_players_.begin();
20 player_it != media_players_.end(); ++player_it) {
21 WebMediaPlayerAndroid* player = player_it->second;
22 player->Detach();
23 }
24 }
25
26 int WebMediaPlayerManagerAndroid::RegisterMediaPlayer(
27 WebMediaPlayerAndroid* player) {
28 media_players_[next_media_player_id_] = player;
29 return next_media_player_id_++;
30 }
31
32 void WebMediaPlayerManagerAndroid::UnregisterMediaPlayer(int player_id) {
33 media_players_.erase(player_id);
34 }
35
36 void WebMediaPlayerManagerAndroid::ReleaseMediaResources(
37 bool retain_video_playback) {
38 std::map<int, WebMediaPlayerAndroid*>::iterator player_it;
39 for (player_it = media_players_.begin();
40 player_it != media_players_.end(); ++player_it) {
41 WebMediaPlayerAndroid* player = player_it->second;
42
43 // Do not release if an audio track is still playing or the app wants to
44 // retain video playback.
45 if (player &&
46 (player->paused() || (!retain_video_playback && player->hasVideo()))) {
47 player->ReleaseMediaResources();
48 }
49 }
50 }
51
52 WebMediaPlayerAndroid* WebMediaPlayerManagerAndroid::GetMediaPlayer(
53 int player_id) {
54 std::map<int, WebMediaPlayerAndroid*>::iterator iter =
55 media_players_.find(player_id);
56 if (iter != media_players_.end())
57 return iter->second;
58 return NULL;
59 }
60
61 bool WebMediaPlayerManagerAndroid::CanEnterFullscreen(WebKit::WebFrame* frame) {
62 return !fullscreen_frame_ || IsInFullscreen(frame);
63 }
64
65 void WebMediaPlayerManagerAndroid::DidEnterFullscreen(WebKit::WebFrame* frame) {
66 fullscreen_frame_ = frame;
67 }
68
69 void WebMediaPlayerManagerAndroid::DidExitFullscreen() {
70 fullscreen_frame_ = NULL;
71 }
72
73 bool WebMediaPlayerManagerAndroid::IsInFullscreen(WebKit::WebFrame* frame) {
74 return fullscreen_frame_ == frame;
75 }
76
77 #if defined(GOOGLE_TV)
78 void WebMediaPlayerManagerAndroid::RetrieveGeometryChanges(
79 std::map<int, gfx::RectF>* changes) {
80 DCHECK(changes->empty());
81 for (std::map<int, WebMediaPlayerAndroid*>::iterator player_it =
82 media_players_.begin();
83 player_it != media_players_.end();
84 ++player_it) {
85 WebMediaPlayerAndroid* player = player_it->second;
86
87 if (player && player->hasVideo()) {
88 gfx::RectF rect;
89 if (player->RetrieveGeometryChange(&rect)) {
90 (*changes)[player_it->first] = rect;
91 }
92 }
93 }
94 }
95 #endif
96
97 } // namespace webkit_media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698