alsa: when creating alsa sinks/sources include mapping name in device name to allow...
authorLennart Poettering <lennart@poettering.net>
Thu, 18 Jun 2009 01:42:39 +0000 (03:42 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 18 Jun 2009 01:42:39 +0000 (03:42 +0200)
src/modules/alsa/alsa-sink.c
src/modules/alsa/alsa-source.c

index 2226bc6..34ff658 100644 (file)
@@ -1335,7 +1335,7 @@ finish:
     pa_log_debug("Thread shutting down");
 }
 
-static void set_sink_name(pa_sink_new_data *data, pa_modargs *ma, const char *device_id, const char *device_name) {
+static void set_sink_name(pa_sink_new_data *data, pa_modargs *ma, const char *device_id, const char *device_name, pa_alsa_mapping *mapping) {
     const char *n;
     char *t;
 
@@ -1356,7 +1356,11 @@ static void set_sink_name(pa_sink_new_data *data, pa_modargs *ma, const char *de
         data->namereg_fail = FALSE;
     }
 
-    t = pa_sprintf_malloc("alsa_output.%s", n);
+    if (mapping)
+        t = pa_sprintf_malloc("alsa_output.%s.%s", n, mapping->name);
+    else
+        t = pa_sprintf_malloc("alsa_output.%s", n);
+
     pa_sink_new_data_set_name(data, t);
     pa_xfree(t);
 }
@@ -1679,7 +1683,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
     data.driver = driver;
     data.module = m;
     data.card = card;
-    set_sink_name(&data, ma, dev_id, u->device_name);
+    set_sink_name(&data, ma, dev_id, u->device_name, mapping);
     pa_sink_new_data_set_sample_spec(&data, &ss);
     pa_sink_new_data_set_channel_map(&data, &map);
 
index f2e4e23..c8244c6 100644 (file)
@@ -1187,7 +1187,7 @@ finish:
     pa_log_debug("Thread shutting down");
 }
 
-static void set_source_name(pa_source_new_data *data, pa_modargs *ma, const char *device_id, const char *device_name) {
+static void set_source_name(pa_source_new_data *data, pa_modargs *ma, const char *device_id, const char *device_name, pa_alsa_mapping *mapping) {
     const char *n;
     char *t;
 
@@ -1208,7 +1208,11 @@ static void set_source_name(pa_source_new_data *data, pa_modargs *ma, const char
         data->namereg_fail = FALSE;
     }
 
-    t = pa_sprintf_malloc("alsa_input.%s", n);
+    if (mapping)
+        t = pa_sprintf_malloc("alsa_input.%s.%s", n, mapping->name);
+    else
+        t = pa_sprintf_malloc("alsa_input.%s", n);
+
     pa_source_new_data_set_name(data, t);
     pa_xfree(t);
 }
@@ -1528,7 +1532,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
     data.driver = driver;
     data.module = m;
     data.card = card;
-    set_source_name(&data, ma, dev_id, u->device_name);
+    set_source_name(&data, ma, dev_id, u->device_name, mapping);
     pa_source_new_data_set_sample_spec(&data, &ss);
     pa_source_new_data_set_channel_map(&data, &map);