Index: Source/modules/webaudio/PannerNode.cpp |
diff --git a/Source/modules/webaudio/PannerNode.cpp b/Source/modules/webaudio/PannerNode.cpp |
index e472cc7df87eb5a9c4041c77b85fbc4904e03eeb..ade66d5acc89ec50396101ee85b92c8993a9788e 100644 |
--- a/Source/modules/webaudio/PannerNode.cpp |
+++ b/Source/modules/webaudio/PannerNode.cpp |
@@ -62,7 +62,6 @@ PannerNode::PannerNode(AudioContext* context, float sampleRate) |
, m_cachedElevation(0) |
, m_cachedDistanceConeGain(1.0f) |
, m_cachedDopplerRate(1) |
- , m_connectionCount(0) |
{ |
// Load the HRTF database asynchronously so we don't block the Javascript thread while creating the HRTF database. |
// The HRTF panner will return zeroes until the database is loaded. |
@@ -92,24 +91,6 @@ void PannerNode::dispose() |
AudioNode::dispose(); |
} |
-void PannerNode::pullInputs(size_t framesToProcess) |
-{ |
- // We override pullInputs(), so we can detect new AudioSourceNodes which have connected to us when new connections are made. |
- // These AudioSourceNodes need to be made aware of our existence in order to handle doppler shift pitch changes. |
- if (m_connectionCount != context()->connectionCount()) { |
- m_connectionCount = context()->connectionCount(); |
- |
- // A map for keeping track if we have visited a node or not. This prevents feedback loops |
- // from recursing infinitely. See crbug.com/331446. |
- HashMap<AudioNode*, bool> visitedNodes; |
- |
- // Recursively go through all nodes connected to us |
- notifyAudioSourcesConnectedToNode(this, visitedNodes); |
- } |
- |
- AudioNode::pullInputs(framesToProcess); |
-} |
- |
void PannerNode::process(size_t framesToProcess) |
{ |
AudioBus* destination = output(0)->bus(); |
@@ -550,38 +531,6 @@ void PannerNode::markPannerAsDirty(unsigned dirty) |
m_isDopplerRateDirty = true; |
} |
-void PannerNode::notifyAudioSourcesConnectedToNode(AudioNode* node, HashMap<AudioNode*, bool>& visitedNodes) |
-{ |
- ASSERT(node); |
- if (!node) |
- return; |
- |
- // First check if this node is an AudioBufferSourceNode. If so, let it know about us so that doppler shift pitch can be taken into account. |
- if (node->nodeType() == NodeTypeAudioBufferSource) { |
- AudioBufferSourceNode* bufferSourceNode = static_cast<AudioBufferSourceNode*>(node); |
- bufferSourceNode->setPannerNode(this); |
- } else { |
- // Go through all inputs to this node. |
- for (unsigned i = 0; i < node->numberOfInputs(); ++i) { |
- AudioNodeInput* input = node->input(i); |
- |
- // For each input, go through all of its connections, looking for AudioBufferSourceNodes. |
- for (unsigned j = 0; j < input->numberOfRenderingConnections(); ++j) { |
- AudioNodeOutput* connectedOutput = input->renderingOutput(j); |
- AudioNode* connectedNode = connectedOutput->node(); |
- HashMap<AudioNode*, bool>::iterator iterator = visitedNodes.find(connectedNode); |
- |
- // If we've seen this node already, we don't need to process it again. Otherwise, |
- // mark it as visited and recurse through the node looking for sources. |
- if (iterator == visitedNodes.end()) { |
- visitedNodes.set(connectedNode, true); |
- notifyAudioSourcesConnectedToNode(connectedNode, visitedNodes); // recurse |
- } |
- } |
- } |
- } |
-} |
- |
void PannerNode::setChannelCount(unsigned long channelCount, ExceptionState& exceptionState) |
{ |
ASSERT(isMainThread()); |