]> code.delx.au - pulseaudio/commitdiff
null: introduce sink_properties= argument
authorLennart Poettering <lennart@poettering.net>
Wed, 27 May 2009 21:30:29 +0000 (23:30 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 27 May 2009 21:30:29 +0000 (23:30 +0200)
src/modules/module-null-sink.c

index d9bab6bdfc899db5525d6884201234b5829d94ec..c0c2facfa59a3fbe26766b1a46bb898cb9601c27 100644 (file)
@@ -54,12 +54,12 @@ PA_MODULE_DESCRIPTION("Clocked NULL sink");
 PA_MODULE_VERSION(PACKAGE_VERSION);
 PA_MODULE_LOAD_ONCE(FALSE);
 PA_MODULE_USAGE(
+        "sink_name=<name of sink> "
+        "sink_properties=<properties for the sink> "
         "format=<sample format> "
-        "channels=<number of channels> "
         "rate=<sample rate> "
-        "sink_name=<name of sink> "
-        "channel_map=<channel map> "
-        "description=<description for the sink>");
+        "channels=<number of channels> "
+        "channel_map=<channel map>");
 
 #define DEFAULT_SINK_NAME "null"
 #define BLOCK_USEC (PA_USEC_PER_SEC * 2)
@@ -78,12 +78,13 @@ struct userdata {
 };
 
 static const char* const valid_modargs[] = {
-    "rate",
+    "sink_name",
+    "sink_properties",
     "format",
+    "rate",
     "channels",
-    "sink_name",
     "channel_map",
-    "description",
+    "description", /* supported for compatibility reasons, made redundant by sink_properties= */
     NULL
 };
 
@@ -289,6 +290,12 @@ int pa__init(pa_module*m) {
     pa_proplist_sets(data.proplist, PA_PROP_DEVICE_DESCRIPTION, pa_modargs_get_value(ma, "description", "Null Output"));
     pa_proplist_sets(data.proplist, PA_PROP_DEVICE_CLASS, "abstract");
 
+    if (pa_modargs_get_proplist(ma, "sink_properties", data.proplist, PA_UPDATE_REPLACE) < 0) {
+        pa_log("Invalid properties.");
+        pa_sink_new_data_done(&data);
+        goto fail;
+    }
+
     u->sink = pa_sink_new(m->core, &data, PA_SINK_LATENCY|PA_SINK_DYNAMIC_LATENCY);
     pa_sink_new_data_done(&data);