[pulseaudio-discuss] [PATCH v2 00/18] Add a basic node concept

Tanu Kaskinen tanu.kaskinen at linux.intel.com
Fri Jun 28 00:47:54 PDT 2013


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 v2:
 - There are no more pa_port_node, pa_sink_node etc. structs. If there
   is need to have e.g. port node specific code, it will probably go
   to device-port.c.
 - Sinks and sources aren't required to have the
   PA_PROP_DEVICE_DESCRIPTION property set.
   pa_sink/source_get_description() handles missing descriptions by
   returning the sink/source name as a fallback.
 - The device class stuff is not included in this patch set anymore.
   It will possibly come back in the next patch set. As a result, the
   node names aren't very informative at this stage.
 - pa_node doesn't have the "persistent" field anymore. It's not
   needed at this point, and it can be added later.
 - Added protocol support and pactl list support for nodes.
 - Some patches of v1 have been merged already.

Tanu Kaskinen (18):
  node: Introduce pa_node
  sink, source: Disallow setting NULL 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                    |  10 +-
 src/modules/alsa/alsa-source.c                  |  10 +-
 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                            | 149 +++++++++++++--------
 src/pulsecore/sink.h                            |   7 +
 src/pulsecore/source-output.c                   |  57 +++++++-
 src/pulsecore/source-output.h                   |  10 +-
 src/pulsecore/source.c                          | 124 +++++++++++-------
 src/pulsecore/source.h                          |   7 +
 src/pulsecore/tagstruct.c                       |  37 ++++++
 src/pulsecore/tagstruct.h                       |   4 +
 src/utils/pactl.c                               |  46 ++++++-
 50 files changed, 1095 insertions(+), 266 deletions(-)
 create mode 100644 src/pulsecore/node.c
 create mode 100644 src/pulsecore/node.h

-- 
1.8.1.2



More information about the pulseaudio-discuss mailing list