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

Unified Diff: chrome/browser/media/android/remote/remote_media_player_manager.h

Issue 1403703005: Refactor Clank cast connect logic (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix trybot detected error. Created 5 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/android/remote/remote_media_player_manager.h
diff --git a/chrome/browser/media/android/remote/remote_media_player_manager.h b/chrome/browser/media/android/remote/remote_media_player_manager.h
index 1cbe8fd9e7b9ffeb396c2ad1f0ed6788f97a2842..6c93f95291e62781c6f8c4df309b4270e929e34c 100644
--- a/chrome/browser/media/android/remote/remote_media_player_manager.h
+++ b/chrome/browser/media/android/remote/remote_media_player_manager.h
@@ -5,6 +5,7 @@
#ifndef CHROME_BROWSER_MEDIA_ANDROID_REMOTE_REMOTE_MEDIA_PLAYER_MANAGER_H_
#define CHROME_BROWSER_MEDIA_ANDROID_REMOTE_REMOTE_MEDIA_PLAYER_MANAGER_H_
+#include <set>
#include <vector>
#include "base/memory/scoped_ptr.h"
@@ -28,9 +29,6 @@ class RemoteMediaPlayerManager : public content::BrowserMediaPlayerManager {
void OnPlaying(int player_id);
void OnPaused(int player_id);
- // Callback to trigger when a remote device has been selected.
- void OnRemoteDeviceSelected(int player_id);
-
// Callback to trigger when a remote device has been unselected.
void OnRemoteDeviceUnselected(int player_id);
@@ -46,6 +44,10 @@ class RemoteMediaPlayerManager : public content::BrowserMediaPlayerManager {
int height,
bool success) override;
+ // Swap which player is currently in use (local or remote).
+ void SwitchToRemotePlayer(int player_id, const std::string& casting_message);
+ void SwitchToLocalPlayer(int player_id);
+
protected:
void OnSetPoster(int player_id, const GURL& url) override;
@@ -54,18 +56,9 @@ class RemoteMediaPlayerManager : public content::BrowserMediaPlayerManager {
RemoteMediaPlayerBridge* CreateRemoteMediaPlayer(
media::MediaPlayerAndroid* local_player);
- // Replaces the given local player with the remote one. Does nothing if the
- // player is remote already.
- void ReplaceLocalPlayerWithRemote(media::MediaPlayerAndroid* player);
-
// Replaces the remote player with the local player this class is holding.
// Does nothing if there is no remote player.
- void ReplaceRemotePlayerWithLocal();
-
- // Checks if the URL managed by the player should be played remotely.
- // Returns true if the manager should do nothing, false if it needs to
- // proceed.
- bool MaybeStartPlayingRemotely(int player_id);
+ void ReplaceRemotePlayerWithLocal(int player_id);
// content::BrowserMediaPlayerManager overrides.
void OnStart(int player_id) override;
@@ -73,6 +66,8 @@ class RemoteMediaPlayerManager : public content::BrowserMediaPlayerManager {
const MediaPlayerHostMsg_Initialize_Params& media_player_params) override;
void OnDestroyPlayer(int player_id) override;
void OnReleaseResources(int player_id) override;
+ void OnSuspend(int player_id) override;
+ void OnResume(int player_id) override;
void OnRequestRemotePlayback(int player_id) override;
void OnRequestRemotePlaybackControl(int player_id) override;
@@ -91,18 +86,28 @@ class RemoteMediaPlayerManager : public content::BrowserMediaPlayerManager {
// -1 in case something goes wrong.
int GetTabId();
- // Get the player id of current remote player, if any, or -1 if none.
- int RemotePlayerId();
+ // Get the player that is not currently selected
+ ScopedVector<media::MediaPlayerAndroid>::iterator GetAlternativePlayer(
+ int player_id);
// Get the remote player for a given player id, whether or not it is currently
// playing remotely.
RemoteMediaPlayerBridge* GetRemotePlayer(int player_id);
- // The local player that we have replaced with a remote player. This is NULL
- // if we do not have a remote player currently running.
- scoped_ptr<media::MediaPlayerAndroid> replaced_local_player_;
+ // Get the local player for a given player id, whether or not it is currently
+ // playing locally.
+ media::MediaPlayerAndroid* GetLocalPlayer(int player_id);
+
+ void SwapCurrentPlayer(int player_id);
+
+ // Contains the alternative players that are not currently in use, i.e. the
+ // remote players for videos that are playing locally, and the local players
+ // for videos that are playing remotely.
+ ScopedVector<media::MediaPlayerAndroid> alternative_players_;
+
+ bool IsPlayingRemotely(int player_id);
- ScopedVector<RemoteMediaPlayerBridge> remote_players_;
+ std::set<int> players_playing_remotely_;
base::WeakPtrFactory<RemoteMediaPlayerManager> weak_ptr_factory_;

Powered by Google App Engine
This is Rietveld 408576698