2 * Copyright (C) 2007 Apple Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
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.
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.
32 #include "MIMETypeRegistry.h"
35 #include "MoviePrivateQTKit.h"
37 #include "MoviePrivateGStreamer.h"
42 Movie::Movie(MovieClient* client)
43 : m_movieClient(client)
44 , m_private(new MoviePrivate(this))
58 void Movie::load(String url)
63 void Movie::cancelLoad()
65 m_private->cancelLoad();
78 float Movie::duration() const
80 return m_private->duration();
83 float Movie::currentTime() const
85 return m_private->currentTime();
88 void Movie::seek(float time)
90 m_private->seek(time);
93 bool Movie::paused() const
95 return m_private->paused();
98 bool Movie::seeking() const
100 return m_private->seeking();
103 IntSize Movie::naturalSize()
105 return m_private->naturalSize();
108 bool Movie::hasVideo()
110 return m_private->hasVideo();
113 Movie::NetworkState Movie::networkState()
115 return m_private->networkState();
118 Movie::ReadyState Movie::readyState()
120 return m_private->readyState();
123 float Movie::volume() const
128 void Movie::setVolume(float volume)
130 if (volume != m_volume) {
132 m_private->setVolume(volume);
136 float Movie::rate() const
141 void Movie::setRate(float rate)
146 m_private->setRate(rate);
149 bool Movie::muted() const
154 void Movie::setMuted(bool muted)
156 if (muted == m_muted)
159 m_private->setMuted(muted);
162 int Movie::dataRate() const
164 return m_private->dataRate();
167 void Movie::setEndTime(float time)
169 m_private->setEndTime(time);
172 void Movie::addCuePoint(float time)
174 if (m_cuePoints.contains(time))
176 m_cuePoints.add(time);
177 m_private->addCuePoint(time);
180 void Movie::removeCuePoint(float time)
182 if (!m_cuePoints.contains(time))
184 m_cuePoints.remove(time);
185 m_private->removeCuePoint(time);
188 void Movie::clearCuePoints()
191 m_private->clearCuePoints();
194 float Movie::maxTimeBuffered()
196 return m_private->maxTimeBuffered();
199 float Movie::maxTimeSeekable()
201 return m_private->maxTimeSeekable();
204 unsigned Movie::bytesLoaded()
206 return m_private->bytesLoaded();
209 bool Movie::totalBytesKnown()
211 return m_private->totalBytesKnown();
214 unsigned Movie::totalBytes()
216 return m_private->totalBytes();
219 void Movie::setRect(const IntRect& r)
224 m_private->setRect(r);
227 bool Movie::visible() const
232 void Movie::setVisible(bool b)
237 m_private->setVisible(b);
240 void Movie::paint(GraphicsContext* p, const IntRect& r)
242 m_private->paint(p, r);
245 void Movie::getSupportedTypes(HashSet<String>& types)
247 MoviePrivate::getSupportedTypes(types);
250 void Movie::networkStateChanged()
253 m_movieClient->movieNetworkStateChanged(this);
256 void Movie::readyStateChanged()
259 m_movieClient->movieReadyStateChanged(this);
262 void Movie::volumeChanged()
265 m_movieClient->movieVolumeChanged(this);
268 void Movie::timeChanged()
271 m_movieClient->movieTimeChanged(this);
274 void Movie::cuePointReached(float cueTime)
277 m_movieClient->movieCuePointReached(this, cueTime);