From 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Tue, 27 Jun 2017 06:07:23 +0000 Subject: webkitgtk-2.16.5 --- Source/WebCore/html/MediaController.h | 153 ++++++++++++++++------------------ 1 file changed, 73 insertions(+), 80 deletions(-) (limited to 'Source/WebCore/html/MediaController.h') diff --git a/Source/WebCore/html/MediaController.h b/Source/WebCore/html/MediaController.h index 1e7bd8a2e..178fa742d 100644 --- a/Source/WebCore/html/MediaController.h +++ b/Source/WebCore/html/MediaController.h @@ -10,10 +10,10 @@ * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR @@ -23,8 +23,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef MediaController_h -#define MediaController_h +#pragma once #if ENABLE(VIDEO) @@ -32,110 +31,104 @@ #include "EventTarget.h" #include "MediaControllerInterface.h" #include "Timer.h" -#include -#include #include namespace WebCore { class Clock; class HTMLMediaElement; -class Event; -class ScriptExecutionContext; class MediaController final : public RefCounted, public MediaControllerInterface, public EventTargetWithInlineData { public: - static PassRefPtr create(ScriptExecutionContext&); + static Ref create(ScriptExecutionContext&); virtual ~MediaController(); - void addMediaElement(HTMLMediaElement*); - void removeMediaElement(HTMLMediaElement*); - bool containsMediaElement(HTMLMediaElement*) const; + Ref buffered() const final; + Ref seekable() const final; + Ref played() final; - const String& mediaGroup() const { return m_mediaGroup; } - - virtual PassRefPtr buffered() const override; - virtual PassRefPtr seekable() const override; - virtual PassRefPtr played() override; - - virtual double duration() const override; - virtual double currentTime() const override; - virtual void setCurrentTime(double) override; - - virtual bool paused() const override { return m_paused; } - virtual void play() override; - virtual void pause() override; + double duration() const final; + double currentTime() const final; + void setCurrentTime(double) final; + + bool paused() const final { return m_paused; } + void play() final; + void pause() final; void unpause(); + + double defaultPlaybackRate() const final { return m_defaultPlaybackRate; } + void setDefaultPlaybackRate(double) final; - virtual double defaultPlaybackRate() const override { return m_defaultPlaybackRate; } - virtual void setDefaultPlaybackRate(double) override; - - virtual double playbackRate() const override; - virtual void setPlaybackRate(double) override; - - virtual double volume() const override { return m_volume; } - virtual void setVolume(double, ExceptionCode&) override; - - virtual bool muted() const override { return m_muted; } - virtual void setMuted(bool) override; - - virtual ReadyState readyState() const override { return m_readyState; } + double playbackRate() const final; + void setPlaybackRate(double) final; - enum PlaybackState { WAITING, PLAYING, ENDED }; - const AtomicString& playbackState() const; + double volume() const final { return m_volume; } + ExceptionOr setVolume(double) final; - virtual bool supportsFullscreen() const override { return false; } - virtual bool isFullscreen() const override { return false; } - virtual void enterFullscreen() override { } + bool muted() const final { return m_muted; } + void setMuted(bool) final; - virtual bool hasAudio() const override; - virtual bool hasVideo() const override; - virtual bool hasClosedCaptions() const override; - virtual void setClosedCaptionsVisible(bool) override; - virtual bool closedCaptionsVisible() const override { return m_closedCaptionsVisible; } - - virtual bool supportsScanning() const override; - - virtual void beginScrubbing() override; - virtual void endScrubbing() override; - - virtual bool canPlay() const override; - - virtual bool isLiveStream() const override; - - virtual bool hasCurrentSrc() const override; - - virtual void returnToRealtime() override; - - bool isBlocked() const; + const AtomicString& playbackState() const; - // EventTarget - using RefCounted::ref; - using RefCounted::deref; + using RefCounted::ref; + using RefCounted::deref; private: explicit MediaController(ScriptExecutionContext&); + void reportControllerState(); void updateReadyState(); void updatePlaybackState(); void updateMediaElements(); - void bringElementUpToSpeed(HTMLMediaElement*); + void bringElementUpToSpeed(HTMLMediaElement&); void scheduleEvent(const AtomicString& eventName); - void asyncEventTimerFired(Timer&); - void clearPositionTimerFired(Timer&); + void asyncEventTimerFired(); + void clearPositionTimerFired(); bool hasEnded() const; void scheduleTimeupdateEvent(); - void timeupdateTimerFired(Timer&); void startTimeupdateTimer(); - // EventTarget - virtual void refEventTarget() override { ref(); } - virtual void derefEventTarget() override { deref(); } - virtual EventTargetInterface eventTargetInterface() const override { return MediaControllerEventTargetInterfaceType; } - virtual ScriptExecutionContext* scriptExecutionContext() const override { return &m_scriptExecutionContext; }; + void refEventTarget() final { ref(); } + void derefEventTarget() final { deref(); } + EventTargetInterface eventTargetInterface() const final { return MediaControllerEventTargetInterfaceType; } + ScriptExecutionContext* scriptExecutionContext() const final { return &m_scriptExecutionContext; }; + + void addMediaElement(HTMLMediaElement&); + void removeMediaElement(HTMLMediaElement&); + bool containsMediaElement(HTMLMediaElement&) const; + + const String& mediaGroup() const { return m_mediaGroup; } + + bool supportsFullscreen(HTMLMediaElementEnums::VideoFullscreenMode) const final { return false; } + bool isFullscreen() const final { return false; } + void enterFullscreen() final { } + + bool hasAudio() const final; + bool hasVideo() const final; + bool hasClosedCaptions() const final; + void setClosedCaptionsVisible(bool) final; + bool closedCaptionsVisible() const final { return m_closedCaptionsVisible; } + + bool supportsScanning() const final; + void beginScrubbing() final; + void endScrubbing() final; + void beginScanning(ScanDirection) final; + void endScanning() final; + + bool canPlay() const final; + bool isLiveStream() const final; + bool hasCurrentSrc() const final; + bool isBlocked() const; + + void returnToRealtime() final; + + ReadyState readyState() const final { return m_readyState; } + + enum PlaybackState { WAITING, PLAYING, ENDED }; friend class HTMLMediaElement; friend class MediaControllerEventListener; + Vector m_mediaElements; bool m_paused; double m_defaultPlaybackRate; @@ -144,18 +137,18 @@ private: bool m_muted; ReadyState m_readyState; PlaybackState m_playbackState; - Vector> m_pendingEvents; - Timer m_asyncEventTimer; - mutable Timer m_clearPositionTimer; + Vector> m_pendingEvents; + Timer m_asyncEventTimer; + mutable Timer m_clearPositionTimer; String m_mediaGroup; bool m_closedCaptionsVisible; std::unique_ptr m_clock; ScriptExecutionContext& m_scriptExecutionContext; - Timer m_timeupdateTimer; + Timer m_timeupdateTimer; double m_previousTimeupdateTime; + bool m_resetCurrentTimeInNextPlay { false }; }; } // namespace WebCore #endif -#endif -- cgit v1.2.1