From 334325efd7d8ba32ca3c4ba8f90dccae7abe914c Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 17 Jun 2009 04:17:25 +0200 Subject: alsa: allow placing device id in alsa device strings at arbitrary positions --- src/modules/alsa/alsa-mixer.c | 4 ++-- src/modules/alsa/alsa-util.c | 10 +++++----- src/modules/alsa/alsa-util.h | 6 +++--- src/modules/alsa/mixer/profile-sets/default.conf | 24 ++++++++++++------------ 4 files changed, 22 insertions(+), 22 deletions(-) (limited to 'src/modules/alsa') diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c index 53875165..6f21e103 100644 --- a/src/modules/alsa/alsa-mixer.c +++ b/src/modules/alsa/alsa-mixer.c @@ -3179,7 +3179,7 @@ void pa_alsa_profile_set_probe(pa_alsa_profile_set *ps, const char *dev_id, cons try_ss = *ss; try_ss.channels = try_map.channels; - if (!(m ->output_pcm = pa_alsa_open_by_device_string_strv( + if (!(m ->output_pcm = pa_alsa_open_by_template( m->device_strings, dev_id, NULL, @@ -3203,7 +3203,7 @@ void pa_alsa_profile_set_probe(pa_alsa_profile_set *ps, const char *dev_id, cons try_ss = *ss; try_ss.channels = try_map.channels; - if (!(m ->input_pcm = pa_alsa_open_by_device_string_strv( + if (!(m ->input_pcm = pa_alsa_open_by_template( m->device_strings, dev_id, NULL, diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c index d117ccd1..0204c28b 100644 --- a/src/modules/alsa/alsa-util.c +++ b/src/modules/alsa/alsa-util.c @@ -514,7 +514,7 @@ snd_pcm_t *pa_alsa_open_by_device_id_mapping( try_ss.format = ss->format; try_map = m->channel_map; - pcm_handle = pa_alsa_open_by_device_string_strv( + pcm_handle = pa_alsa_open_by_template( m->device_strings, dev_id, dev, @@ -622,8 +622,8 @@ fail: return NULL; } -snd_pcm_t *pa_alsa_open_by_device_string_strv( - char **prefix, +snd_pcm_t *pa_alsa_open_by_template( + char **template, const char *dev_id, char **dev, pa_sample_spec *ss, @@ -639,10 +639,10 @@ snd_pcm_t *pa_alsa_open_by_device_string_strv( snd_pcm_t *pcm_handle; char **i; - for (i = prefix; *i; i++) { + for (i = template; *i; i++) { char *d; - d = pa_sprintf_malloc("%s:%s", *i, dev_id); + d = pa_replace(*i, "%f", dev_id); pcm_handle = pa_alsa_open_by_device_string( d, diff --git a/src/modules/alsa/alsa-util.h b/src/modules/alsa/alsa-util.h index 4993f454..c2f0e5b7 100644 --- a/src/modules/alsa/alsa-util.h +++ b/src/modules/alsa/alsa-util.h @@ -84,7 +84,7 @@ snd_pcm_t *pa_alsa_open_by_device_id_mapping( /* Opens the explicit ALSA device */ snd_pcm_t *pa_alsa_open_by_device_string( - const char *device, + const char *dir, char **dev, /* modified at return */ pa_sample_spec *ss, /* modified at return */ pa_channel_map* map, /* modified at return */ @@ -97,8 +97,8 @@ snd_pcm_t *pa_alsa_open_by_device_string( pa_bool_t require_exact_channel_number); /* Opens the explicit ALSA device with a fallback list */ -snd_pcm_t *pa_alsa_open_by_device_string_strv( - char **device, +snd_pcm_t *pa_alsa_open_by_template( + char **template, const char *dev_id, char **dev, /* modified at return */ pa_sample_spec *ss, /* modified at return */ diff --git a/src/modules/alsa/mixer/profile-sets/default.conf b/src/modules/alsa/mixer/profile-sets/default.conf index bced10ad..bbe53410 100644 --- a/src/modules/alsa/mixer/profile-sets/default.conf +++ b/src/modules/alsa/mixer/profile-sets/default.conf @@ -22,49 +22,49 @@ auto-profiles = yes [Mapping analog-mono] -device-strings = hw +device-strings = hw:%f channel-map = mono paths-output = analog-output analog-output-headphones analog-output-mono analog-output-lfe-on-mono paths-input = analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line priority = 1 [Mapping analog-stereo] -device-strings = front hw +device-strings = front:%f hw:%f channel-map = left,right paths-output = analog-output analog-output-headphones analog-output-mono analog-output-lfe-on-mono paths-input = analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line priority = 10 [Mapping analog-surround-40] -device-strings = surround40 +device-strings = surround40:%f channel-map = front-left,front-right,rear-left,rear-right paths-output = analog-output analog-output-lfe-on-mono priority = 7 direction = output [Mapping analog-surround-41] -device-strings = surround41 +device-strings = surround41:%f channel-map = front-left,front-right,rear-left,rear-right,lfe paths-output = analog-output analog-output-lfe-on-mono priority = 8 direction = output [Mapping analog-surround-50] -device-strings = surround50 +device-strings = surround50:%f channel-map = front-left,front-right,rear-left,rear-right,front-center paths-output = analog-output analog-output-lfe-on-mono priority = 7 direction = output [Mapping analog-surround-51] -device-strings = surround51 +device-strings = surround51:%f channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe paths-output = analog-output analog-output-lfe-on-mono priority = 8 direction = output [Mapping analog-surround-71] -device-strings = surround71 +device-strings = surround71:%f channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right description = Analog Surround 7.1 paths-output = analog-output analog-output-lfe-on-mono @@ -72,29 +72,29 @@ priority = 7 direction = output [Mapping iec958-stereo] -device-strings = iec958 +device-strings = iec958:%f channel-map = left,right priority = 5 [Mapping iec958-surround-40] -device-strings = iec958 +device-strings = iec958:%f channel-map = front-left,front-right,rear-left,rear-right priority = 1 [Mapping iec958-ac3-surround-40] -device-strings = a52 +device-strings = a52:%f channel-map = front-left,front-right,rear-left,rear-right priority = 2 direction = output [Mapping iec958-ac3-surround-51] -device-strings = a52 +device-strings = a52:%f channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe priority = 3 direction = output [Mapping hdmi-stereo] -device-strings = hdmi +device-strings = hdmi:%f channel-map = left,right priority = 4 direction = output -- cgit