On Wed, 2013-07-03 at 14:09 +0300, Tanu Kaskinen wrote: > This patch set adds the pa_node struct to the core, extends alsa, > bluetooth, jack and native-protocol ports, sinks, sources, sink-inputs > and source-outputs so that they implement nodes, and adds > introspection and pactl list support for nodes. > > Changes in v3: > - Fixed the issues that David pointed out: > - Forbid empty strings as sink/source descriptions. > - Create nodes for alsa sinks that are created by pathless alsa > mappings. > - Added o->node->owner = o; to source-output.c (fixed an assertion > failure). > > Tanu Kaskinen (18): > node: Introduce pa_node > sink, source: Disallow NULL or empty description > sink, source: Add pa_sink/source_get_description() > sink, source: Simplify pa_sink/source_new() error handling > sink, source: Add support for nodes > alsa: Handle pa_device_port_new() failures > bluetooth: Handle pa_device_port_new() failures > device-port: Add support for nodes > alsa: Add node support > bluetooth: Add node support > jack: Add node support > sink-input, source-output: Add > pa_sink_input/source_output_get_description() > sink-input, source-output: Add support for nodes > native: Add node support to streams > tagstruct: Add pa_tagstruct_put/get_direction() > tagstruct: Accept only valid UTF-8 strings > native: Add node querying to the protocol > pactl: Add "pactl list nodes" functionality > > PROTOCOL | 31 +++++ > configure.ac | 2 +- > man/pactl.1.xml.in | 8 +- > src/Makefile.am | 1 + > src/map-file | 3 + > src/modules/alsa/alsa-mixer.c | 23 +++- > src/modules/alsa/alsa-sink.c | 9 +- > src/modules/alsa/alsa-source.c | 9 +- > src/modules/alsa/alsa-ucm.c | 19 ++- > src/modules/bluetooth/module-bluetooth-device.c | 46 ++++++- > src/modules/echo-cancel/module-echo-cancel.c | 32 ++--- > src/modules/jack/module-jack-sink.c | 3 + > src/modules/jack/module-jack-source.c | 3 + > src/modules/macosx/module-bonjour-publish.c | 11 +- > src/modules/module-combine-sink.c | 6 +- > src/modules/module-device-manager.c | 12 +- > src/modules/module-equalizer-sink.c | 4 +- > src/modules/module-ladspa-sink.c | 13 +- > src/modules/module-loopback.c | 8 +- > src/modules/module-remap-sink.c | 12 +- > src/modules/module-remap-source.c | 12 +- > src/modules/module-rygel-media-server.c | 2 +- > src/modules/module-virtual-sink.c | 16 +-- > src/modules/module-virtual-source.c | 25 ++-- > src/modules/module-virtual-surround-sink.c | 16 +-- > src/pulse/introspect.c | 111 ++++++++++++++++ > src/pulse/introspect.h | 41 ++++++ > src/pulsecore/cli-text.c | 4 +- > src/pulsecore/core.c | 1 + > src/pulsecore/core.h | 2 +- > src/pulsecore/device-port.c | 32 +++++ > src/pulsecore/device-port.h | 6 + > src/pulsecore/namereg.c | 2 +- > src/pulsecore/namereg.h | 3 +- > src/pulsecore/native-common.h | 4 + > src/pulsecore/node.c | 164 ++++++++++++++++++++++++ > src/pulsecore/node.h | 89 +++++++++++++ > src/pulsecore/protocol-http.c | 4 +- > src/pulsecore/protocol-native.c | 61 ++++++--- > src/pulsecore/sink-input.c | 60 ++++++++- > src/pulsecore/sink-input.h | 8 ++ > src/pulsecore/sink.c | 150 ++++++++++++++-------- > src/pulsecore/sink.h | 7 + > src/pulsecore/source-output.c | 59 ++++++++- > src/pulsecore/source-output.h | 10 +- > src/pulsecore/source.c | 125 +++++++++++------- > src/pulsecore/source.h | 7 + > src/pulsecore/tagstruct.c | 37 ++++++ > src/pulsecore/tagstruct.h | 4 + > src/utils/pactl.c | 46 ++++++- > 50 files changed, 1097 insertions(+), 266 deletions(-) > create mode 100644 src/pulsecore/node.c > create mode 100644 src/pulsecore/node.h These patches have now been pushed to a new branch named "routing". -- Tanu