diff options
Diffstat (limited to 'Source/WebCore/html/track/VideoTrack.h')
-rw-r--r-- | Source/WebCore/html/track/VideoTrack.h | 65 |
1 files changed, 31 insertions, 34 deletions
diff --git a/Source/WebCore/html/track/VideoTrack.h b/Source/WebCore/html/track/VideoTrack.h index 6343a0743..ebee829e1 100644 --- a/Source/WebCore/html/track/VideoTrack.h +++ b/Source/WebCore/html/track/VideoTrack.h @@ -1,6 +1,6 @@ /* * Copyright (C) 2011 Google Inc. All rights reserved. - * Copyright (C) 2011, 2012, 2013 Apple Inc. All rights reserved. + * Copyright (C) 2011-2017 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -11,10 +11,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 @@ -24,17 +24,12 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef VideoTrack_h -#define VideoTrack_h +#pragma once #if ENABLE(VIDEO_TRACK) -#include "ExceptionCode.h" #include "TrackBase.h" #include "VideoTrackPrivate.h" -#include <wtf/PassOwnPtr.h> -#include <wtf/RefCounted.h> -#include <wtf/text/WTFString.h> namespace WebCore { @@ -44,14 +39,14 @@ class VideoTrack; class VideoTrackClient { public: virtual ~VideoTrackClient() { } - virtual void videoTrackSelectedChanged(VideoTrack*) = 0; + virtual void videoTrackSelectedChanged(VideoTrack&) = 0; }; -class VideoTrack : public TrackBase, public VideoTrackPrivateClient { +class VideoTrack final : public MediaTrackBase, private VideoTrackPrivateClient { public: - static PassRefPtr<VideoTrack> create(VideoTrackClient* client, PassRefPtr<VideoTrackPrivate> trackPrivate) + static Ref<VideoTrack> create(VideoTrackClient& client, VideoTrackPrivate& trackPrivate) { - return adoptRef(new VideoTrack(client, trackPrivate)); + return adoptRef(*new VideoTrack(client, trackPrivate)); } virtual ~VideoTrack(); @@ -61,50 +56,52 @@ public: static const AtomicString& signKeyword(); static const AtomicString& subtitlesKeyword(); static const AtomicString& commentaryKeyword(); - virtual const AtomicString& defaultKindKeyword() const override { return emptyAtom; } bool selected() const { return m_selected; } virtual void setSelected(const bool); - virtual void clearClient() override { m_client = 0; } + void clearClient() final { m_client = nullptr; } VideoTrackClient* client() const { return m_client; } size_t inbandTrackIndex(); #if ENABLE(MEDIA_SOURCE) - virtual void setKind(const AtomicString&) override; - virtual void setLanguage(const AtomicString&) override; + void setKind(const AtomicString&) final; + void setLanguage(const AtomicString&) final; #endif const MediaDescription& description() const; -protected: - VideoTrack(VideoTrackClient*, PassRefPtr<VideoTrackPrivate> privateTrack); + void setPrivate(VideoTrackPrivate&); private: - virtual bool isValidKind(const AtomicString&) const override; + VideoTrack(VideoTrackClient&, VideoTrackPrivate&); - virtual void selectedChanged(VideoTrackPrivate*, bool) override; - virtual void idChanged(TrackPrivateBase*, const String&) override; - virtual void labelChanged(TrackPrivateBase*, const String&) override; - virtual void languageChanged(TrackPrivateBase*, const String&) override; - virtual void willRemove(TrackPrivateBase*) override; + bool isValidKind(const AtomicString&) const final; - virtual bool enabled() const override { return selected(); } + // VideoTrackPrivateClient + void selectedChanged(bool) final; + + // TrackPrivateBaseClient + void idChanged(const AtomicString&) final; + void labelChanged(const AtomicString&) final; + void languageChanged(const AtomicString&) final; + void willRemove() final; + + bool enabled() const final { return selected(); } + + void updateKindFromPrivate(); bool m_selected; VideoTrackClient* m_client; - RefPtr<VideoTrackPrivate> m_private; + Ref<VideoTrackPrivate> m_private; }; -inline VideoTrack* toVideoTrack(TrackBase* track) -{ - ASSERT_WITH_SECURITY_IMPLICATION(track->type() == TrackBase::VideoTrack); - return static_cast<VideoTrack*>(track); -} - } // namespace WebCore -#endif +SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::VideoTrack) + static bool isType(const WebCore::TrackBase& track) { return track.type() == WebCore::TrackBase::VideoTrack; } +SPECIALIZE_TYPE_TRAITS_END() + #endif |