On 07/13/2013 05:48 PM, Tanu Kaskinen wrote: > Hi all, > > I've written up a proposal for a public API for controlling routing with > nodes: > http://www.freedesktop.org/wiki/Software/PulseAudio/RFC/RoutingAPI/ > > Comments would be very welcome. > > Also, if anyone wants to write a proof-of-concept GUI for exercising the > API, or extend pavucontrol, that would be awesome. I probably won't do > it. I've tried to read it through and initially I'm trying to grasp the concepts here. A few points: * The docs say "since 5.0", are you really planning that, or given our new schedule, should it rather be since 6.0? * I also wonder about the basic rules for edges/connections here. Can we line them up: - Edges are directed (stream flows from node A to node B) - A node can have more than one incoming edge (mixes input to single output) - Can a node have more than one outgoing edge, and how is this then handled for playback (clock deviation etc)? Automatic insert of combine modules? - And recording has the same thing but different, i e, spreading data is not a problem but mixing requires clock synchronisation - Can there be more than one edge between the same nodes? E g, one default connection and one explicit connection? Or how does this work? - Can edges have properties, e g, a volume? * As for possible node operations, a move operation would be the same as a "batched remove + add" operation. Maybe therefore the batch solution would be better, i e, the client API inputs an array of node operations? * The operations on changing the default connections does not make sense to me. If the definition for default connections are those made automatically by the routing system, if you change them then you broke the definition...? * Now, streams can be moved using either the new node API or the existing stream/sink API. Will either cause consequences for the other, e g changing node connections will cause an update event for the sink, and changing stream/sink connection will cause update events for the relevant nodes? * And an bird's eye thought - I was thinking that these nodes were something for policy/routing modules primarily. Is a client API the next step here? -- David Henningsson, Canonical Ltd. https://launchpad.net/~diwic