ladybird/Userland/Libraries/LibWeb/WebAudio/AudioScheduledSourceNode.h
Shannon Booth 97576d27b9 LibWeb: Add constructor for OscillatorNode
This is still missing a bunch of spec steps to construct the
audio node based on the parameters of the OscillatorNode, but it is at
least enough to construct an object to be able to add a basic test which
can get built upon as more is implemented.
2024-05-04 14:01:38 +02:00

34 lines
903 B
C++

/*
* Copyright (c) 2024, Shannon Booth <shannon@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibWeb/WebAudio/AudioNode.h>
namespace Web::WebAudio {
// https://webaudio.github.io/web-audio-api/#AudioScheduledSourceNode
class AudioScheduledSourceNode : public AudioNode {
WEB_PLATFORM_OBJECT(AudioScheduledSourceNode, AudioNode);
JS_DECLARE_ALLOCATOR(AudioScheduledSourceNode);
public:
virtual ~AudioScheduledSourceNode() override;
JS::GCPtr<WebIDL::CallbackType> onended();
void set_onended(JS::GCPtr<WebIDL::CallbackType>);
WebIDL::ExceptionOr<void> start(double when = 0);
WebIDL::ExceptionOr<void> stop(double when = 0);
protected:
AudioScheduledSourceNode(JS::Realm&, JS::NonnullGCPtr<BaseAudioContext>);
virtual void initialize(JS::Realm&) override;
virtual void visit_edges(Cell::Visitor&) override;
};
}