All sinks that don't have ports should have nodes, because otherwise routing streams to those sinks won't work when sink input routing is changed to be node-based. --- src/modules/echo-cancel/module-echo-cancel.c | 3 +++ src/modules/macosx/module-coreaudio-device.c | 3 +++ src/modules/module-combine-sink.c | 3 +++ src/modules/module-equalizer-sink.c | 3 +++ src/modules/module-esound-sink.c | 3 +++ src/modules/module-ladspa-sink.c | 3 +++ src/modules/module-null-sink.c | 3 +++ src/modules/module-pipe-sink.c | 3 +++ src/modules/module-remap-sink.c | 3 +++ src/modules/module-solaris.c | 3 +++ src/modules/module-tunnel-sink-new.c | 4 ++++ src/modules/module-tunnel.c | 3 +++ src/modules/module-virtual-sink.c | 3 +++ src/modules/module-virtual-source.c | 2 ++ src/modules/module-virtual-surround-sink.c | 3 +++ src/modules/module-waveout.c | 4 ++++ src/modules/oss/module-oss.c | 3 +++ src/modules/raop/module-raop-sink.c | 3 +++ src/modules/xen/module-xenpv-sink.c | 3 +++ todo | 1 - 20 files changed, 58 insertions(+), 1 deletion(-) diff --git a/src/modules/echo-cancel/module-echo-cancel.c b/src/modules/echo-cancel/module-echo-cancel.c index 2adce22..c31019d 100644 --- a/src/modules/echo-cancel/module-echo-cancel.c +++ b/src/modules/echo-cancel/module-echo-cancel.c @@ -1833,6 +1833,9 @@ int pa__init(pa_module*m) { pa_proplist_setf(sink_data.proplist, PA_PROP_DEVICE_DESCRIPTION, "%s (echo cancelled with %s)", pa_sink_get_description(sink_master), pa_source_get_description(source_master)); + pa_sink_new_data_set_create_node(&sink_data, true); + pa_node_new_data_set_fallback_name_prefix(&sink_data.node_data, "echo-cancel"); + u->sink = pa_sink_new(m->core, &sink_data, (sink_master->flags & (PA_SINK_LATENCY | PA_SINK_DYNAMIC_LATENCY)) | (u->use_volume_sharing ? PA_SINK_SHARE_VOLUME_WITH_MASTER : 0)); pa_sink_new_data_done(&sink_data); diff --git a/src/modules/macosx/module-coreaudio-device.c b/src/modules/macosx/module-coreaudio-device.c index 7b3a002..efa61fa 100644 --- a/src/modules/macosx/module-coreaudio-device.c +++ b/src/modules/macosx/module-coreaudio-device.c @@ -447,6 +447,9 @@ static int ca_device_create_sink(pa_module *m, AudioBuffer *buf, int channel_idx if (u->vendor_name) pa_proplist_sets(new_data.proplist, PA_PROP_DEVICE_VENDOR_NAME, u->vendor_name); + pa_sink_new_data_set_create_node(&new_data, true); + pa_node_new_data_set_fallback_name_prefix(&new_data.node_data, "coreaudio"); + sink = pa_sink_new(m->core, &new_data, flags); pa_sink_new_data_done(&new_data); diff --git a/src/modules/module-combine-sink.c b/src/modules/module-combine-sink.c index da9a424..22fc976 100644 --- a/src/modules/module-combine-sink.c +++ b/src/modules/module-combine-sink.c @@ -1269,6 +1269,9 @@ int pa__init(pa_module*m) { pa_proplist_sets(data.proplist, PA_PROP_DEVICE_DESCRIPTION, "Simultaneous Output"); } + pa_sink_new_data_set_create_node(&data, true); + pa_node_new_data_set_fallback_name_prefix(&data.node_data, "combine"); + u->sink = pa_sink_new(m->core, &data, PA_SINK_LATENCY); pa_sink_new_data_done(&data); diff --git a/src/modules/module-equalizer-sink.c b/src/modules/module-equalizer-sink.c index d274980..3c5bca1 100644 --- a/src/modules/module-equalizer-sink.c +++ b/src/modules/module-equalizer-sink.c @@ -1192,6 +1192,9 @@ int pa__init(pa_module*m) { goto fail; } + pa_sink_new_data_set_create_node(&sink_data, true); + pa_node_new_data_set_fallback_name_prefix(&sink_data.node_data, "equalizer"); + u->sink = pa_sink_new(m->core, &sink_data, (master->flags & (PA_SINK_LATENCY | PA_SINK_DYNAMIC_LATENCY)) | (use_volume_sharing ? PA_SINK_SHARE_VOLUME_WITH_MASTER : 0)); pa_sink_new_data_done(&sink_data); diff --git a/src/modules/module-esound-sink.c b/src/modules/module-esound-sink.c index 8b74ea4..7ca8259 100644 --- a/src/modules/module-esound-sink.c +++ b/src/modules/module-esound-sink.c @@ -599,6 +599,9 @@ int pa__init(pa_module*m) { goto fail; } + pa_sink_new_data_set_create_node(&data, true); + pa_node_new_data_set_fallback_name_prefix(&data.node_data, "esound"); + u->sink = pa_sink_new(m->core, &data, PA_SINK_LATENCY|PA_SINK_NETWORK); pa_sink_new_data_done(&data); diff --git a/src/modules/module-ladspa-sink.c b/src/modules/module-ladspa-sink.c index c4717c4..0cd94de 100644 --- a/src/modules/module-ladspa-sink.c +++ b/src/modules/module-ladspa-sink.c @@ -1230,6 +1230,9 @@ int pa__init(pa_module*m) { pa_proplist_setf(sink_data.proplist, PA_PROP_DEVICE_DESCRIPTION, "LADSPA Plugin %s on %s", d->Name, pa_sink_get_description(master)); + pa_sink_new_data_set_create_node(&sink_data, true); + pa_node_new_data_set_fallback_name_prefix(&sink_data.node_data, "ladspa"); + u->sink = pa_sink_new(m->core, &sink_data, (master->flags & (PA_SINK_LATENCY|PA_SINK_DYNAMIC_LATENCY)) | PA_SINK_SHARE_VOLUME_WITH_MASTER); pa_sink_new_data_done(&sink_data); diff --git a/src/modules/module-null-sink.c b/src/modules/module-null-sink.c index c038b6c..e540f4e 100644 --- a/src/modules/module-null-sink.c +++ b/src/modules/module-null-sink.c @@ -286,6 +286,9 @@ int pa__init(pa_module*m) { goto fail; } + pa_sink_new_data_set_create_node(&data, true); + pa_node_new_data_set_fallback_name_prefix(&data.node_data, "null"); + u->sink = pa_sink_new(m->core, &data, PA_SINK_LATENCY|PA_SINK_DYNAMIC_LATENCY); pa_sink_new_data_done(&data); diff --git a/src/modules/module-pipe-sink.c b/src/modules/module-pipe-sink.c index 4d82cc3..6e22ddb 100644 --- a/src/modules/module-pipe-sink.c +++ b/src/modules/module-pipe-sink.c @@ -290,6 +290,9 @@ int pa__init(pa_module *m) { goto fail; } + pa_sink_new_data_set_create_node(&data, true); + pa_node_new_data_set_fallback_name_prefix(&data.node_data, "pipe"); + u->sink = pa_sink_new(m->core, &data, PA_SINK_LATENCY); pa_sink_new_data_done(&data); diff --git a/src/modules/module-remap-sink.c b/src/modules/module-remap-sink.c index 2946cff..6586ea4 100644 --- a/src/modules/module-remap-sink.c +++ b/src/modules/module-remap-sink.c @@ -385,6 +385,9 @@ int pa__init(pa_module*m) { if ((u->auto_desc = !pa_proplist_contains(sink_data.proplist, PA_PROP_DEVICE_DESCRIPTION))) pa_proplist_setf(sink_data.proplist, PA_PROP_DEVICE_DESCRIPTION, "Remapped %s", pa_sink_get_description(master)); + pa_sink_new_data_set_create_node(&sink_data, true); + pa_node_new_data_set_fallback_name_prefix(&sink_data.node_data, "remap"); + u->sink = pa_sink_new(m->core, &sink_data, master->flags & (PA_SINK_LATENCY|PA_SINK_DYNAMIC_LATENCY)); pa_sink_new_data_done(&sink_data); diff --git a/src/modules/module-solaris.c b/src/modules/module-solaris.c index b4fa734..0d02010 100644 --- a/src/modules/module-solaris.c +++ b/src/modules/module-solaris.c @@ -987,6 +987,9 @@ int pa__init(pa_module *m) { goto fail; } + pa_sink_new_data_set_create_node(&sink_new_data, true); + pa_node_new_data_set_fallback_name_prefix(&sink_new_data.node_data, "solaris"); + u->sink = pa_sink_new(m->core, &sink_new_data, PA_SINK_HARDWARE|PA_SINK_LATENCY); pa_sink_new_data_done(&sink_new_data); diff --git a/src/modules/module-tunnel-sink-new.c b/src/modules/module-tunnel-sink-new.c index cd7c39c..a83b3ad 100644 --- a/src/modules/module-tunnel-sink-new.c +++ b/src/modules/module-tunnel-sink-new.c @@ -480,6 +480,10 @@ int pa__init(pa_module *m) { pa_sink_new_data_done(&sink_data); goto fail; } + + pa_sink_new_data_set_create_node(&sink_data, true); + pa_node_new_data_set_fallback_name_prefix(&sink_data.node_data, "tunnel"); + if (!(u->sink = pa_sink_new(m->core, &sink_data, PA_SINK_LATENCY | PA_SINK_DYNAMIC_LATENCY | PA_SINK_NETWORK))) { pa_log("Failed to create sink."); pa_sink_new_data_done(&sink_data); diff --git a/src/modules/module-tunnel.c b/src/modules/module-tunnel.c index 1ddfd25..2ad316b 100644 --- a/src/modules/module-tunnel.c +++ b/src/modules/module-tunnel.c @@ -2138,6 +2138,9 @@ int pa__init(pa_module*m) { goto fail; } + pa_sink_new_data_set_create_node(&data, true); + pa_node_new_data_set_fallback_name_prefix(&data.node_data, "tunnel"); + u->sink = pa_sink_new(m->core, &data, PA_SINK_NETWORK|PA_SINK_LATENCY); pa_sink_new_data_done(&data); diff --git a/src/modules/module-virtual-sink.c b/src/modules/module-virtual-sink.c index 710d914..53f8a17 100644 --- a/src/modules/module-virtual-sink.c +++ b/src/modules/module-virtual-sink.c @@ -538,6 +538,9 @@ int pa__init(pa_module*m) { pa_proplist_setf(sink_data.proplist, PA_PROP_DEVICE_DESCRIPTION, "Virtual Sink %s on %s", sink_data.name, pa_sink_get_description(master)); + pa_sink_new_data_set_create_node(&sink_data, true); + pa_node_new_data_set_fallback_name_prefix(&sink_data.node_data, "virtual"); + u->sink = pa_sink_new(m->core, &sink_data, (master->flags & (PA_SINK_LATENCY|PA_SINK_DYNAMIC_LATENCY)) | (use_volume_sharing ? PA_SINK_SHARE_VOLUME_WITH_MASTER : 0)); pa_sink_new_data_done(&sink_data); diff --git a/src/modules/module-virtual-source.c b/src/modules/module-virtual-source.c index 9d7fd31..6f19dd3 100644 --- a/src/modules/module-virtual-source.c +++ b/src/modules/module-virtual-source.c @@ -630,6 +630,8 @@ int pa__init(pa_module*m) { goto fail; } + pa_sink_new_data_set_create_node(&sink_data, "virtual-uplink"); + u->sink = pa_sink_new(m->core, &sink_data, 0); /* FIXME, sink has no capabilities */ pa_sink_new_data_done(&sink_data); diff --git a/src/modules/module-virtual-surround-sink.c b/src/modules/module-virtual-surround-sink.c index a289b4a..6d5c6b2 100644 --- a/src/modules/module-virtual-surround-sink.c +++ b/src/modules/module-virtual-surround-sink.c @@ -640,6 +640,9 @@ int pa__init(pa_module*m) { pa_proplist_setf(sink_data.proplist, PA_PROP_DEVICE_DESCRIPTION, "Virtual Surround Sink %s on %s", sink_data.name, pa_sink_get_description(master)); + pa_sink_new_data_set_create_node(&sink_data, true); + pa_node_new_data_set_fallback_name_prefix(&sink_data.node_data, "virtual-surround"); + u->sink = pa_sink_new(m->core, &sink_data, (master->flags & (PA_SINK_LATENCY|PA_SINK_DYNAMIC_LATENCY)) | (use_volume_sharing ? PA_SINK_SHARE_VOLUME_WITH_MASTER : 0)); pa_sink_new_data_done(&sink_data); diff --git a/src/modules/module-waveout.c b/src/modules/module-waveout.c index b274271..0ed43d7 100644 --- a/src/modules/module-waveout.c +++ b/src/modules/module-waveout.c @@ -634,6 +634,10 @@ int pa__init(pa_module *m) { pa_sink_new_data_set_channel_map(&data, &map); pa_sink_new_data_set_name(&data, pa_modargs_get_value(ma, "sink_name", DEFAULT_SINK_NAME)); pa_proplist_setf(data.proplist, PA_PROP_DEVICE_DESCRIPTION, "WaveOut on %s", device_name); + + pa_sink_new_data_set_create_node(&data, true); + pa_node_new_data_set_fallback_name_prefix(&data.node_data, "waveout"); + u->sink = pa_sink_new(m->core, &data, PA_SINK_HARDWARE|PA_SINK_LATENCY); pa_sink_new_data_done(&data); diff --git a/src/modules/oss/module-oss.c b/src/modules/oss/module-oss.c index 03e51c8..998cb1d 100644 --- a/src/modules/oss/module-oss.c +++ b/src/modules/oss/module-oss.c @@ -1400,6 +1400,9 @@ int pa__init(pa_module*m) { goto fail; } + pa_sink_new_data_set_create_node(&sink_new_data, true); + pa_node_new_data_set_fallback_name_prefix(&sink_new_data.node_data, "oss"); + u->sink = pa_sink_new(m->core, &sink_new_data, PA_SINK_HARDWARE|PA_SINK_LATENCY); pa_sink_new_data_done(&sink_new_data); pa_xfree(name_buf); diff --git a/src/modules/raop/module-raop-sink.c b/src/modules/raop/module-raop-sink.c index 2d08645..e923b37 100644 --- a/src/modules/raop/module-raop-sink.c +++ b/src/modules/raop/module-raop-sink.c @@ -586,6 +586,9 @@ int pa__init(pa_module*m) { goto fail; } + pa_sink_new_data_set_create_node(&data, true); + pa_node_new_data_set_fallback_name_prefix(&data.node_data, "raop"); + u->sink = pa_sink_new(m->core, &data, PA_SINK_LATENCY|PA_SINK_NETWORK); pa_sink_new_data_done(&data); diff --git a/src/modules/xen/module-xenpv-sink.c b/src/modules/xen/module-xenpv-sink.c index 9dbd660..66d86cc 100644 --- a/src/modules/xen/module-xenpv-sink.c +++ b/src/modules/xen/module-xenpv-sink.c @@ -498,6 +498,9 @@ int pa__init(pa_module*m) { goto fail; } + pa_sink_new_data_set_create_node(&data, true); + pa_node_new_data_set_fallback_name_prefix(&data.node_data, "xen"); + u->sink = pa_sink_new(m->core, &data, PA_SINK_LATENCY); pa_sink_new_data_done(&data); diff --git a/todo b/todo index edf66e5..8445c47 100644 --- a/todo +++ b/todo @@ -47,5 +47,4 @@ Backends for: - portaudio (semi-done) Routing: -- Create nodes for sinks. - Create nodes for sources. -- 1.8.3.1