diff options
Diffstat (limited to 'Source/WebCore/html/track/AudioTrack.h')
-rw-r--r-- | Source/WebCore/html/track/AudioTrack.h | 65 |
1 files changed, 31 insertions, 34 deletions
diff --git a/Source/WebCore/html/track/AudioTrack.h b/Source/WebCore/html/track/AudioTrack.h index 29c5bd4c0..07c7794fa 100644 --- a/Source/WebCore/html/track/AudioTrack.h +++ b/Source/WebCore/html/track/AudioTrack.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 AudioTrack_h -#define AudioTrack_h +#pragma once #if ENABLE(VIDEO_TRACK) #include "AudioTrackPrivate.h" -#include "ExceptionCode.h" #include "TrackBase.h" -#include <wtf/PassOwnPtr.h> -#include <wtf/RefCounted.h> -#include <wtf/text/WTFString.h> namespace WebCore { @@ -43,14 +38,14 @@ class AudioTrack; class AudioTrackClient { public: virtual ~AudioTrackClient() { } - virtual void audioTrackEnabledChanged(AudioTrack*) = 0; + virtual void audioTrackEnabledChanged(AudioTrack&) = 0; }; -class AudioTrack : public TrackBase, public AudioTrackPrivateClient { +class AudioTrack final : public MediaTrackBase, private AudioTrackPrivateClient { public: - static PassRefPtr<AudioTrack> create(AudioTrackClient* client, PassRefPtr<AudioTrackPrivate> trackPrivate) + static Ref<AudioTrack> create(AudioTrackClient& client, AudioTrackPrivate& trackPrivate) { - return adoptRef(new AudioTrack(client, trackPrivate)); + return adoptRef(*new AudioTrack(client, trackPrivate)); } virtual ~AudioTrack(); @@ -60,41 +55,43 @@ public: static const AtomicString& mainDescKeyword(); static const AtomicString& translationKeyword(); static const AtomicString& commentaryKeyword(); - virtual const AtomicString& defaultKindKeyword() const override { return emptyAtom; } - virtual bool enabled() const override { return m_enabled; } - virtual void setEnabled(const bool); + bool enabled() const final { return m_enabled; } + void setEnabled(const bool); - virtual void clearClient() override { m_client = 0; } + void clearClient() final { m_client = nullptr; } AudioTrackClient* client() const { return m_client; } - size_t inbandTrackIndex(); + size_t inbandTrackIndex() const; -protected: - AudioTrack(AudioTrackClient*, PassRefPtr<AudioTrackPrivate>); + void setPrivate(AudioTrackPrivate&); private: - virtual bool isValidKind(const AtomicString&) const override; + AudioTrack(AudioTrackClient&, AudioTrackPrivate&); - virtual void enabledChanged(AudioTrackPrivate*, 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; + + // AudioTrackPrivateClient + void enabledChanged(bool) final; + + // TrackPrivateBaseClient + void idChanged(const AtomicString&) final; + void labelChanged(const AtomicString&) final; + void languageChanged(const AtomicString&) final; + void willRemove() final; + + void updateKindFromPrivate(); bool m_enabled; AudioTrackClient* m_client; - RefPtr<AudioTrackPrivate> m_private; + Ref<AudioTrackPrivate> m_private; }; -inline AudioTrack* toAudioTrack(TrackBase* track) -{ - ASSERT_WITH_SECURITY_IMPLICATION(track->type() == TrackBase::AudioTrack); - return static_cast<AudioTrack*>(track); -} - } // namespace WebCore -#endif +SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::AudioTrack) + static bool isType(const WebCore::TrackBase& track) { return track.type() == WebCore::TrackBase::AudioTrack; } +SPECIALIZE_TYPE_TRAITS_END() + #endif |