/* * Copyright (c) 2024, Jelle Raaijmakers * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include namespace Web::MediaSourceExtensions { GC_DEFINE_ALLOCATOR(ManagedMediaSource); WebIDL::ExceptionOr> ManagedMediaSource::construct_impl(JS::Realm& realm) { return realm.create(realm); } ManagedMediaSource::ManagedMediaSource(JS::Realm& realm) : MediaSource(realm) { } ManagedMediaSource::~ManagedMediaSource() = default; void ManagedMediaSource::initialize(JS::Realm& realm) { Base::initialize(realm); WEB_SET_PROTOTYPE_FOR_INTERFACE(ManagedMediaSource); } // https://w3c.github.io/media-source/#dom-managedmediasource-onstartstreaming void ManagedMediaSource::set_onstartstreaming(GC::Ptr event_handler) { set_event_handler_attribute(EventNames::startstreaming, event_handler); } // https://w3c.github.io/media-source/#dom-managedmediasource-onstartstreaming GC::Ptr ManagedMediaSource::onstartstreaming() { return event_handler_attribute(EventNames::startstreaming); } // https://w3c.github.io/media-source/#dom-managedmediasource-onendstreaming void ManagedMediaSource::set_onendstreaming(GC::Ptr event_handler) { set_event_handler_attribute(EventNames::endstreaming, event_handler); } // https://w3c.github.io/media-source/#dom-managedmediasource-onendstreaming GC::Ptr ManagedMediaSource::onendstreaming() { return event_handler_attribute(EventNames::endstreaming); } }