LibWeb: Add stub IDL interface for AudioNode

An AudioNode is the fundamental building block used in 'Audio
Contexts'. In our immediate case, the audio node we are working towards
implementing is an oscillating source node.
This commit is contained in:
Shannon Booth 2024-04-28 12:46:07 +12:00 committed by Andreas Kling
commit 6661c68b28
Notes: sideshowbarker 2024-07-16 22:51:10 +09:00
7 changed files with 195 additions and 0 deletions

View file

@ -0,0 +1,46 @@
#import <WebAudio/AudioParam.idl>
#import <WebAudio/BaseAudioContext.idl>
// https://webaudio.github.io/web-audio-api/#enumdef-channelcountmode
enum ChannelCountMode {
"max",
"clamped-max",
"explicit"
};
// https://webaudio.github.io/web-audio-api/#enumdef-channelinterpretation
enum ChannelInterpretation {
"speakers",
"discrete"
};
// https://webaudio.github.io/web-audio-api/#AudioNodeOptions
dictionary AudioNodeOptions {
unsigned long channelCount;
ChannelCountMode channelCountMode;
ChannelInterpretation channelInterpretation;
};
// https://webaudio.github.io/web-audio-api/#AudioNode
[Exposed=Window]
interface AudioNode : EventTarget {
AudioNode connect(AudioNode destinationNode,
optional unsigned long output = 0,
optional unsigned long input = 0);
undefined connect(AudioParam destinationParam, optional unsigned long output = 0);
undefined disconnect();
undefined disconnect(unsigned long output);
undefined disconnect(AudioNode destinationNode);
undefined disconnect(AudioNode destinationNode, unsigned long output);
undefined disconnect(AudioNode destinationNode,
unsigned long output,
unsigned long input);
undefined disconnect(AudioParam destinationParam);
undefined disconnect(AudioParam destinationParam, unsigned long output);
// FIXME: readonly attribute BaseAudioContext context;
// FIXME: readonly attribute unsigned long numberOfInputs;
// FIXME: readonly attribute unsigned long numberOfOutputs;
// FIXME: attribute unsigned long channelCount;
// FIXME: attribute ChannelCountMode channelCountMode;
// FIXME: attribute ChannelInterpretation channelInterpretation;
};