LibWeb: Add scaffolding for DynamicsCompressorNode

This commit is contained in:
Shannon Booth 2024-05-05 10:53:34 +12:00 committed by Tim Flynn
parent e2336e2099
commit 2a56df8ecd
Notes: sideshowbarker 2024-07-17 06:09:44 +09:00
7 changed files with 116 additions and 0 deletions

View file

@ -0,0 +1,45 @@
/*
* Copyright (c) 2024, Shannon Booth <shannon@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibWeb/Bindings/DynamicsCompressorNodePrototype.h>
#include <LibWeb/Bindings/Intrinsics.h>
#include <LibWeb/WebAudio/DynamicsCompressorNode.h>
namespace Web::WebAudio {
JS_DEFINE_ALLOCATOR(DynamicsCompressorNode);
DynamicsCompressorNode::~DynamicsCompressorNode() = default;
WebIDL::ExceptionOr<JS::NonnullGCPtr<DynamicsCompressorNode>> DynamicsCompressorNode::create(JS::Realm& realm, JS::NonnullGCPtr<BaseAudioContext> context, DynamicsCompressorOptions const& options)
{
return construct_impl(realm, context, options);
}
// https://webaudio.github.io/web-audio-api/#dom-dynamicscompressornode-dynamicscompressornode
WebIDL::ExceptionOr<JS::NonnullGCPtr<DynamicsCompressorNode>> DynamicsCompressorNode::construct_impl(JS::Realm& realm, JS::NonnullGCPtr<BaseAudioContext> context, DynamicsCompressorOptions const& options)
{
// FIXME: Invoke "Initialize the AudioNode" steps.
return realm.vm().heap().allocate<DynamicsCompressorNode>(realm, realm, context, options);
}
DynamicsCompressorNode::DynamicsCompressorNode(JS::Realm& realm, JS::NonnullGCPtr<BaseAudioContext> context, DynamicsCompressorOptions const&)
: AudioNode(realm, context)
{
}
void DynamicsCompressorNode::initialize(JS::Realm& realm)
{
Base::initialize(realm);
WEB_SET_PROTOTYPE_FOR_INTERFACE(DynamicsCompressorNode);
}
void DynamicsCompressorNode::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
}
}