1 /* 2 * Copyright (C) 2009 Apple Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26 #ifndef MediaPlayerPrivate_h 27 #define MediaPlayerPrivate_h 28 29 #if ENABLE(VIDEO) 30 31 #include "MediaPlayer.h" 32 33 namespace WebCore { 34 35 class IntRect; 36 class IntSize; 37 class String; 38 39 class MediaPlayerPrivateInterface { 40 public: ~MediaPlayerPrivateInterface()41 virtual ~MediaPlayerPrivateInterface() { } 42 43 virtual void load(const String& url) = 0; 44 virtual void cancelLoad() = 0; 45 46 virtual void play() = 0; 47 virtual void pause() = 0; 48 supportsFullscreen()49 virtual bool supportsFullscreen() const { return false; } supportsSave()50 virtual bool supportsSave() const { return false; } 51 52 virtual IntSize naturalSize() const = 0; 53 54 virtual bool hasVideo() const = 0; 55 56 virtual void setVisible(bool) = 0; 57 58 virtual float duration() const = 0; 59 60 virtual float currentTime() const = 0; 61 virtual void seek(float time) = 0; 62 virtual bool seeking() const = 0; 63 startTime()64 virtual float startTime() const { return 0; } 65 66 virtual void setEndTime(float) = 0; 67 68 virtual void setRate(float) = 0; setPreservesPitch(bool)69 virtual void setPreservesPitch(bool) { } 70 71 virtual bool paused() const = 0; 72 73 virtual void setVolume(float) = 0; 74 75 virtual MediaPlayer::NetworkState networkState() const = 0; 76 virtual MediaPlayer::ReadyState readyState() const = 0; 77 78 virtual float maxTimeSeekable() const = 0; 79 virtual float maxTimeBuffered() const = 0; 80 81 virtual int dataRate() const = 0; 82 totalBytesKnown()83 virtual bool totalBytesKnown() const { return totalBytes() > 0; } 84 virtual unsigned totalBytes() const = 0; 85 virtual unsigned bytesLoaded() const = 0; 86 87 virtual void setSize(const IntSize&) = 0; 88 89 virtual void paint(GraphicsContext*, const IntRect&) = 0; 90 paintCurrentFrameInContext(GraphicsContext * c,const IntRect & r)91 virtual void paintCurrentFrameInContext(GraphicsContext* c, const IntRect& r) { paint(c, r); } 92 setAutobuffer(bool)93 virtual void setAutobuffer(bool) { }; 94 95 #if PLATFORM(ANDROID) canLoadPoster()96 virtual bool canLoadPoster() const { return false; } setPoster(const String &)97 virtual void setPoster(const String&) { } prepareToPlay()98 virtual void prepareToPlay() { } 99 #endif 100 101 #if ENABLE(PLUGIN_PROXY_FOR_VIDEO) 102 virtual void setPoster(const String& url) = 0; 103 virtual void deliverNotification(MediaPlayerProxyNotificationType) = 0; 104 virtual void setMediaPlayerProxy(WebMediaPlayerProxy*) = 0; 105 #endif 106 107 #if USE(ACCELERATED_COMPOSITING) 108 // whether accelerated rendering is supported by the media engine for the current media. supportsAcceleratedRendering()109 virtual bool supportsAcceleratedRendering() const { return false; } 110 // called when the rendering system flips the into or out of accelerated rendering mode. acceleratedRenderingStateChanged()111 virtual void acceleratedRenderingStateChanged() { } 112 #endif 113 hasSingleSecurityOrigin()114 virtual bool hasSingleSecurityOrigin() const { return false; } 115 movieLoadType()116 virtual MediaPlayer::MovieLoadType movieLoadType() const { return MediaPlayer::Unknown; } 117 118 }; 119 120 } 121 122 #endif 123 #endif 124