[PATCH 00/21] Add a basic node concept

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

-- 
1.8.1.2



[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux