/* * Copyright (c) 2024, Shannon Booth * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include namespace Web::WebAudio { JS_DEFINE_ALLOCATOR(AudioScheduledSourceNode); AudioScheduledSourceNode::AudioScheduledSourceNode(JS::Realm& realm, JS::NonnullGCPtr context) : AudioNode(realm, context) { } AudioScheduledSourceNode::~AudioScheduledSourceNode() = default; // https://webaudio.github.io/web-audio-api/#dom-audioscheduledsourcenode-onended JS::GCPtr AudioScheduledSourceNode::onended() { return event_handler_attribute(HTML::EventNames::ended); } // https://webaudio.github.io/web-audio-api/#dom-audioscheduledsourcenode-onended void AudioScheduledSourceNode::set_onended(JS::GCPtr value) { set_event_handler_attribute(HTML::EventNames::ended, value); } // https://webaudio.github.io/web-audio-api/#dom-audioscheduledsourcenode-start WebIDL::ExceptionOr AudioScheduledSourceNode::start(double when) { (void)when; return WebIDL::NotSupportedError::create(realm(), "FIXME: Implement AudioScheduledSourceNode::start"_fly_string); } // https://webaudio.github.io/web-audio-api/#dom-audioscheduledsourcenode-stop WebIDL::ExceptionOr AudioScheduledSourceNode::stop(double when) { (void)when; return WebIDL::NotSupportedError::create(realm(), "FIXME: Implement AudioScheduledSourceNode::stop"_fly_string); } void AudioScheduledSourceNode::initialize(JS::Realm& realm) { Base::initialize(realm); WEB_SET_PROTOTYPE_FOR_INTERFACE(AudioScheduledSourceNode); } void AudioScheduledSourceNode::visit_edges(Cell::Visitor& visitor) { Base::visit_edges(visitor); } }