diff options
| author | Lennart Poettering <lennart@poettering.net> | 2009-06-18 03:42:39 +0200 | 
|---|---|---|
| committer | Lennart Poettering <lennart@poettering.net> | 2009-06-18 03:42:39 +0200 | 
| commit | 34b48887ef74d7ec4d54282d4364ec2ee34e8234 (patch) | |
| tree | fb977ba3f9833c477e69746ece0b54fa89feb57d | |
| parent | 8d3362cec6263301ec5a8b40cc0ef333ca721c30 (diff) | |
alsa: when creating alsa sinks/sources include mapping name in device name to allow profiles mit multiple sinks or multiple sources
| -rw-r--r-- | src/modules/alsa/alsa-sink.c | 10 | ||||
| -rw-r--r-- | src/modules/alsa/alsa-source.c | 10 | 
2 files changed, 14 insertions, 6 deletions
diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c index 2226bc6f..34ff6582 100644 --- a/src/modules/alsa/alsa-sink.c +++ b/src/modules/alsa/alsa-sink.c @@ -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); diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c index f2e4e234..c8244c66 100644 --- a/src/modules/alsa/alsa-source.c +++ b/src/modules/alsa/alsa-source.c @@ -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);  | 
