summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-06-17 04:17:25 +0200
committerLennart Poettering <lennart@poettering.net>2009-06-17 04:17:25 +0200
commit334325efd7d8ba32ca3c4ba8f90dccae7abe914c (patch)
tree13b08e38b136cf523c67a4fdcd640de5407234f4 /src
parent31575f7766d6ff39665b64a3a04412eff1c39957 (diff)
alsa: allow placing device id in alsa device strings at arbitrary positions
Diffstat (limited to 'src')
-rw-r--r--src/modules/alsa/alsa-mixer.c4
-rw-r--r--src/modules/alsa/alsa-util.c10
-rw-r--r--src/modules/alsa/alsa-util.h6
-rw-r--r--src/modules/alsa/mixer/profile-sets/default.conf24
4 files changed, 22 insertions, 22 deletions
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