From e29068067a91eb6d8ed0041692e2a9b343587084 Mon Sep 17 00:00:00 2001 From: Roliga Date: Sun, 3 Dec 2017 07:15:11 +0100 Subject: [PATCH] ladspa-sink: add module argument to set sink input properties This patch adds a sink_input_properties argument to module-ladspa-sink, which can be helpful for customizing the appearance of the sink input in various volume control applications, or to differentiate between multiple instances of the module. --- src/modules/module-ladspa-sink.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/modules/module-ladspa-sink.c b/src/modules/module-ladspa-sink.c index 0493da894..8a6cd1809 100644 --- a/src/modules/module-ladspa-sink.c +++ b/src/modules/module-ladspa-sink.c @@ -54,6 +54,7 @@ PA_MODULE_LOAD_ONCE(false); PA_MODULE_USAGE( _("sink_name= " "sink_properties= " + "sink_input_properties= " "master= " "sink_master= " "format= " @@ -108,6 +109,7 @@ struct userdata { static const char* const valid_modargs[] = { "sink_name", "sink_properties", + "sink_input_properties", "master", /* Will be deprecated. */ "sink_master", "format", @@ -1312,6 +1314,13 @@ int pa__init(pa_module*m) { sink_input_data.origin_sink = u->sink; pa_proplist_sets(sink_input_data.proplist, PA_PROP_MEDIA_NAME, "LADSPA Stream"); pa_proplist_sets(sink_input_data.proplist, PA_PROP_MEDIA_ROLE, "filter"); + + if (pa_modargs_get_proplist(ma, "sink_input_properties", sink_input_data.proplist, PA_UPDATE_REPLACE) < 0) { + pa_log("Invalid properties"); + pa_sink_input_new_data_done(&sink_input_data); + goto fail; + } + pa_sink_input_new_data_set_sample_spec(&sink_input_data, &ss); pa_sink_input_new_data_set_channel_map(&sink_input_data, &map); sink_input_data.flags |= PA_SINK_INPUT_START_CORKED;