/* * Copyright (c) 2024, Jelle Raaijmakers * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace Web::MediaSourceExtensions { // https://w3c.github.io/media-source/#dom-sourcebuffer class SourceBuffer : public DOM::EventTarget { WEB_PLATFORM_OBJECT(SourceBuffer, DOM::EventTarget); GC_DECLARE_ALLOCATOR(SourceBuffer); public: void set_onupdatestart(GC::Ptr); GC::Ptr onupdatestart(); void set_onupdate(GC::Ptr); GC::Ptr onupdate(); void set_onupdateend(GC::Ptr); GC::Ptr onupdateend(); void set_onerror(GC::Ptr); GC::Ptr onerror(); void set_onabort(GC::Ptr); GC::Ptr onabort(); protected: SourceBuffer(JS::Realm&); virtual ~SourceBuffer() override; virtual void initialize(JS::Realm&) override; private: }; }