Diff
Modified: trunk/Source/WebCore/ChangeLog (267603 => 267604)
--- trunk/Source/WebCore/ChangeLog 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/ChangeLog 2020-09-25 23:02:59 UTC (rev 267604)
@@ -1,3 +1,74 @@
+2020-09-25 Chris Dumez <cdu...@apple.com>
+
+ Drop AudioNode::setNodeType()
+ https://bugs.webkit.org/show_bug.cgi?id=216988
+
+ Reviewed by Eric Carlson.
+
+ Drop AudioNode::setNodeType() in favor of passing the NodeType to the AudioNode constructor.
+ This makes sure we never forget to set the type.
+
+ * Modules/webaudio/AnalyserNode.cpp:
+ (WebCore::AnalyserNode::AnalyserNode):
+ * Modules/webaudio/AudioBasicInspectorNode.cpp:
+ (WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):
+ * Modules/webaudio/AudioBasicInspectorNode.h:
+ * Modules/webaudio/AudioBasicProcessorNode.cpp:
+ (WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):
+ * Modules/webaudio/AudioBasicProcessorNode.h:
+ * Modules/webaudio/AudioBufferSourceNode.cpp:
+ (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
+ * Modules/webaudio/AudioDestinationNode.cpp:
+ (WebCore::AudioDestinationNode::AudioDestinationNode):
+ * Modules/webaudio/AudioNode.cpp:
+ (WebCore::convertEnumerationToString):
+ (WebCore::AudioNode::AudioNode):
+ (WebCore::AudioNode::printNodeCounts):
+ * Modules/webaudio/AudioNode.h:
+ (WebCore::AudioNode::context):
+ (WebCore::AudioNode::context const):
+ (WebCore::AudioNode::nodeType const):
+ * Modules/webaudio/AudioScheduledSourceNode.cpp:
+ (WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):
+ * Modules/webaudio/AudioScheduledSourceNode.h:
+ * Modules/webaudio/BiquadFilterNode.cpp:
+ (WebCore::BiquadFilterNode::BiquadFilterNode):
+ * Modules/webaudio/ChannelMergerNode.cpp:
+ (WebCore::ChannelMergerNode::ChannelMergerNode):
+ * Modules/webaudio/ChannelSplitterNode.cpp:
+ (WebCore::ChannelSplitterNode::ChannelSplitterNode):
+ * Modules/webaudio/ConstantSourceNode.cpp:
+ (WebCore::ConstantSourceNode::ConstantSourceNode):
+ * Modules/webaudio/ConvolverNode.cpp:
+ (WebCore::ConvolverNode::ConvolverNode):
+ * Modules/webaudio/DelayNode.cpp:
+ (WebCore::DelayNode::DelayNode):
+ * Modules/webaudio/DynamicsCompressorNode.cpp:
+ (WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
+ * Modules/webaudio/GainNode.cpp:
+ (WebCore::GainNode::GainNode):
+ * Modules/webaudio/IIRFilterNode.cpp:
+ (WebCore::IIRFilterNode::IIRFilterNode):
+ * Modules/webaudio/MediaElementAudioSourceNode.cpp:
+ (WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
+ * Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
+ (WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
+ * Modules/webaudio/MediaStreamAudioSourceNode.cpp:
+ (WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):
+ * Modules/webaudio/OscillatorNode.cpp:
+ (WebCore::OscillatorNode::OscillatorNode):
+ * Modules/webaudio/PannerNode.cpp:
+ (WebCore::PannerNodeBase::PannerNodeBase):
+ (WebCore::PannerNode::PannerNode):
+ * Modules/webaudio/ScriptProcessorNode.cpp:
+ (WebCore::ScriptProcessorNode::ScriptProcessorNode):
+ * Modules/webaudio/StereoPannerNode.cpp:
+ (WebCore::StereoPannerNode::StereoPannerNode):
+ * Modules/webaudio/WaveShaperNode.cpp:
+ (WebCore::WaveShaperNode::WaveShaperNode):
+ * Modules/webaudio/WebKitAudioPannerNode.cpp:
+ (WebCore::WebKitAudioPannerNode::WebKitAudioPannerNode):
+
2020-09-24 Dean Jackson <d...@apple.com>
WebGL should use GLES in iOS apps running on Apple Silicon
Modified: trunk/Source/WebCore/Modules/webaudio/AnalyserNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/AnalyserNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AnalyserNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -65,9 +65,8 @@
}
AnalyserNode::AnalyserNode(BaseAudioContext& context)
- : AudioBasicInspectorNode(context)
+ : AudioBasicInspectorNode(context, NodeTypeAnalyser)
{
- setNodeType(NodeTypeAnalyser);
addOutput(2);
initialize();
Modified: trunk/Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -36,10 +36,9 @@
WTF_MAKE_ISO_ALLOCATED_IMPL(AudioBasicInspectorNode);
-AudioBasicInspectorNode::AudioBasicInspectorNode(BaseAudioContext& context)
- : AudioNode(context)
+AudioBasicInspectorNode::AudioBasicInspectorNode(BaseAudioContext& context, NodeType type)
+ : AudioNode(context, type)
{
- setNodeType(NodeTypeBasicInspector);
addInput();
}
Modified: trunk/Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.h (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.h 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.h 2020-09-25 23:02:59 UTC (rev 267604)
@@ -34,7 +34,7 @@
class AudioBasicInspectorNode : public AudioNode {
WTF_MAKE_ISO_ALLOCATED(AudioBasicInspectorNode);
public:
- explicit AudioBasicInspectorNode(BaseAudioContext&);
+ AudioBasicInspectorNode(BaseAudioContext&, NodeType);
protected:
bool m_needAutomaticPull { false }; // When setting to true, AudioBasicInspectorNode will be pulled automatically by AudioContext before the end of each render quantum.
Modified: trunk/Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -39,8 +39,8 @@
WTF_MAKE_ISO_ALLOCATED_IMPL(AudioBasicProcessorNode);
-AudioBasicProcessorNode::AudioBasicProcessorNode(BaseAudioContext& context)
- : AudioNode(context)
+AudioBasicProcessorNode::AudioBasicProcessorNode(BaseAudioContext& context, NodeType type)
+ : AudioNode(context, type)
{
addInput();
addOutput(1);
Modified: trunk/Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.h (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.h 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.h 2020-09-25 23:02:59 UTC (rev 267604)
@@ -37,7 +37,7 @@
class AudioBasicProcessorNode : public AudioNode {
WTF_MAKE_ISO_ALLOCATED(AudioBasicProcessorNode);
public:
- explicit AudioBasicProcessorNode(BaseAudioContext&);
+ AudioBasicProcessorNode(BaseAudioContext&, NodeType);
// AudioNode
void process(size_t framesToProcess) override;
Modified: trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -89,13 +89,11 @@
}
AudioBufferSourceNode::AudioBufferSourceNode(BaseAudioContext& context)
- : AudioScheduledSourceNode(context)
+ : AudioScheduledSourceNode(context, NodeTypeAudioBufferSource)
, m_detune(AudioParam::create(context, "detune"_s, 0.0, -FLT_MAX, FLT_MAX, AutomationRate::KRate, AutomationRateMode::Fixed))
, m_playbackRate(AudioParam::create(context, "playbackRate"_s, 1.0, -FLT_MAX, FLT_MAX, AutomationRate::KRate, AutomationRateMode::Fixed))
, m_grainDuration(DefaultGrainDuration)
{
- setNodeType(NodeTypeAudioBufferSource);
-
// Default to mono. A call to setBuffer() will set the number of output channels to that of the buffer.
addOutput(1);
Modified: trunk/Source/WebCore/Modules/webaudio/AudioDestinationNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/AudioDestinationNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioDestinationNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -40,9 +40,8 @@
WTF_MAKE_ISO_ALLOCATED_IMPL(AudioDestinationNode);
AudioDestinationNode::AudioDestinationNode(BaseAudioContext& context)
- : AudioNode(context)
+ : AudioNode(context, NodeTypeDestination)
{
- setNodeType(NodeTypeDestination);
addInput();
}
Modified: trunk/Source/WebCore/Modules/webaudio/AudioNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/AudioNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -50,7 +50,6 @@
String convertEnumerationToString(AudioNode::NodeType enumerationValue)
{
static const NeverDestroyed<String> values[] = {
- MAKE_STATIC_STRING_IMPL("NodeTypeUnknown"),
MAKE_STATIC_STRING_IMPL("NodeTypeDestination"),
MAKE_STATIC_STRING_IMPL("NodeTypeOscillator"),
MAKE_STATIC_STRING_IMPL("NodeTypeAudioBufferSource"),
@@ -68,34 +67,30 @@
MAKE_STATIC_STRING_IMPL("NodeTypeAnalyser"),
MAKE_STATIC_STRING_IMPL("NodeTypeDynamicsCompressor"),
MAKE_STATIC_STRING_IMPL("NodeTypeWaveShaper"),
- MAKE_STATIC_STRING_IMPL("NodeTypeBasicInspector"),
MAKE_STATIC_STRING_IMPL("NodeTypeConstant"),
- MAKE_STATIC_STRING_IMPL("NodeTypeStereo"),
- MAKE_STATIC_STRING_IMPL("NodeTypeEnd"),
+ MAKE_STATIC_STRING_IMPL("NodeTypeStereoPanner"),
+ MAKE_STATIC_STRING_IMPL("NodeTypeIIRFilter"),
};
- static_assert(static_cast<size_t>(AudioNode::NodeTypeUnknown) == 0, "AudioNode::NodeTypeUnknown is not 0 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeDestination) == 1, "AudioNode::NodeTypeDestination is not 1 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeOscillator) == 2, "AudioNode::NodeTypeOscillator is not 2 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeAudioBufferSource) == 3, "AudioNode::NodeTypeAudioBufferSource is not 3 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeMediaElementAudioSource) == 4, "AudioNode::NodeTypeMediaElementAudioSource is not 4 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeMediaStreamAudioDestination) == 5, "AudioNode::NodeTypeMediaStreamAudioDestination is not 5 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeMediaStreamAudioSource) == 6, "AudioNode::NodeTypeMediaStreamAudioSource is not 6 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeJavaScript) == 7, "AudioNode::NodeTypeJavaScript is not 7 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeBiquadFilter) == 8, "AudioNode::NodeTypeBiquadFilter is not 8 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypePanner) == 9, "AudioNode::NodeTypePanner is not 9 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeConvolver) == 10, "AudioNode::NodeTypeConvolver is not 10 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeDelay) == 11, "AudioNode::NodeTypeDelay is not 11 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeGain) == 12, "AudioNode::NodeTypeGain is not 12 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeChannelSplitter) == 13, "AudioNode::NodeTypeChannelSplitter is not 13 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeChannelMerger) == 14, "AudioNode::NodeTypeChannelMerger is not 14 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeAnalyser) == 15, "AudioNode::NodeTypeAnalyser is not 15 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeDynamicsCompressor) == 16, "AudioNode::NodeTypeDynamicsCompressor is not 16 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeWaveShaper) == 17, "AudioNode::NodeTypeWaveShaper is not 17 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeBasicInspector) == 18, "AudioNode::NodeTypeBasicInspector is not 18 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeConstant) == 19, "AudioNode::NodeTypeEnd is not 19 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeStereo) == 20, "AudioNode::NodeTypeStereo is not 20 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeIIRFilter) == 21, "AudioNode::NodeTypeIIRFilter is not 21 as expected");
- static_assert(static_cast<size_t>(AudioNode::NodeTypeEnd) == 22, "AudioNode::NodeTypeConstant is not 22 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeDestination) == 0, "AudioNode::NodeTypeDestination is not 1 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeOscillator) == 1, "AudioNode::NodeTypeOscillator is not 2 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeAudioBufferSource) == 2, "AudioNode::NodeTypeAudioBufferSource is not 3 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeMediaElementAudioSource) == 3, "AudioNode::NodeTypeMediaElementAudioSource is not 4 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeMediaStreamAudioDestination) == 4, "AudioNode::NodeTypeMediaStreamAudioDestination is not 5 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeMediaStreamAudioSource) == 5, "AudioNode::NodeTypeMediaStreamAudioSource is not 6 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeJavaScript) == 6, "AudioNode::NodeTypeJavaScript is not 7 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeBiquadFilter) == 7, "AudioNode::NodeTypeBiquadFilter is not 8 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypePanner) == 8, "AudioNode::NodeTypePanner is not 9 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeConvolver) == 9, "AudioNode::NodeTypeConvolver is not 10 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeDelay) == 10, "AudioNode::NodeTypeDelay is not 11 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeGain) == 11, "AudioNode::NodeTypeGain is not 12 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeChannelSplitter) == 12, "AudioNode::NodeTypeChannelSplitter is not 13 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeChannelMerger) == 13, "AudioNode::NodeTypeChannelMerger is not 14 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeAnalyser) == 14, "AudioNode::NodeTypeAnalyser is not 15 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeDynamicsCompressor) == 15, "AudioNode::NodeTypeDynamicsCompressor is not 16 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeWaveShaper) == 16, "AudioNode::NodeTypeWaveShaper is not 17 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeConstant) == 17, "AudioNode::NodeTypeConstant is not 19 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeStereoPanner) == 18, "AudioNode::NodeTypeStereoPanner is not 20 as expected");
+ static_assert(static_cast<size_t>(AudioNode::NodeTypeIIRFilter) == 19, "AudioNode::NodeTypeIIRFilter is not 21 as expected");
ASSERT(static_cast<size_t>(enumerationValue) < WTF_ARRAY_LENGTH(values));
@@ -102,8 +97,9 @@
return values[static_cast<size_t>(enumerationValue)];
}
-AudioNode::AudioNode(BaseAudioContext& context)
- : m_context(context)
+AudioNode::AudioNode(BaseAudioContext& context, NodeType type)
+ : m_nodeType(type)
+ , m_context(context)
#if !RELEASE_LOG_DISABLED
, m_logger(context.logger())
, m_logIdentifier(context.nextAudioNodeLogIdentifier())
@@ -112,6 +108,7 @@
ALWAYS_LOG(LOGIDENTIFIER);
#if DEBUG_AUDIONODE_REFERENCES
+ ++s_nodeCount[type];
if (!s_isNodeCountInitialized) {
s_isNodeCountInitialized = true;
atexit(AudioNode::printNodeCounts);
@@ -140,18 +137,6 @@
m_isInitialized = false;
}
-void AudioNode::setNodeType(NodeType type)
-{
- ASSERT(isMainThread());
- ALWAYS_LOG(LOGIDENTIFIER, type);
-
- m_nodeType = type;
-
-#if DEBUG_AUDIONODE_REFERENCES
- ++s_nodeCount[type];
-#endif
-}
-
void AudioNode::lazyInitialize()
{
if (!isInitialized())
@@ -723,7 +708,7 @@
#if DEBUG_AUDIONODE_REFERENCES
bool AudioNode::s_isNodeCountInitialized = false;
-int AudioNode::s_nodeCount[NodeTypeEnd];
+int AudioNode::s_nodeCount[NodeTypeLast + 1];
void AudioNode::printNodeCounts()
{
@@ -732,7 +717,7 @@
fprintf(stderr, "AudioNode: reference counts\n");
fprintf(stderr, "===========================\n");
- for (unsigned i = 0; i < NodeTypeEnd; ++i)
+ for (unsigned i = 0; i <= NodeTypeLast; ++i)
fprintf(stderr, "%d: %d\n", i, s_nodeCount[i]);
fprintf(stderr, "===========================\n\n\n");
Modified: trunk/Source/WebCore/Modules/webaudio/AudioNode.h (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/AudioNode.h 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioNode.h 2020-09-25 23:02:59 UTC (rev 267604)
@@ -59,16 +59,7 @@
WTF_MAKE_NONCOPYABLE(AudioNode);
WTF_MAKE_ISO_ALLOCATED(AudioNode);
public:
- explicit AudioNode(BaseAudioContext&);
- virtual ~AudioNode();
-
- BaseAudioContext& context() { return m_context.get(); }
- const BaseAudioContext& context() const { return m_context.get(); }
-
- Variant<RefPtr<BaseAudioContext>, RefPtr<WebKitAudioContext>> contextForBindings() const;
-
enum NodeType {
- NodeTypeUnknown,
NodeTypeDestination,
NodeTypeOscillator,
NodeTypeAudioBufferSource,
@@ -86,15 +77,21 @@
NodeTypeAnalyser,
NodeTypeDynamicsCompressor,
NodeTypeWaveShaper,
- NodeTypeBasicInspector,
NodeTypeConstant,
- NodeTypeStereo,
+ NodeTypeStereoPanner,
NodeTypeIIRFilter,
- NodeTypeEnd
+ NodeTypeLast = NodeTypeIIRFilter
};
+ AudioNode(BaseAudioContext&, NodeType);
+ virtual ~AudioNode();
+
+ BaseAudioContext& context() { return m_context.get(); }
+ const BaseAudioContext& context() const { return m_context.get(); }
+
+ Variant<RefPtr<BaseAudioContext>, RefPtr<WebKitAudioContext>> contextForBindings() const;
+
NodeType nodeType() const { return m_nodeType; }
- void setNodeType(NodeType);
// Can be called from main thread or context's audio thread.
void ref();
@@ -235,7 +232,7 @@
ScriptExecutionContext* scriptExecutionContext() const final;
volatile bool m_isInitialized { false };
- NodeType m_nodeType { NodeTypeUnknown };
+ NodeType m_nodeType;
Ref<BaseAudioContext> m_context;
Vector<std::unique_ptr<AudioNodeInput>> m_inputs;
@@ -254,7 +251,7 @@
#if DEBUG_AUDIONODE_REFERENCES
static bool s_isNodeCountInitialized;
- static int s_nodeCount[NodeTypeEnd];
+ static int s_nodeCount[NodeTypeLast + 1];
#endif
void refEventTarget() override { ref(); }
Modified: trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -47,8 +47,8 @@
WTF_MAKE_ISO_ALLOCATED_IMPL(AudioScheduledSourceNode);
-AudioScheduledSourceNode::AudioScheduledSourceNode(BaseAudioContext& context)
- : AudioNode(context)
+AudioScheduledSourceNode::AudioScheduledSourceNode(BaseAudioContext& context, NodeType type)
+ : AudioNode(context, type)
, ActiveDOMObject(context.scriptExecutionContext())
{
suspendIfNeeded();
Modified: trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.h (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.h 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.h 2020-09-25 23:02:59 UTC (rev 267604)
@@ -53,7 +53,7 @@
FINISHED_STATE = 3
};
- explicit AudioScheduledSourceNode(BaseAudioContext&);
+ AudioScheduledSourceNode(BaseAudioContext&, NodeType);
ExceptionOr<void> startLater(double when);
ExceptionOr<void> stopLater(double when);
Modified: trunk/Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -56,10 +56,8 @@
}
BiquadFilterNode::BiquadFilterNode(BaseAudioContext& context)
- : AudioBasicProcessorNode(context)
+ : AudioBasicProcessorNode(context, NodeTypeBiquadFilter)
{
- setNodeType(NodeTypeBiquadFilter);
-
// Initially setup as lowpass filter.
m_processor = makeUnique<BiquadProcessor>(context, context.sampleRate(), 1, false);
Modified: trunk/Source/WebCore/Modules/webaudio/ChannelMergerNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/ChannelMergerNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/ChannelMergerNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -61,10 +61,8 @@
}
ChannelMergerNode::ChannelMergerNode(BaseAudioContext& context, unsigned numberOfInputs)
- : AudioNode(context)
+ : AudioNode(context, NodeTypeChannelMerger)
{
- setNodeType(NodeTypeChannelMerger);
-
// Create the requested number of inputs.
for (unsigned i = 0; i < numberOfInputs; ++i)
addInput();
Modified: trunk/Source/WebCore/Modules/webaudio/ChannelSplitterNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/ChannelSplitterNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/ChannelSplitterNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -57,10 +57,8 @@
}
ChannelSplitterNode::ChannelSplitterNode(BaseAudioContext& context, unsigned numberOfOutputs)
- : AudioNode(context)
+ : AudioNode(context, NodeTypeChannelSplitter)
{
- setNodeType(NodeTypeChannelSplitter);
-
addInput();
// Create a fixed number of outputs (able to handle the maximum number of channels fed to an input).
Modified: trunk/Source/WebCore/Modules/webaudio/ConstantSourceNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/ConstantSourceNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/ConstantSourceNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -54,11 +54,10 @@
}
ConstantSourceNode::ConstantSourceNode(BaseAudioContext& context, float offset)
- : AudioScheduledSourceNode(context)
+ : AudioScheduledSourceNode(context, NodeTypeConstant)
, m_offset(AudioParam::create(context, "offset"_s, offset, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
, m_sampleAccurateValues(AudioUtilities::renderQuantumSize)
{
- setNodeType(NodeTypeConstant);
addOutput(1);
initialize();
}
Modified: trunk/Source/WebCore/Modules/webaudio/ConvolverNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/ConvolverNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/ConvolverNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -78,10 +78,8 @@
}
ConvolverNode::ConvolverNode(BaseAudioContext& context)
- : AudioNode(context)
+ : AudioNode(context, NodeTypeConvolver)
{
- setNodeType(NodeTypeConvolver);
-
addInput();
addOutput(1);
Modified: trunk/Source/WebCore/Modules/webaudio/DelayNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/DelayNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/DelayNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -39,9 +39,8 @@
constexpr double maximumAllowedDelayTime = 180;
inline DelayNode::DelayNode(BaseAudioContext& context, double maxDelayTime)
- : AudioBasicProcessorNode(context)
+ : AudioBasicProcessorNode(context, NodeTypeDelay)
{
- setNodeType(NodeTypeDelay);
m_processor = makeUnique<DelayProcessor>(context, context.sampleRate(), 1, maxDelayTime);
// Initialize so that AudioParams can be processed.
Modified: trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -62,7 +62,7 @@
}
DynamicsCompressorNode::DynamicsCompressorNode(BaseAudioContext& context, const DynamicsCompressorOptions& options)
- : AudioNode(context)
+ : AudioNode(context, NodeTypeDynamicsCompressor)
, m_threshold(AudioParam::create(context, "threshold"_s, options.threshold, -100, 0, AutomationRate::KRate, AutomationRateMode::Fixed))
, m_knee(AudioParam::create(context, "knee"_s, options.knee, 0, 40, AutomationRate::KRate, AutomationRateMode::Fixed))
, m_ratio(AudioParam::create(context, "ratio"_s, options.ratio, 1, 20, AutomationRate::KRate, AutomationRateMode::Fixed))
@@ -69,8 +69,6 @@
, m_attack(AudioParam::create(context, "attack"_s, options.attack, 0, 1, AutomationRate::KRate, AutomationRateMode::Fixed))
, m_release(AudioParam::create(context, "release"_s, options.release, 0, 1, AutomationRate::KRate, AutomationRateMode::Fixed))
{
- setNodeType(NodeTypeDynamicsCompressor);
-
addInput();
addOutput(defaultNumberOfOutputChannels);
Modified: trunk/Source/WebCore/Modules/webaudio/GainNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/GainNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/GainNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -57,12 +57,10 @@
}
GainNode::GainNode(BaseAudioContext& context)
- : AudioNode(context)
+ : AudioNode(context, NodeTypeGain)
, m_sampleAccurateGainValues(AudioUtilities::renderQuantumSize) // FIXME: can probably share temp buffer in context
, m_gain(AudioParam::create(context, "gain"_s, 1.0, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
{
- setNodeType(NodeTypeGain);
-
addInput();
addOutput(1);
Modified: trunk/Source/WebCore/Modules/webaudio/IIRFilterNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/IIRFilterNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/IIRFilterNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -116,9 +116,8 @@
}
IIRFilterNode::IIRFilterNode(BaseAudioContext& context, const Vector<double>& feedforward, const Vector<double>& feedback, bool isFilterStable)
- : AudioBasicProcessorNode(context)
+ : AudioBasicProcessorNode(context, NodeTypeIIRFilter)
{
- setNodeType(NodeTypeIIRFilter);
m_processor = makeUnique<IIRProcessor>(context.sampleRate(), 1, feedforward, feedback, isFilterStable);
initialize();
Modified: trunk/Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -66,11 +66,9 @@
}
MediaElementAudioSourceNode::MediaElementAudioSourceNode(BaseAudioContext& context, Ref<HTMLMediaElement>&& mediaElement)
- : AudioNode(context)
+ : AudioNode(context, NodeTypeMediaElementAudioSource)
, m_mediaElement(WTFMove(mediaElement))
{
- setNodeType(NodeTypeMediaElementAudioSource);
-
// Default to stereo. This could change depending on what the media element .src is set to.
addOutput(2);
Modified: trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -56,11 +56,10 @@
}
MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode(BaseAudioContext& context)
- : AudioBasicInspectorNode(context)
+ : AudioBasicInspectorNode(context, NodeTypeMediaStreamAudioDestination)
, m_source(MediaStreamAudioSource::create(context.sampleRate()))
, m_stream(MediaStream::create(*context.document(), MediaStreamPrivate::create(context.document()->logger(), m_source.copyRef())))
{
- setNodeType(NodeTypeMediaStreamAudioDestination);
initialize();
}
Modified: trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -71,12 +71,10 @@
}
MediaStreamAudioSourceNode::MediaStreamAudioSourceNode(BaseAudioContext& context, MediaStream& mediaStream, MediaStreamTrack& audioTrack)
- : AudioNode(context)
+ : AudioNode(context, NodeTypeMediaStreamAudioSource)
, m_mediaStream(mediaStream)
, m_audioTrack(audioTrack)
{
- setNodeType(NodeTypeMediaStreamAudioSource);
-
AudioSourceProvider* audioSourceProvider = m_audioTrack->audioSourceProvider();
ASSERT(audioSourceProvider);
Modified: trunk/Source/WebCore/Modules/webaudio/OscillatorNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/OscillatorNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/OscillatorNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -92,14 +92,12 @@
}
OscillatorNode::OscillatorNode(BaseAudioContext& context, const OscillatorOptions& options)
- : AudioScheduledSourceNode(context)
+ : AudioScheduledSourceNode(context, NodeTypeOscillator)
, m_frequency(AudioParam::create(context, "frequency"_s, options.frequency, -context.sampleRate() / 2, context.sampleRate() / 2, AutomationRate::ARate))
, m_detune(AudioParam::create(context, "detune"_s, options.detune, -1200 * log2f(std::numeric_limits<float>::max()), 1200 * log2f(std::numeric_limits<float>::max()), AutomationRate::ARate))
, m_phaseIncrements(AudioUtilities::renderQuantumSize)
, m_detuneValues(AudioUtilities::renderQuantumSize)
{
- setNodeType(NodeTypeOscillator);
-
// An oscillator is always mono.
addOutput(1);
initialize();
Modified: trunk/Source/WebCore/Modules/webaudio/PannerNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/PannerNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/PannerNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -51,7 +51,7 @@
}
PannerNodeBase::PannerNodeBase(BaseAudioContext& context)
- : AudioNode(context)
+ : AudioNode(context, NodeTypePanner)
{
}
@@ -99,8 +99,6 @@
// Load the HRTF database asynchronously so we don't block the _javascript_ thread while creating the HRTF database.
, m_hrtfDatabaseLoader(HRTFDatabaseLoader::createAndLoadAsynchronouslyIfNecessary(context.sampleRate()))
{
- setNodeType(NodeTypePanner);
-
setDistanceModel(options.distanceModel);
setConeInnerAngle(options.coneInnerAngle);
setConeOuterAngle(options.coneOuterAngle);
Modified: trunk/Source/WebCore/Modules/webaudio/ScriptProcessorNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/ScriptProcessorNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/ScriptProcessorNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -52,7 +52,7 @@
}
ScriptProcessorNode::ScriptProcessorNode(BaseAudioContext& context, size_t bufferSize, unsigned numberOfInputChannels, unsigned numberOfOutputChannels)
- : AudioNode(context)
+ : AudioNode(context, NodeTypeJavaScript)
, ActiveDOMObject(context.scriptExecutionContext())
, m_bufferSize(bufferSize)
, m_numberOfInputChannels(numberOfInputChannels)
@@ -65,7 +65,6 @@
ASSERT(numberOfInputChannels <= AudioContext::maxNumberOfChannels());
- setNodeType(NodeTypeJavaScript);
initializeDefaultNodeOptions(numberOfInputChannels, ChannelCountMode::Explicit, ChannelInterpretation::Speakers);
addInput();
addOutput(numberOfOutputChannels);
Modified: trunk/Source/WebCore/Modules/webaudio/StereoPannerNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/StereoPannerNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/StereoPannerNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -56,12 +56,10 @@
}
StereoPannerNode::StereoPannerNode(BaseAudioContext& context, float pan)
- : AudioNode(context)
+ : AudioNode(context, NodeTypeStereoPanner)
, m_pan(AudioParam::create(context, "pan"_s, pan, -1, 1, AutomationRate::ARate))
, m_sampleAccurateValues(AudioUtilities::renderQuantumSize)
{
- setNodeType(NodeTypeStereo);
-
addInput();
addOutput(2);
Modified: trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -70,9 +70,8 @@
}
WaveShaperNode::WaveShaperNode(BaseAudioContext& context)
- : AudioBasicProcessorNode(context)
+ : AudioBasicProcessorNode(context, NodeTypeWaveShaper)
{
- setNodeType(NodeTypeWaveShaper);
m_processor = makeUnique<WaveShaperProcessor>(context.sampleRate(), 1);
initialize();
Modified: trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.cpp (267603 => 267604)
--- trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.cpp 2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.cpp 2020-09-25 23:02:59 UTC (rev 267604)
@@ -51,7 +51,6 @@
WebKitAudioPannerNode::WebKitAudioPannerNode(WebKitAudioContext& context)
: PannerNodeBase(context)
{
- setNodeType(NodeTypePanner);
initializeDefaultNodeOptions(2, ChannelCountMode::ClampedMax, ChannelInterpretation::Speakers);
// Load the HRTF database asynchronously so we don't block the _javascript_ thread while creating the HRTF database.