summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webmediaplayerclient_impl.h
diff options
context:
space:
mode:
authorhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-07 02:24:44 +0000
committerhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-07 02:24:44 +0000
commit4e6be3fc92efcbedfedbc003892ad56682058971 (patch)
treecaa72331addc9a7f348394cc330c6b1ba1bac623 /webkit/glue/webmediaplayerclient_impl.h
parent4492c17d67cfbd62ef28e18871c3a08dd07248d9 (diff)
downloadchromium_src-4e6be3fc92efcbedfedbc003892ad56682058971.zip
chromium_src-4e6be3fc92efcbedfedbc003892ad56682058971.tar.gz
chromium_src-4e6be3fc92efcbedfedbc003892ad56682058971.tar.bz2
Refactor media player to move away from webkit_glue
Highlights: 1. WebCore::MediaPlayerPrivate now only has one static method that constructs WebMediaPlayerClient 2. Implementation of WebCore::MediaPlayerPrivateInterface now is WebMediaPlayerClient 3. WebMediaPlayerClient does the delgation to WebMediaPlayer 4. Implemtnation of real media player will go into chrome/renderer and implements WebMediaPlayer Review URL: http://codereview.chromium.org/105007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15492 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webmediaplayerclient_impl.h')
-rw-r--r--webkit/glue/webmediaplayerclient_impl.h101
1 files changed, 101 insertions, 0 deletions
diff --git a/webkit/glue/webmediaplayerclient_impl.h b/webkit/glue/webmediaplayerclient_impl.h
new file mode 100644
index 0000000..5bbe9a3
--- /dev/null
+++ b/webkit/glue/webmediaplayerclient_impl.h
@@ -0,0 +1,101 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef WEBKIT_GLUE_WEBMEDIAPLAYERCLIENT_IMPL_H_
+#define WEBKIT_GLUE_WEBMEDIAPLAYERCLIENT_IMPL_H_
+
+#if ENABLE(VIDEO)
+
+#include "third_party/WebKit/WebKit/chromium/public/WebMediaPlayerClient.h"
+
+#include "MediaPlayerPrivate.h"
+
+namespace WebCore {
+class MediaPlayerPrivate;
+} // namespace WebCore
+
+namespace WebKit {
+class WebMediaPlayer;
+} // namespace WebKit
+
+class WebMediaPlayerClientImpl : public WebKit::WebMediaPlayerClient,
+ public WebCore::MediaPlayerPrivateInterface {
+ public:
+ virtual ~WebMediaPlayerClientImpl();
+
+ ////////////////////////////////////////////////////////////////////////////
+ // WebMediaPlayerPlayerClient methods
+ virtual void networkStateChanged();
+ virtual void readyStateChanged();
+ virtual void volumeChanged();
+ virtual void timeChanged();
+ virtual void repaint();
+ virtual void durationChanged();
+ virtual void rateChanged();
+ virtual void sizeChanged();
+ virtual void sawUnsupportedTracks();
+
+ ////////////////////////////////////////////////////////////////////////////
+ // MediaPlayerPrivateInterface methods
+ virtual void load(const WebCore::String& url);
+ virtual void cancelLoad();
+
+ virtual void play();
+ virtual void pause();
+
+ virtual WebCore::IntSize naturalSize() const;
+
+ virtual bool hasVideo() const;
+
+ virtual void setVisible(bool);
+
+ virtual float duration() const;
+
+ virtual float currentTime() const;
+ virtual void seek(float time);
+ virtual bool seeking() const;
+
+ virtual void setEndTime(float time);
+
+ virtual void setRate(float);
+ virtual bool paused() const;
+
+ virtual void setVolume(float);
+
+ virtual WebCore::MediaPlayer::NetworkState networkState() const;
+ virtual WebCore::MediaPlayer::ReadyState readyState() const;
+
+ virtual float maxTimeSeekable() const;
+ virtual float maxTimeBuffered() const;
+
+ virtual int dataRate() const;
+ virtual void setAutobuffer(bool);
+
+ virtual bool totalBytesKnown() const;
+ virtual unsigned totalBytes() const;
+ virtual unsigned bytesLoaded() const;
+
+ virtual void setSize(const WebCore::IntSize&);
+ virtual void paint(WebCore::GraphicsContext*, const WebCore::IntRect&);
+
+ private:
+ friend class WebCore::MediaPlayerPrivate;
+
+ WebMediaPlayerClientImpl();
+
+ // Static methods used by WebKit for construction.
+ static WebCore::MediaPlayerPrivateInterface* create(
+ WebCore::MediaPlayer* player);
+ static void getSupportedTypes(
+ WTF::HashSet<WebCore::String>& supportedTypes);
+ static WebCore::MediaPlayer::SupportsType supportsType(
+ const WebCore::String& type, const WebCore::String& codecs);
+
+ WebCore::MediaPlayer* m_mediaPlayer;
+ WebKit::WebMediaPlayer* m_webMediaPlayer;
+};
+
+#endif // ENABLE(VIDEO)
+
+#endif // WEBKIT_GLUE_WEBMEDIAPLAYERCLIENT_IMPL_H_