Bug 1125819 - Add cancelScheduledValues for automation tracking in web audio editor. r=vp

This commit is contained in:
Jordan Santell 2015-01-28 02:12:00 -05:00
parent 33a369b2d3
commit 83f32a9e49
3 changed files with 36 additions and 1 deletions

View File

@ -28,6 +28,7 @@ skip-if = true # bug 1092571
[browser_audionode-actor-add-automation-event.js]
[browser_audionode-actor-get-automation-data-01.js]
[browser_audionode-actor-get-automation-data-02.js]
[browser_audionode-actor-get-automation-data-03.js]
[browser_webaudio-actor-simple.js]
[browser_webaudio-actor-destroy-node.js]
[browser_webaudio-actor-connect-param.js]

View File

@ -0,0 +1,34 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Test that `cancelScheduledEvents` clears out events on and after
* its argument.
*/
add_task(function*() {
let { target, front } = yield initBackend(SIMPLE_CONTEXT_URL);
let [_, [destNode, oscNode, gainNode]] = yield Promise.all([
front.setup({ reload: true }),
get3(front, "create-node")
]);
yield oscNode.addAutomationEvent("frequency", "setValueAtTime", [300, 0]);
yield oscNode.addAutomationEvent("frequency", "linearRampToValueAtTime", [500, 0.9]);
yield oscNode.addAutomationEvent("frequency", "setValueAtTime", [700, 1]);
yield oscNode.addAutomationEvent("frequency", "exponentialRampToValueAtTime", [1000, 2]);
yield oscNode.addAutomationEvent("frequency", "cancelScheduledValues", [1]);
var { events, values } = yield oscNode.getAutomationData("frequency");
is(events.length, 2, "2 recorded events returned.");
is(values.length, 2000, "2000 value points returned");
checkAutomationValue(values, 0, 300);
checkAutomationValue(values, 0.5, 411.15);
checkAutomationValue(values, 0.9, 499.9);
checkAutomationValue(values, 1, 499.9);
checkAutomationValue(values, 2, 499.9);
yield removeTab(target.tab);
});

View File

@ -35,7 +35,7 @@ const NODE_CREATION_METHODS = [
const AUTOMATION_METHODS = [
"setValueAtTime", "linearRampToValueAtTime", "exponentialRampToValueAtTime",
"setTargetAtTime", "setValueCurveAtTime"
"setTargetAtTime", "setValueCurveAtTime", "cancelScheduledValues"
];
const NODE_ROUTING_METHODS = [