mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-07 04:05:49 +00:00
0ab5221feb
See bug 980506 for an extensive discussion about this. This patch adds three APIs to AudioNode in order for us to be able to build awesome devtools on top of it. * Weak reference API. This patch allows one to hold a weak reference to all AudioNode's using Components.utils.getWeakReference(). That way, the devtool's inspection code would not change the lifetime of AudioNodes. * AudioNode.id This is a chrome-only unique and monotonically incrementing ID for AudioNode objects. It is supposed to be used in order for the devtools to be able to identify a node without having to keep it alive. * webaudio-node-demise This is an observer notification that is called every time an AudioNode gets destroyed inside Gecko. The ID of the corresponding node is passed to this notification. --HG-- extra : rebase_source : 83246a990489daf44ddc97dd4ea372a8cebe8e00
52 lines
1.5 KiB
Plaintext
52 lines
1.5 KiB
Plaintext
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* The origin of this IDL file is
|
|
* https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
|
|
*
|
|
* Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
|
|
* liability, trademark and document use rules apply.
|
|
*/
|
|
|
|
enum ChannelCountMode {
|
|
"max",
|
|
"clamped-max",
|
|
"explicit"
|
|
};
|
|
|
|
enum ChannelInterpretation {
|
|
"speakers",
|
|
"discrete"
|
|
};
|
|
|
|
interface AudioNode : EventTarget {
|
|
|
|
[Throws]
|
|
void connect(AudioNode destination, optional unsigned long output = 0, optional unsigned long input = 0);
|
|
[Throws]
|
|
void connect(AudioParam destination, optional unsigned long output = 0);
|
|
[Throws]
|
|
void disconnect(optional unsigned long output = 0);
|
|
|
|
readonly attribute AudioContext context;
|
|
readonly attribute unsigned long numberOfInputs;
|
|
readonly attribute unsigned long numberOfOutputs;
|
|
|
|
// Channel up-mixing and down-mixing rules for all inputs.
|
|
[SetterThrows]
|
|
attribute unsigned long channelCount;
|
|
[SetterThrows]
|
|
attribute ChannelCountMode channelCountMode;
|
|
attribute ChannelInterpretation channelInterpretation;
|
|
|
|
};
|
|
|
|
// Mozilla extension
|
|
partial interface AudioNode {
|
|
[ChromeOnly]
|
|
readonly attribute unsigned long id;
|
|
};
|
|
|