mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-24 19:28:48 +00:00
LibAudio: Manage channelCount in DynamicsCompressorNode
That helps to pass more WPT tests under /webaudio/the-audio-api/the-dynamicscompressornode-interface/ctor-dynamicscompressor.html
This commit is contained in:
parent
f2ed59879f
commit
8ac60273a6
Notes:
github-actions[bot]
2024-10-29 13:32:50 +00:00
Author: https://github.com/shlyakpavel
Commit: 8ac60273a6
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/1735
Reviewed-by: https://github.com/ADKaster ✅
Reviewed-by: https://github.com/gmta
Reviewed-by: https://github.com/shannonbooth
4 changed files with 35 additions and 15 deletions
|
@ -21,28 +21,28 @@ AudioNode::AudioNode(JS::Realm& realm, JS::NonnullGCPtr<BaseAudioContext> contex
|
|||
|
||||
AudioNode::~AudioNode() = default;
|
||||
|
||||
WebIDL::ExceptionOr<void> AudioNode::initialize_audio_node_options(JS::NonnullGCPtr<BaseAudioContext> context, AudioNodeOptions const& given_options, AudioNodeOptions const& default_options)
|
||||
WebIDL::ExceptionOr<void> AudioNode::initialize_audio_node_options(AudioNodeOptions const& given_options, AudioNodeDefaultOptions const& default_options)
|
||||
{
|
||||
// FIXME: Context will be used in the future implementation.
|
||||
(void)context; // Cast to void to avoid unused parameter warning.
|
||||
|
||||
// Set channel count, fallback to default if not provided
|
||||
if (given_options.channel_count.has_value()) {
|
||||
TRY(set_channel_count(given_options.channel_count.value()));
|
||||
} else if (default_options.channel_count.has_value()) {
|
||||
TRY(set_channel_count(default_options.channel_count.value()));
|
||||
} else {
|
||||
TRY(set_channel_count(default_options.channel_count));
|
||||
}
|
||||
|
||||
// Set channel count mode, fallback to default if not provided
|
||||
if (given_options.channel_count_mode.has_value()) {
|
||||
TRY(set_channel_count_mode(given_options.channel_count_mode.value()));
|
||||
} else if (default_options.channel_count_mode.has_value()) {
|
||||
TRY(set_channel_count_mode(default_options.channel_count_mode.value()));
|
||||
} else {
|
||||
TRY(set_channel_count_mode(default_options.channel_count_mode));
|
||||
}
|
||||
|
||||
// Set channel interpretation, fallback to default if not provided
|
||||
Bindings::ChannelInterpretation channel_interpretation_to_set = given_options.channel_interpretation.value_or(default_options.channel_interpretation.value_or(Bindings::ChannelInterpretation::Speakers));
|
||||
TRY(set_channel_interpretation(channel_interpretation_to_set));
|
||||
if (given_options.channel_interpretation.has_value()) {
|
||||
TRY(set_channel_interpretation(given_options.channel_interpretation.value()));
|
||||
} else {
|
||||
TRY(set_channel_interpretation(default_options.channel_interpretation));
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue