]> code.delx.au - pulseaudio/commitdiff
alsa: allow placing device id in alsa device strings at arbitrary positions
authorLennart Poettering <lennart@poettering.net>
Wed, 17 Jun 2009 02:17:25 +0000 (04:17 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 17 Jun 2009 02:17:25 +0000 (04:17 +0200)
src/modules/alsa/alsa-mixer.c
src/modules/alsa/alsa-util.c
src/modules/alsa/alsa-util.h
src/modules/alsa/mixer/profile-sets/default.conf

index 53875165980ae3451d34da58c6dc04a6c5defc88..6f21e10374a44f84ef2f50abb86e789e8f1f8745 100644 (file)
@@ -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,
index d117ccd1fc73393c8844d195018254a935f6a13a..0204c28b8e60994cde83d523de09fd18f4274df4 100644 (file)
@@ -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,
index 4993f4549e732b11da463f300d52835497e6861f..c2f0e5b749edae54db9790f7b20b131a14c27009 100644 (file)
@@ -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 */
index bced10ade7c0fb6e0c8ee84f617b9a990be2c97a..bbe534106c130a953549d3d05641d86828f43548 100644 (file)
 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