From 1c4393acf0a641a4f462cfa6c368d23d9e55a1b8 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 28 May 2009 02:39:22 +0200 Subject: modules: add {sink|source|card}_properties argument to all modules --- src/modules/oss/module-oss.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'src/modules/oss/module-oss.c') diff --git a/src/modules/oss/module-oss.c b/src/modules/oss/module-oss.c index d6f549cd..7d8d25e4 100644 --- a/src/modules/oss/module-oss.c +++ b/src/modules/oss/module-oss.c @@ -85,16 +85,18 @@ PA_MODULE_VERSION(PACKAGE_VERSION); PA_MODULE_LOAD_ONCE(FALSE); PA_MODULE_USAGE( "sink_name= " + "sink_properties= " "source_name= " + "source_properties= " "device= " "record= " "playback= " "format= " - "channels= " "rate= " + "channels= " + "channel_map= " "fragments= " "fragment_size= " - "channel_map= " "mmap="); #define DEFAULT_DEVICE "/dev/dsp" @@ -140,7 +142,9 @@ struct userdata { static const char* const valid_modargs[] = { "sink_name", + "sink_properties", "source_name", + "source_properties", "device", "record", "playback", @@ -1314,6 +1318,12 @@ int pa__init(pa_module*m) { pa_proplist_setf(source_new_data.proplist, PA_PROP_DEVICE_BUFFERING_BUFFER_SIZE, "%lu", (unsigned long) (u->in_hwbuf_size)); pa_proplist_setf(source_new_data.proplist, PA_PROP_DEVICE_BUFFERING_FRAGMENT_SIZE, "%lu", (unsigned long) (u->in_fragment_size)); + if (pa_modargs_get_proplist(ma, "source_properties", source_new_data.proplist, PA_UPDATE_REPLACE) < 0) { + pa_log("Invalid properties"); + pa_source_new_data_done(&source_new_data); + goto fail; + } + u->source = pa_source_new(m->core, &source_new_data, PA_SOURCE_HARDWARE|PA_SOURCE_LATENCY); pa_source_new_data_done(&source_new_data); pa_xfree(name_buf); @@ -1376,6 +1386,12 @@ int pa__init(pa_module*m) { pa_proplist_setf(sink_new_data.proplist, PA_PROP_DEVICE_BUFFERING_BUFFER_SIZE, "%lu", (unsigned long) (u->out_hwbuf_size)); pa_proplist_setf(sink_new_data.proplist, PA_PROP_DEVICE_BUFFERING_FRAGMENT_SIZE, "%lu", (unsigned long) (u->out_fragment_size)); + if (pa_modargs_get_proplist(ma, "sink_properties", sink_new_data.proplist, PA_UPDATE_REPLACE) < 0) { + pa_log("Invalid properties"); + pa_sink_new_data_done(&sink_new_data); + goto fail; + } + 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); -- cgit