-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path1116847-stereo-panner-node.patch
248 lines (218 loc) · 9.8 KB
/
1116847-stereo-panner-node.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
From a02576547329743265961cd4d5f10ee6c0872b15 Mon Sep 17 00:00:00 2001
From: Jordan Santell <[email protected]>
Date: Tue, 6 Jan 2015 11:19:13 -0800
Subject: Bug 1116847 - Add support for StereoPannerNodes in web audio
editor. r=vp
diff --git a/browser/devtools/webaudioeditor/test/browser_audionode-actor-get-param-flags.js b/browser/devtools/webaudioeditor/test/browser_audionode-actor-get-param-flags.js
index cfa8cff..d7f77f1 100644
--- a/browser/devtools/webaudioeditor/test/browser_audionode-actor-get-param-flags.js
+++ b/browser/devtools/webaudioeditor/test/browser_audionode-actor-get-param-flags.js
@@ -4,25 +4,26 @@
/**
* Test AudioNode#getParamFlags()
*/
add_task(function*() {
let { target, front } = yield initBackend(SIMPLE_NODES_URL);
let [_, nodes] = yield Promise.all([
front.setup({ reload: true }),
- getN(front, "create-node", 14)
+ getN(front, "create-node", 15)
]);
let allNodeParams = yield Promise.all(nodes.map(node => node.getParams()));
let nodeTypes = [
"AudioDestinationNode",
"AudioBufferSourceNode", "ScriptProcessorNode", "AnalyserNode", "GainNode",
"DelayNode", "BiquadFilterNode", "WaveShaperNode", "PannerNode", "ConvolverNode",
- "ChannelSplitterNode", "ChannelMergerNode", "DynamicsCompressorNode", "OscillatorNode"
+ "ChannelSplitterNode", "ChannelMergerNode", "DynamicsCompressorNode", "OscillatorNode",
+ "StereoPannerNode"
];
// For some reason nodeTypes.forEach and params.forEach fail here so we use
// simple for loops.
for (let i = 0; i < nodeTypes.length; i++) {
let type = nodeTypes[i];
let params = allNodeParams[i];
diff --git a/browser/devtools/webaudioeditor/test/browser_audionode-actor-get-params-01.js b/browser/devtools/webaudioeditor/test/browser_audionode-actor-get-params-01.js
index a4efc6d..24e0232 100644
--- a/browser/devtools/webaudioeditor/test/browser_audionode-actor-get-params-01.js
+++ b/browser/devtools/webaudioeditor/test/browser_audionode-actor-get-params-01.js
@@ -4,25 +4,26 @@
/**
* Test AudioNode#getParams()
*/
add_task(function*() {
let { target, front } = yield initBackend(SIMPLE_NODES_URL);
let [_, nodes] = yield Promise.all([
front.setup({ reload: true }),
- getN(front, "create-node", 14)
+ getN(front, "create-node", 15)
]);
let allNodeParams = yield Promise.all(nodes.map(node => node.getParams()));
let nodeTypes = [
"AudioDestinationNode",
"AudioBufferSourceNode", "ScriptProcessorNode", "AnalyserNode", "GainNode",
"DelayNode", "BiquadFilterNode", "WaveShaperNode", "PannerNode", "ConvolverNode",
- "ChannelSplitterNode", "ChannelMergerNode", "DynamicsCompressorNode", "OscillatorNode"
+ "ChannelSplitterNode", "ChannelMergerNode", "DynamicsCompressorNode", "OscillatorNode",
+ "StereoPannerNode"
];
nodeTypes.forEach((type, i) => {
let params = allNodeParams[i];
params.forEach(({param, value, flags}) => {
ok(param in NODE_DEFAULT_VALUES[type], "expected parameter for " + type);
ok(typeof flags === "object", type + " has a flags object");
diff --git a/browser/devtools/webaudioeditor/test/browser_audionode-actor-get-params-02.js b/browser/devtools/webaudioeditor/test/browser_audionode-actor-get-params-02.js
index 2afb718..ce2eca6 100644
--- a/browser/devtools/webaudioeditor/test/browser_audionode-actor-get-params-02.js
+++ b/browser/devtools/webaudioeditor/test/browser_audionode-actor-get-params-02.js
@@ -5,25 +5,25 @@
* Tests that default properties are returned with the correct type
* from the AudioNode actors.
*/
add_task(function*() {
let { target, front } = yield initBackend(SIMPLE_NODES_URL);
let [_, nodes] = yield Promise.all([
front.setup({ reload: true }),
- getN(front, "create-node", 14)
+ getN(front, "create-node", 15)
]);
let allParams = yield Promise.all(nodes.map(node => node.getParams()));
let types = [
"AudioDestinationNode", "AudioBufferSourceNode", "ScriptProcessorNode",
"AnalyserNode", "GainNode", "DelayNode", "BiquadFilterNode", "WaveShaperNode",
"PannerNode", "ConvolverNode", "ChannelSplitterNode", "ChannelMergerNode",
- "DynamicsCompressorNode", "OscillatorNode"
+ "DynamicsCompressorNode", "OscillatorNode", "StereoPannerNode"
];
allParams.forEach((params, i) => {
compare(params, NODE_DEFAULT_VALUES[types[i]], types[i]);
});
yield removeTab(target.tab);
});
diff --git a/browser/devtools/webaudioeditor/test/browser_wa_navigate.js b/browser/devtools/webaudioeditor/test/browser_wa_navigate.js
index d913ff1..598deab 100644
--- a/browser/devtools/webaudioeditor/test/browser_wa_navigate.js
+++ b/browser/devtools/webaudioeditor/test/browser_wa_navigate.js
@@ -20,25 +20,25 @@ add_task(function*() {
var { nodes, edges } = countGraphObjects(panelWin);
ise(nodes, 3, "should only be 3 nodes.");
ise(edges, 2, "should only be 2 edges.");
navigate(target, SIMPLE_NODES_URL);
var [actors] = yield Promise.all([
- getN(gFront, "create-node", 14),
- waitForGraphRendered(panelWin, 14, 0)
+ getN(gFront, "create-node", 15),
+ waitForGraphRendered(panelWin, 15, 0)
]);
is($("#reload-notice").hidden, true,
"The 'reload this page' notice should be hidden after context found after navigation.");
is($("#waiting-notice").hidden, true,
"The 'waiting for an audio context' notice should be hidden after context found after navigation.");
is($("#content").hidden, false,
"The tool's content should reappear without closing and reopening the toolbox.");
var { nodes, edges } = countGraphObjects(panelWin);
- ise(nodes, 14, "after navigation, should have 14 nodes");
+ ise(nodes, 15, "after navigation, should have 15 nodes");
ise(edges, 0, "after navigation, should have 0 edges.");
yield teardown(target);
});
diff --git a/browser/devtools/webaudioeditor/test/browser_wa_properties-view-params.js b/browser/devtools/webaudioeditor/test/browser_wa_properties-view-params.js
index 14605cb..9ce5726 100644
--- a/browser/devtools/webaudioeditor/test/browser_wa_properties-view-params.js
+++ b/browser/devtools/webaudioeditor/test/browser_wa_properties-view-params.js
@@ -12,18 +12,18 @@ add_task(function*() {
let { gFront, $, $$, EVENTS, InspectorView } = panelWin;
let gVars = InspectorView._propsView;
let started = once(gFront, "start-context");
reload(target);
let [actors] = yield Promise.all([
- getN(gFront, "create-node", 14),
- waitForGraphRendered(panelWin, 14, 0)
+ getN(gFront, "create-node", 15),
+ waitForGraphRendered(panelWin, 15, 0)
]);
let nodeIds = actors.map(actor => actor.actorID);
let types = [
"AudioDestinationNode", "AudioBufferSourceNode", "ScriptProcessorNode",
"AnalyserNode", "GainNode", "DelayNode", "BiquadFilterNode", "WaveShaperNode",
"PannerNode", "ConvolverNode", "ChannelSplitterNode", "ChannelMergerNode",
"DynamicsCompressorNode", "OscillatorNode"
];
diff --git a/browser/devtools/webaudioeditor/test/doc_simple-node-creation.html b/browser/devtools/webaudioeditor/test/doc_simple-node-creation.html
index 9599166..e6dcf7b 100644
--- a/browser/devtools/webaudioeditor/test/doc_simple-node-creation.html
+++ b/browser/devtools/webaudioeditor/test/doc_simple-node-creation.html
@@ -13,16 +13,16 @@
<script type="text/javascript;version=1.8">
"use strict";
let ctx = new AudioContext();
let NODE_CREATION_METHODS = [
"createBufferSource", "createScriptProcessor", "createAnalyser",
"createGain", "createDelay", "createBiquadFilter", "createWaveShaper",
"createPanner", "createConvolver", "createChannelSplitter", "createChannelMerger",
- "createDynamicsCompressor", "createOscillator"
+ "createDynamicsCompressor", "createOscillator", "createStereoPanner"
];
let nodes = NODE_CREATION_METHODS.map(method => ctx[method]());
</script>
</body>
</html>
diff --git a/browser/devtools/webaudioeditor/test/head.js b/browser/devtools/webaudioeditor/test/head.js
index d9a0d2f..1b10e28 100644
--- a/browser/devtools/webaudioeditor/test/head.js
+++ b/browser/devtools/webaudioeditor/test/head.js
@@ -492,10 +492,13 @@ const NODE_DEFAULT_VALUES = {
"reduction": 0,
"attack": 0.003000000026077032,
"release": 0.25
},
"OscillatorNode": {
"type": "sine",
"frequency": 440,
"detune": 0
+ },
+ "StereoPannerNode": {
+ "pan": 0
}
};
diff --git a/toolkit/devtools/server/actors/webaudio.js b/toolkit/devtools/server/actors/webaudio.js
index 2988999..6151a08 100644
--- a/toolkit/devtools/server/actors/webaudio.js
+++ b/toolkit/devtools/server/actors/webaudio.js
@@ -25,17 +25,17 @@ const AUDIO_GLOBALS = [
"AudioContext", "AudioNode", "AudioParam"
];
const NODE_CREATION_METHODS = [
"createBufferSource", "createMediaElementSource", "createMediaStreamSource",
"createMediaStreamDestination", "createScriptProcessor", "createAnalyser",
"createGain", "createDelay", "createBiquadFilter", "createWaveShaper",
"createPanner", "createConvolver", "createChannelSplitter", "createChannelMerger",
- "createDynamicsCompressor", "createOscillator"
+ "createDynamicsCompressor", "createOscillator", "createStereoPanner"
];
const AUTOMATION_METHODS = [
"setValueAtTime", "linearRampToValueAtTime", "exponentialRampToValueAtTime",
"setTargetAtTime", "setValueCurveAtTime"
];
const NODE_ROUTING_METHODS = [
@@ -106,16 +106,19 @@ const NODE_PROPERTIES = {
},
"AudioDestinationNode": {},
"ChannelSplitterNode": {},
"ChannelMergerNode": {},
"MediaElementAudioSourceNode": {},
"MediaStreamAudioSourceNode": {},
"MediaStreamAudioDestinationNode": {
"stream": { "MediaStream": true }
+ },
+ "StereoPannerNode": {
+ "pan": {}
}
};
/**
* An Audio Node actor allowing communication to a specific audio node in the
* Audio Context graph.
*/
types.addActorType("audionode");
--
2.2.1