On Wed, 2013-06-19 at 18:39 +0300, Tanu Kaskinen wrote: > This patch set adds pa_node, pa_port_node, pa_sink_node, > pa_source_node, pa_sink_input_node and pa_source_output node structs > to the core. Node support is added for some backends: alsa, bluetooth, > jack, and native streams. I didn't implement other backends, because > I'm lazy (a nicer excuse might be that the nodes may evolve quite > a bit, so there's less code to fix when that happens). > > The nodes aren't yet visible to clients, and the nodes don't support > any operations to be done on them, such as routing between two nodes. > I'll try to keep the patch sets small enough not to scare reviewers > (21 patches is already more than I'd like). > > Tanu Kaskinen (21): > device-port: Assert that ports have a description > device-class: Introduce pa_device_class_t > bluetooth: Use pa_device_class_t > alsa: Ensure that sinks and sources have descriptions > waveout: Simplify setting the device description > device-manager: Add a sanity check for reading entries > sink, source: Disallow setting NULL description > sink, source: Assert that a description is always set > sink, source: Add pa_sink/source_get_description() > sink-input, source-output: Add > pa_sink_input/source_output_get_description() > node: Introduce pa_node > sink-node, source-node: Introduce sink and source nodes > device-port: Add a device_class field to ports > port-node: Introduce pa_port_node > dynarray: Reimplement with nicer semantics > alsa: Add node support > bluetooth: Add node support > jack: Add node supprt > sink-input-node, source-output-node: Introduce sink input and source > output nodes > object: Initialize allocated memory to zero > native: Add node support for streams > > src/Makefile.am | 7 ++ > src/modules/alsa/alsa-sink.c | 16 ++- > src/modules/alsa/alsa-source.c | 16 ++- > src/modules/alsa/module-alsa-card.c | 26 +++++ > src/modules/bluetooth/bluetooth-util.c | 72 ++++++------- > src/modules/bluetooth/bluetooth-util.h | 16 +-- > src/modules/bluetooth/module-bluetooth-device.c | 128 +++++++++++++---------- > src/modules/echo-cancel/module-echo-cancel.c | 32 ++---- > src/modules/jack/module-jack-sink.c | 7 ++ > src/modules/jack/module-jack-source.c | 7 ++ > src/modules/macosx/module-bonjour-publish.c | 11 +- > src/modules/module-combine-sink.c | 6 +- > src/modules/module-device-manager.c | 17 ++-- > 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/modules/module-waveout.c | 8 +- > src/pulsecore/cli-command.c | 4 +- > src/pulsecore/cli-text.c | 4 +- > src/pulsecore/core.c | 1 + > src/pulsecore/core.h | 2 +- > src/pulsecore/device-class.c | 88 ++++++++++++++++ > src/pulsecore/device-class.h | 88 ++++++++++++++++ > src/pulsecore/device-port.c | 9 ++ > src/pulsecore/device-port.h | 5 + > src/pulsecore/dynarray.c | 85 +++++++--------- > src/pulsecore/dynarray.h | 49 +++++---- > src/pulsecore/namereg.c | 2 +- > src/pulsecore/namereg.h | 3 +- > src/pulsecore/node.c | 130 ++++++++++++++++++++++++ > src/pulsecore/node.h | 63 ++++++++++++ > src/pulsecore/object.c | 2 +- > src/pulsecore/port-node.c | 80 +++++++++++++++ > src/pulsecore/port-node.h | 40 ++++++++ > src/pulsecore/protocol-http.c | 4 +- > src/pulsecore/protocol-native.c | 23 ++++- > src/pulsecore/sink-input-node.c | 70 +++++++++++++ > src/pulsecore/sink-input-node.h | 40 ++++++++ > src/pulsecore/sink-input.c | 21 ++++ > src/pulsecore/sink-input.h | 2 + > src/pulsecore/sink-node.c | 70 +++++++++++++ > src/pulsecore/sink-node.h | 40 ++++++++ > src/pulsecore/sink.c | 23 +++-- > src/pulsecore/sink.h | 1 + > src/pulsecore/source-node.c | 70 +++++++++++++ > src/pulsecore/source-node.h | 40 ++++++++ > src/pulsecore/source-output-node.c | 70 +++++++++++++ > src/pulsecore/source-output-node.h | 40 ++++++++ > src/pulsecore/source-output.c | 21 ++++ > src/pulsecore/source-output.h | 4 +- > src/pulsecore/source.c | 21 ++-- > src/pulsecore/source.h | 1 + > src/pulsecore/tokenizer.c | 8 +- > 59 files changed, 1360 insertions(+), 341 deletions(-) > create mode 100644 src/pulsecore/device-class.c > create mode 100644 src/pulsecore/device-class.h > create mode 100644 src/pulsecore/node.c > create mode 100644 src/pulsecore/node.h > create mode 100644 src/pulsecore/port-node.c > create mode 100644 src/pulsecore/port-node.h > create mode 100644 src/pulsecore/sink-input-node.c > create mode 100644 src/pulsecore/sink-input-node.h > create mode 100644 src/pulsecore/sink-node.c > create mode 100644 src/pulsecore/sink-node.h > create mode 100644 src/pulsecore/source-node.c > create mode 100644 src/pulsecore/source-node.h > create mode 100644 src/pulsecore/source-output-node.c > create mode 100644 src/pulsecore/source-output-node.h I got acks for patches 1 and 20, so I pushed those. v2 is hopefully coming soon. -- Tanu