mirror of
https://github.com/SerenityOS/serenity
synced 2026-05-05 06:32:26 +02:00
LibWeb: Add AudioParams for DynamicsCompressorNode
This commit is contained in:
committed by
Andreas Kling
parent
8fa7b2c173
commit
cf615cbd1c
@@ -6,6 +6,7 @@
|
||||
|
||||
#include <LibWeb/Bindings/DynamicsCompressorNodePrototype.h>
|
||||
#include <LibWeb/Bindings/Intrinsics.h>
|
||||
#include <LibWeb/WebAudio/AudioParam.h>
|
||||
#include <LibWeb/WebAudio/DynamicsCompressorNode.h>
|
||||
|
||||
namespace Web::WebAudio {
|
||||
@@ -26,8 +27,13 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<DynamicsCompressorNode>> DynamicsCompressor
|
||||
return realm.vm().heap().allocate<DynamicsCompressorNode>(realm, realm, context, options);
|
||||
}
|
||||
|
||||
DynamicsCompressorNode::DynamicsCompressorNode(JS::Realm& realm, JS::NonnullGCPtr<BaseAudioContext> context, DynamicsCompressorOptions const&)
|
||||
DynamicsCompressorNode::DynamicsCompressorNode(JS::Realm& realm, JS::NonnullGCPtr<BaseAudioContext> context, DynamicsCompressorOptions const& options)
|
||||
: AudioNode(realm, context)
|
||||
, m_threshold(AudioParam::create(realm, options.threshold, -100, 0, Bindings::AutomationRate::KRate))
|
||||
, m_knee(AudioParam::create(realm, options.knee, 0, 40, Bindings::AutomationRate::KRate))
|
||||
, m_ratio(AudioParam::create(realm, options.ratio, 1, 20, Bindings::AutomationRate::KRate))
|
||||
, m_attack(AudioParam::create(realm, options.attack, 0, 1, Bindings::AutomationRate::KRate))
|
||||
, m_release(AudioParam::create(realm, options.release, 0, 1, Bindings::AutomationRate::KRate))
|
||||
{
|
||||
}
|
||||
|
||||
@@ -40,6 +46,11 @@ void DynamicsCompressorNode::initialize(JS::Realm& realm)
|
||||
void DynamicsCompressorNode::visit_edges(Cell::Visitor& visitor)
|
||||
{
|
||||
Base::visit_edges(visitor);
|
||||
visitor.visit(m_threshold);
|
||||
visitor.visit(m_knee);
|
||||
visitor.visit(m_ratio);
|
||||
visitor.visit(m_attack);
|
||||
visitor.visit(m_release);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user