Shaka Player Embedded
Public Member Functions | List of all members
shaka::js::mse::TrackList< JsTrack, PubTrack > Class Template Reference

#include <track_list.h>

Inheritance diagram for shaka::js::mse::TrackList< JsTrack, PubTrack >:
shaka::js::events::EventTarget shaka::media::MediaPlayer::Client shaka::BackingObject shaka::memory::Traceable

Public Member Functions

 TrackList (media::MediaPlayer *player)
 
 ~TrackList () override
 
void Trace (memory::HeapTracer *tracer) const override
 
size_t length () const
 
bool GetIndex (size_t i, RefPtr< JsTrack > *track) const
 
void Detach ()
 
RefPtr< JsTrack > GetTrack (std::shared_ptr< PubTrack > pub_track)
 
void AddTrack (std::shared_ptr< PubTrack > pub_track)
 
void RemoveTrack (std::shared_ptr< PubTrack > pub_track)
 
- Public Member Functions inherited from shaka::js::events::EventTarget
 EventTarget ()
 
void AddEventListener (const std::string &type, Listener callback)
 
void SetCppEventListener (EventType type, std::function< void()> callback)
 
void RemoveEventListener (const std::string &type, Listener callback)
 
void UnsetCppEventListener (EventType type)
 
ExceptionOr< bool > DispatchEvent (RefPtr< Event > event)
 
ExceptionOr< bool > DispatchEventInternal (RefPtr< Event > event, bool *did_listeners_throw)
 
template<typename EventType , typename... Args>
std::shared_ptr< ThreadEvent< bool > > ScheduleEvent (Args &&... args)
 
template<typename EventType , typename... Args>
ExceptionOr< bool > RaiseEvent (Args... args)
 
- Public Member Functions inherited from shaka::BackingObject
 BackingObject ()
 
void Trace (memory::HeapTracer *tracer) const override
 
bool IsRootedAlive () const override
 
std::string name () const
 
virtual BackingObjectFactoryBasefactory () const =0
 
bool DerivedFrom (const std::string &base)
 
ReturnVal< JsValue > JsThis () const
 
void SetJsThis (Handle< JsObject > this_)
 
- Public Member Functions inherited from shaka::memory::Traceable
virtual ~Traceable ()
 
virtual bool IsShortLived () const
 

Additional Inherited Members

- Public Types inherited from shaka::js::events::EventTarget
using Listener = optional< Callback >
 
- Static Public Member Functions inherited from shaka::BackingObject
static void * operator new[] (size_t size)=delete
 
static void operator delete[] (void *)=delete
 
- Static Public Attributes inherited from shaka::BackingObject
static constexpr const size_t kInternalFieldCount = 2
 
- Static Public Attributes inherited from shaka::memory::Traceable
static constexpr const uint64_t kShortLiveDurationMs = 5000
 
- Protected Member Functions inherited from shaka::js::events::EventTarget
void AddListenerField (EventType type, Listener *on_field)
 
- Protected Member Functions inherited from shaka::BackingObject
 ~BackingObject () override
 

Detailed Description

template<typename JsTrack, typename PubTrack>
class shaka::js::mse::TrackList< JsTrack, PubTrack >

Stores a list of tracks. This acts as a proxy between the MediaPlayer track objects and the JavaScript wrappers of them. Subclasses will need to call AddTrack/RemoveTrack when tracks get added/removed based on the events from the MediaPlayer.

Definition at line 55 of file track_list.h.

Constructor & Destructor Documentation

§ TrackList()

template<typename JsTrack, typename PubTrack>
shaka::js::mse::TrackList< JsTrack, PubTrack >::TrackList ( media::MediaPlayer player)
inlineexplicit

Definition at line 57 of file track_list.h.

§ ~TrackList()

template<typename JsTrack, typename PubTrack>
shaka::js::mse::TrackList< JsTrack, PubTrack >::~TrackList ( )
inlineoverride

Definition at line 62 of file track_list.h.

Member Function Documentation

§ AddTrack()

template<typename JsTrack, typename PubTrack>
void shaka::js::mse::TrackList< JsTrack, PubTrack >::AddTrack ( std::shared_ptr< PubTrack >  pub_track)
inline

Definition at line 104 of file track_list.h.

§ Detach()

template<typename JsTrack, typename PubTrack>
void shaka::js::mse::TrackList< JsTrack, PubTrack >::Detach ( )
inline

Definition at line 88 of file track_list.h.

§ GetIndex()

template<typename JsTrack, typename PubTrack>
bool shaka::js::mse::TrackList< JsTrack, PubTrack >::GetIndex ( size_t  i,
RefPtr< JsTrack > *  track 
) const
inline

Definition at line 78 of file track_list.h.

§ GetTrack()

template<typename JsTrack, typename PubTrack>
RefPtr<JsTrack> shaka::js::mse::TrackList< JsTrack, PubTrack >::GetTrack ( std::shared_ptr< PubTrack >  pub_track)
inline

Definition at line 95 of file track_list.h.

§ length()

template<typename JsTrack, typename PubTrack>
size_t shaka::js::mse::TrackList< JsTrack, PubTrack >::length ( ) const
inline

Definition at line 73 of file track_list.h.

§ RemoveTrack()

template<typename JsTrack, typename PubTrack>
void shaka::js::mse::TrackList< JsTrack, PubTrack >::RemoveTrack ( std::shared_ptr< PubTrack >  pub_track)
inline

Definition at line 110 of file track_list.h.

§ Trace()

template<typename JsTrack, typename PubTrack>
void shaka::js::mse::TrackList< JsTrack, PubTrack >::Trace ( memory::HeapTracer tracer) const
inlineoverridevirtual

Called during a GC run. This should call HeapTracer::Trace on all Traceable members. Be sure to call the base method when overriding.

Reimplemented from shaka::js::events::EventTarget.

Definition at line 66 of file track_list.h.


The documentation for this class was generated from the following file: