mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-11-03 23:00:58 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			74 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
 * Copyright (c) 2024, Jamie Mansfield <jmansfield@cadixdev.org>
 | 
						|
 *
 | 
						|
 * SPDX-License-Identifier: BSD-2-Clause
 | 
						|
 */
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include <AK/String.h>
 | 
						|
#include <LibJS/Forward.h>
 | 
						|
#include <LibJS/Heap/GCPtr.h>
 | 
						|
#include <LibWeb/Bindings/TextTrackPrototype.h>
 | 
						|
#include <LibWeb/DOM/EventTarget.h>
 | 
						|
#include <LibWeb/Forward.h>
 | 
						|
#include <LibWeb/WebIDL/ExceptionOr.h>
 | 
						|
 | 
						|
namespace Web::HTML {
 | 
						|
 | 
						|
class TextTrack final : public DOM::EventTarget {
 | 
						|
    WEB_PLATFORM_OBJECT(TextTrack, DOM::EventTarget);
 | 
						|
    JS_DECLARE_ALLOCATOR(TextTrack);
 | 
						|
 | 
						|
public:
 | 
						|
    // https://html.spec.whatwg.org/multipage/media.html#text-track-readiness-state
 | 
						|
    enum class ReadinessState {
 | 
						|
        NotLoaded,
 | 
						|
        Loading,
 | 
						|
        Loaded,
 | 
						|
        FailedToLoad,
 | 
						|
    };
 | 
						|
 | 
						|
    static JS::NonnullGCPtr<TextTrack> create(JS::Realm&);
 | 
						|
    virtual ~TextTrack() override;
 | 
						|
 | 
						|
    Bindings::TextTrackKind kind();
 | 
						|
    void set_kind(Bindings::TextTrackKind);
 | 
						|
 | 
						|
    String label();
 | 
						|
    void set_label(String);
 | 
						|
 | 
						|
    String language();
 | 
						|
    void set_language(String);
 | 
						|
 | 
						|
    String id();
 | 
						|
    void set_id(String);
 | 
						|
 | 
						|
    Bindings::TextTrackMode mode();
 | 
						|
    void set_mode(Bindings::TextTrackMode);
 | 
						|
 | 
						|
    void set_oncuechange(WebIDL::CallbackType*);
 | 
						|
    WebIDL::CallbackType* oncuechange();
 | 
						|
 | 
						|
    ReadinessState readiness_state() { return m_readiness_state; }
 | 
						|
    void set_readiness_state(ReadinessState readiness_state) { m_readiness_state = readiness_state; }
 | 
						|
 | 
						|
private:
 | 
						|
    TextTrack(JS::Realm&);
 | 
						|
 | 
						|
    virtual void initialize(JS::Realm&) override;
 | 
						|
 | 
						|
    Bindings::TextTrackKind m_kind { Bindings::TextTrackKind::Subtitles };
 | 
						|
    String m_label {};
 | 
						|
    String m_language {};
 | 
						|
 | 
						|
    String m_id {};
 | 
						|
 | 
						|
    Bindings::TextTrackMode m_mode { Bindings::TextTrackMode::Disabled };
 | 
						|
 | 
						|
    ReadinessState m_readiness_state { ReadinessState::NotLoaded };
 | 
						|
};
 | 
						|
 | 
						|
Bindings::TextTrackKind text_track_kind_from_string(String);
 | 
						|
 | 
						|
}
 |