[Bug 17793] AudioNode.disconnect() needs to be able to disconnect only one connection

https://www.w3.org/Bugs/Public/show_bug.cgi?id=17793

--- Comment #1 from Chris Rogers <crogers@google.com> 2012-07-30 20:16:50 UTC ---
(In reply to comment #0)
> (Summary of email conversation in list)
> 
> There is currently no way to disconnect node A's connection to node B without
> disconnecting all connections from node A to other nodes.  This makes it
> impossible to disconnect node B from the graph without potential side effects,
> as you have to:
> 
> - call disconnect() on node A (which disconnects all its outputs)
> - reconnect every connection that node A used to have, EXCEPT the connection to
> node B.
> 
> Not only is this cumbersome, it will be problematic in the future when we solve
> the related issue of unconnected streams - which is currently exhibiting
> incorrect behavior in Chrome (it pauses the audio stream), but is
> underspecified in the spec today.  (filing separate bug).  Disconnecting then
> reconnecting would have to have no side effects.  (It works okay today, but not
> ideal - can click.)
> 
> Recommended solution:
> - there should be a way to remove a single connection (by supplying the
> destination node to be disconnected, since there can only be one connection to
> a given destination node [tested]).
> 
> E.g.: the IDL for disconnect should read:
> 
>         void disconnect(in [Optional] AudioNode destination, in [Optional]
> unsigned long output = 0)
>             raises(DOMException);
> 
> this lets us keep most compatibility - node.disconnect() will still remove all
> connections.

I agree we need to extend disconnect() with more optional parameters to allow
disconnecting specific connections.

I think we'll also need to add an "input" parameter similar to the connect()
method to be able to say *which* specific input to disconnect:

void disconnect(in AudioNode destination, in [Optional] unsigned long output =
0, in [Optional] unsigned long input = 0)
            raises(DOMException);

This would make the API look the same as connect(), and allow disconnecting an
exact connection.

-- 
Configure bugmail: https://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

Received on Monday, 30 July 2012 20:16:51 UTC