• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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