W3C home > Mailing lists > Public > public-audio@w3.org > July to September 2013

Re: [web-audio-api] AudioNode.disconnect() needs to be able to disconnect only one connection (#6)

From: Olivier Thereaux <notifications@github.com>
Date: Wed, 11 Sep 2013 07:29:22 -0700
To: WebAudio/web-audio-api <web-audio-api@noreply.github.com>
Message-ID: <WebAudio/web-audio-api/issues/6/24244071@github.com>
> [Original comment](https://www.w3.org/Bugs/Public/show_bug.cgi?id=17793#0) by Chris Rogers on W3C Bugzilla. Mon, 30 Jul 2012 20:16:50 GMT

(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)

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

Reply to this email directly or view it on GitHub:
Received on Wednesday, 11 September 2013 14:31:54 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:03:24 UTC