mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-30 13:45:27 +00:00
75a54dece9
We were incorrectly using the wrapper cache cycle collection macros when that functionality was already implemented by the base classes. Therefore, we should instead use the inherited version of the cycle collection macros.
115 lines
2.5 KiB
C++
115 lines
2.5 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim:set ts=2 sw=2 et tw=78: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef mozilla_dom_TextTrack_h
|
|
#define mozilla_dom_TextTrack_h
|
|
|
|
#include "mozilla/dom/TextTrackBinding.h"
|
|
#include "mozilla/dom/TextTrackCue.h"
|
|
#include "mozilla/dom/TextTrackCueList.h"
|
|
#include "nsCOMPtr.h"
|
|
#include "nsCycleCollectionParticipant.h"
|
|
#include "nsDOMEventTargetHelper.h"
|
|
#include "nsString.h"
|
|
#include "nsWrapperCache.h"
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
|
|
class TextTrackCue;
|
|
class TextTrackCueList;
|
|
|
|
class TextTrack MOZ_FINAL : public nsDOMEventTargetHelper
|
|
{
|
|
public:
|
|
NS_DECL_ISUPPORTS_INHERITED
|
|
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(TextTrack, nsDOMEventTargetHelper)
|
|
|
|
TextTrack(nsISupports* aParent);
|
|
TextTrack(nsISupports* aParent,
|
|
TextTrackKind aKind,
|
|
const nsAString& aLabel,
|
|
const nsAString& aLanguage);
|
|
|
|
virtual JSObject* WrapObject(JSContext* aCx,
|
|
JS::Handle<JSObject*> aScope) MOZ_OVERRIDE;
|
|
|
|
nsISupports* GetParentObject() const
|
|
{
|
|
return mParent;
|
|
}
|
|
|
|
TextTrackKind Kind() const
|
|
{
|
|
return mKind;
|
|
}
|
|
void GetLabel(nsAString& aLabel) const
|
|
{
|
|
aLabel = mLabel;
|
|
}
|
|
void GetLanguage(nsAString& aLanguage) const
|
|
{
|
|
aLanguage = mLanguage;
|
|
}
|
|
void GetInBandMetadataTrackDispatchType(nsAString& aType) const
|
|
{
|
|
aType = mType;
|
|
}
|
|
void GetId(nsAString& aId) const
|
|
{
|
|
aId = mId;
|
|
}
|
|
|
|
TextTrackMode Mode() const
|
|
{
|
|
return mMode;
|
|
}
|
|
void SetMode(TextTrackMode aValue);
|
|
|
|
TextTrackCueList* GetCues() const
|
|
{
|
|
if (mMode == TextTrackMode::Disabled) {
|
|
return nullptr;
|
|
}
|
|
return mCueList;
|
|
}
|
|
|
|
TextTrackCueList* GetActiveCues() const
|
|
{
|
|
if (mMode == TextTrackMode::Disabled) {
|
|
return nullptr;
|
|
}
|
|
return mActiveCueList;
|
|
}
|
|
|
|
// Time is in seconds.
|
|
void Update(double aTime);
|
|
|
|
void AddCue(TextTrackCue& aCue);
|
|
void RemoveCue(TextTrackCue& aCue);
|
|
void CueChanged(TextTrackCue& aCue);
|
|
|
|
IMPL_EVENT_HANDLER(cuechange)
|
|
|
|
private:
|
|
nsCOMPtr<nsISupports> mParent;
|
|
|
|
TextTrackKind mKind;
|
|
nsString mLabel;
|
|
nsString mLanguage;
|
|
nsString mType;
|
|
nsString mId;
|
|
TextTrackMode mMode;
|
|
|
|
nsRefPtr<TextTrackCueList> mCueList;
|
|
nsRefPtr<TextTrackCueList> mActiveCueList;
|
|
};
|
|
|
|
} // namespace dom
|
|
} // namespace mozilla
|
|
|
|
#endif // mozilla_dom_TextTrack_h
|