LibWeb: Add BaseAudioContext.createConstantSource() factory method

This commit is contained in:
Tim Ledbetter 2025-01-02 10:25:21 +00:00 committed by Andreas Kling
commit 6cab972248
Notes: github-actions[bot] 2025-01-03 10:14:24 +00:00
3 changed files with 9 additions and 1 deletions

View file

@ -91,6 +91,12 @@ WebIDL::ExceptionOr<GC::Ref<ChannelMergerNode>> BaseAudioContext::create_channel
return ChannelMergerNode::create(realm(), *this, options); return ChannelMergerNode::create(realm(), *this, options);
} }
// https://webaudio.github.io/web-audio-api/#dom-baseaudiocontext-createconstantsource
WebIDL::ExceptionOr<GC::Ref<ConstantSourceNode>> BaseAudioContext::create_constant_source()
{
return ConstantSourceNode::create(realm(), *this);
}
// https://webaudio.github.io/web-audio-api/#dom-baseaudiocontext-createchannelsplitter // https://webaudio.github.io/web-audio-api/#dom-baseaudiocontext-createchannelsplitter
WebIDL::ExceptionOr<GC::Ref<ChannelSplitterNode>> BaseAudioContext::create_channel_splitter(WebIDL::UnsignedLong number_of_outputs) WebIDL::ExceptionOr<GC::Ref<ChannelSplitterNode>> BaseAudioContext::create_channel_splitter(WebIDL::UnsignedLong number_of_outputs)
{ {

View file

@ -14,6 +14,7 @@
#include <LibWeb/WebAudio/BiquadFilterNode.h> #include <LibWeb/WebAudio/BiquadFilterNode.h>
#include <LibWeb/WebAudio/ChannelMergerNode.h> #include <LibWeb/WebAudio/ChannelMergerNode.h>
#include <LibWeb/WebAudio/ChannelSplitterNode.h> #include <LibWeb/WebAudio/ChannelSplitterNode.h>
#include <LibWeb/WebAudio/ConstantSourceNode.h>
#include <LibWeb/WebIDL/Types.h> #include <LibWeb/WebIDL/Types.h>
namespace Web::WebAudio { namespace Web::WebAudio {
@ -60,6 +61,7 @@ public:
WebIDL::ExceptionOr<GC::Ref<AudioBuffer>> create_buffer(WebIDL::UnsignedLong number_of_channels, WebIDL::UnsignedLong length, float sample_rate); WebIDL::ExceptionOr<GC::Ref<AudioBuffer>> create_buffer(WebIDL::UnsignedLong number_of_channels, WebIDL::UnsignedLong length, float sample_rate);
WebIDL::ExceptionOr<GC::Ref<AudioBufferSourceNode>> create_buffer_source(); WebIDL::ExceptionOr<GC::Ref<AudioBufferSourceNode>> create_buffer_source();
WebIDL::ExceptionOr<GC::Ref<ChannelMergerNode>> create_channel_merger(WebIDL::UnsignedLong number_of_inputs); WebIDL::ExceptionOr<GC::Ref<ChannelMergerNode>> create_channel_merger(WebIDL::UnsignedLong number_of_inputs);
WebIDL::ExceptionOr<GC::Ref<ConstantSourceNode>> create_constant_source();
WebIDL::ExceptionOr<GC::Ref<ChannelSplitterNode>> create_channel_splitter(WebIDL::UnsignedLong number_of_outputs); WebIDL::ExceptionOr<GC::Ref<ChannelSplitterNode>> create_channel_splitter(WebIDL::UnsignedLong number_of_outputs);
WebIDL::ExceptionOr<GC::Ref<OscillatorNode>> create_oscillator(); WebIDL::ExceptionOr<GC::Ref<OscillatorNode>> create_oscillator();
WebIDL::ExceptionOr<GC::Ref<DynamicsCompressorNode>> create_dynamics_compressor(); WebIDL::ExceptionOr<GC::Ref<DynamicsCompressorNode>> create_dynamics_compressor();

View file

@ -36,7 +36,7 @@ interface BaseAudioContext : EventTarget {
AudioBufferSourceNode createBufferSource (); AudioBufferSourceNode createBufferSource ();
ChannelMergerNode createChannelMerger (optional unsigned long numberOfInputs = 6); ChannelMergerNode createChannelMerger (optional unsigned long numberOfInputs = 6);
ChannelSplitterNode createChannelSplitter (optional unsigned long numberOfOutputs = 6); ChannelSplitterNode createChannelSplitter (optional unsigned long numberOfOutputs = 6);
[FIXME] ConstantSourceNode createConstantSource (); ConstantSourceNode createConstantSource ();
[FIXME] ConvolverNode createConvolver (); [FIXME] ConvolverNode createConvolver ();
[FIXME] DelayNode createDelay (optional double maxDelayTime = 1.0); [FIXME] DelayNode createDelay (optional double maxDelayTime = 1.0);
DynamicsCompressorNode createDynamicsCompressor(); DynamicsCompressorNode createDynamicsCompressor();