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

Unified Diff: chrome/browser/chromeos/media/media_player.h

Issue 7067020: Moving mediaplayer to the chrome filebrowser. Observable behaviour should not change. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Resolved conflicts. Created 9 years, 7 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/chromeos/media/media_player.h
diff --git a/chrome/browser/ui/webui/mediaplayer_ui.h b/chrome/browser/chromeos/media/media_player.h
similarity index 62%
rename from chrome/browser/ui/webui/mediaplayer_ui.h
rename to chrome/browser/chromeos/media/media_player.h
index 7e25ba58d51defd0d4996d45fdc4f5d6d60f7614..e916ea2ae7de372723fa45a076f5ebeb22ea0c85 100644
--- a/chrome/browser/ui/webui/mediaplayer_ui.h
+++ b/chrome/browser/chromeos/media/media_player.h
@@ -2,32 +2,33 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_UI_WEBUI_MEDIAPLAYER_UI_H_
-#define CHROME_BROWSER_UI_WEBUI_MEDIAPLAYER_UI_H_
+#ifndef CHROME_BROWSER_CHROMEOS_MEDIA_MEDIA_PLAYER_H_
+#define CHROME_BROWSER_CHROMEOS_MEDIA_MEDIA_PLAYER_H_
#pragma once
#include <set>
#include <vector>
-#include "chrome/browser/ui/webui/chrome_url_data_manager.h"
-#include "content/browser/webui/web_ui.h"
+#include "base/memory/singleton.h"
#include "content/common/notification_observer.h"
#include "content/common/notification_registrar.h"
#include "content/common/notification_source.h"
#include "content/common/notification_type.h"
-#include "net/base/directory_lister.h"
+
#include "net/url_request/url_request.h"
template <typename T> struct DefaultSingletonTraits;
class Browser;
class GURL;
-class MediaplayerHandler;
class Profile;
class MediaPlayer : public NotificationObserver,
public net::URLRequest::Interceptor {
public:
+ struct MediaUrl;
+ typedef std::vector<MediaUrl> UrlVector;
+
virtual ~MediaPlayer();
// Enqueues this file into the current playlist. If the mediaplayer is
@@ -61,30 +62,29 @@ class MediaPlayer : public NotificationObserver,
// Force the playlist window to be closed.
void ClosePlaylistWindow();
- // Sets the currently playing element to the given offset.
- void SetPlaylistOffset(int offset);
+ // Sets the currently playing element to the given positions.
+ void SetPlaylistPosition(int position);
- // Set a new playback handler to give events to, along with the
- // tab contents of the page which holds the mediaplayer. it is expected
- // That only one of these will exist at any given time.
- void SetNewHandler(MediaplayerHandler* handler,
- TabContents* contents);
+ // Returns current playlist.
+ const UrlVector& GetPlaylist() const;
- // Removes the handler.
- void RemoveHandler(MediaplayerHandler* handler);
+ // Returns current playlist position.
+ int GetPlaylistPosition() const;
- // Registers a new playlist handler which receives events from the
- // mediaplayer, along with the tab contents which has the playlist in it.
- void RegisterNewPlaylistHandler(MediaplayerHandler* handler,
- TabContents* contents);
+ // Set flag that error occuires while playing the url.
+ void SetPlaybackError(GURL const& url);
- // Removes the playlist handler.
- void RemovePlaylistHandler(MediaplayerHandler* handler);
-
- // Notfiys the mediaplayer that the playlist changed. This could be
+ // Notfies the mediaplayer that the playlist changed. This could be
// called from the mediaplayer itself for example.
void NotifyPlaylistChanged();
+ // Retuen true if playback requested. Resets this flag.
+ bool GetPendingPlayRequestAndReset();
+
+ // Requests starting playback of the current playlist item when the
+ // mediaplayer get the playlist updated.
+ void SetPlaybackRequest();
+
// Always returns NULL because we don't want to attempt a redirect
// before seeing the detected mime type of the request.
// Implementation of net::URLRequest::Interceptor.
@@ -107,8 +107,19 @@ class MediaPlayer : public NotificationObserver,
private:
friend struct DefaultSingletonTraits<MediaPlayer>;
+ // The current playlist of urls.
+ UrlVector current_playlist_;
+ // The position into the current_playlist_ of the currently playing item.
+ int current_position_;
+
+ bool pending_playback_request_;
+
MediaPlayer();
+ GURL GetOriginUrl() const;
+ GURL GetMediaplayerPlaylistUrl() const;
+ GURL GetMediaPlayerUrl() const;
+
// Popup the mediaplayer, this shows the browser, and sets up its
// locations correctly.
void PopupMediaPlayer(Browser* creator);
@@ -117,16 +128,7 @@ class MediaPlayer : public NotificationObserver,
// chrome://mediaplayer#playlist
void PopupPlaylist(Browser* creator);
- // Registers the listeners for the close events on the browser windows.
- void RegisterListeners();
-
- // Set when the register handler is called. When the media player is
- // closed, this pointer is set back to NULL.
- MediaplayerHandler* handler_;
-
- // Set when the register playlist handler is called. When the playlist
- // is closed, this pointer is set back to NULL.
- MediaplayerHandler* playlist_;
+ void EnqueueMediaFileUrl(const GURL& url);
// Browser containing the playlist. Used to force closes. This is created
// By the PopupPlaylist call, and is NULLed out when the window is closed.
@@ -137,35 +139,23 @@ class MediaPlayer : public NotificationObserver,
// is closed.
Browser* mediaplayer_browser_;
- // List of URLs that were enqueued during the time that the mediaplayer
- // had not poped up yet. This is claered out after the mediaplayer pops up.
- std::vector<GURL> unhandled_urls_;
-
// Used to register for events on the windows, like to listen for closes.
NotificationRegistrar registrar_;
- // Tab contents of the mediaplayer. Used to listen for events
- // which would cause the mediaplayer to be closed. These are cleared out
- // when the mediaplayer is closed.
- TabContents* mediaplayer_tab_;
-
- // Tab contents of the playlist tab. used to listen for events which would
- // cause the mediaplayer to be closed. These are cleared out when the
- // playlist is closed.
- TabContents* playlist_tab_;
-
// List of mimetypes that the mediaplayer should listen to. Used for
// interceptions of url GETs.
std::set<std::string> supported_mime_types_;
+ friend class MediaPlayerBrowserTest;
DISALLOW_COPY_AND_ASSIGN(MediaPlayer);
};
-class MediaplayerUI : public WebUI {
- public:
- explicit MediaplayerUI(TabContents* contents);
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MediaplayerUI);
+struct MediaPlayer::MediaUrl {
+ MediaUrl() {}
+ explicit MediaUrl(const GURL& newurl)
+ : url(newurl),
+ haderror(false) {}
+ GURL url;
+ bool haderror;
};
-#endif // CHROME_BROWSER_UI_WEBUI_MEDIAPLAYER_UI_H_
+#endif // CHROME_BROWSER_CHROMEOS_MEDIA_MEDIA_PLAYER_H_
« no previous file with comments | « chrome/browser/chromeos/extensions/media_player_event_router.cc ('k') | chrome/browser/chromeos/media/media_player.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698