[pulseaudio-commits] [SCM] PulseAudio Sound Server branch, master, updated. v0.9.15-239-g131f76a

Lennart Poettering gitmailer-noreply at 0pointer.de
Thu Jun 18 14:01:06 PDT 2009


This is an automated email from the git hooks/post-receive script. It was
generated because of a push to the "PulseAudio Sound Server" repository.

The master branch has been updated
      from  25e5197f6adb6a371631237a53de15eb4dc1a776 (commit)

- Log -----------------------------------------------------------------
131f76a alsa: move mixer config files to subdir in /usr/share
0fd17c6 alsa: document default profile set a bit better
8a5f8f4 alsa: add profile set for Native Instruments 4 DJ
348dcd6 alsa: unify alsa log handling and snd_config_update_free_global() handling in one place
-----------------------------------------------------------------------

Summary of changes:
 src/Makefile.am                                    |    6 +-
 src/modules/alsa/alsa-sink.c                       |    1 -
 src/modules/alsa/alsa-source.c                     |    2 -
 src/modules/alsa/alsa-util.c                       |    8 +-
 src/modules/alsa/alsa-util.h                       |    4 +-
 .../alsa/mixer/profile-sets/78-pulseaudio.rules    |    1 +
 src/modules/alsa/mixer/profile-sets/default.conf   |   56 +++++++++----
 .../profile-sets/native-instruments-audio4dj.conf  |   89 ++++++++++++++++++++
 src/modules/alsa/module-alsa-card.c                |    6 +-
 src/modules/alsa/module-alsa-sink.c                |    6 +-
 src/modules/alsa/module-alsa-source.c              |    6 +-
 11 files changed, 146 insertions(+), 39 deletions(-)
 create mode 100644 src/modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf

-----------------------------------------------------------------------

commit 348dcd6a31280217cad787f9ee75e607c0f1bf6c
Author: Lennart Poettering <lennart at poettering.net>
Date:   Thu Jun 18 21:27:02 2009 +0200

    alsa: unify alsa log handling and snd_config_update_free_global() handling in one place

diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
index 34ff658..281371f 100644
--- a/src/modules/alsa/alsa-sink.c
+++ b/src/modules/alsa/alsa-sink.c
@@ -838,7 +838,6 @@ static int unsuspend(struct userdata *u) {
 
     pa_log_info("Trying resume...");
 
-    snd_config_update_free_global();
     if ((err = snd_pcm_open(&u->pcm_handle, u->device_name, SND_PCM_STREAM_PLAYBACK,
                             /*SND_PCM_NONBLOCK|*/
                             SND_PCM_NO_AUTO_RESAMPLE|
diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c
index c8244c6..4be27eb 100644
--- a/src/modules/alsa/alsa-source.c
+++ b/src/modules/alsa/alsa-source.c
@@ -787,8 +787,6 @@ static int unsuspend(struct userdata *u) {
 
     pa_log_info("Trying resume...");
 
-    snd_config_update_free_global();
-
     if ((err = snd_pcm_open(&u->pcm_handle, u->device_name, SND_PCM_STREAM_CAPTURE,
                             /*SND_PCM_NONBLOCK|*/
                             SND_PCM_NO_AUTO_RESAMPLE|
diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c
index 0ed4361..1f3e5dc 100644
--- a/src/modules/alsa/alsa-util.c
+++ b/src/modules/alsa/alsa-util.c
@@ -735,20 +735,22 @@ static void alsa_error_handler(const char *file, int line, const char *function,
 
 static pa_atomic_t n_error_handler_installed = PA_ATOMIC_INIT(0);
 
-void pa_alsa_redirect_errors_inc(void) {
+void pa_alsa_refcnt_inc(void) {
     /* This is not really thread safe, but we do our best */
 
     if (pa_atomic_inc(&n_error_handler_installed) == 0)
         snd_lib_error_set_handler(alsa_error_handler);
 }
 
-void pa_alsa_redirect_errors_dec(void) {
+void pa_alsa_refcnt_dec(void) {
     int r;
 
     pa_assert_se((r = pa_atomic_dec(&n_error_handler_installed)) >= 1);
 
-    if (r == 1)
+    if (r == 1) {
         snd_lib_error_set_handler(NULL);
+        snd_config_update_free_global();
+    }
 }
 
 pa_bool_t pa_alsa_init_description(pa_proplist *p) {
diff --git a/src/modules/alsa/alsa-util.h b/src/modules/alsa/alsa-util.h
index c2f0e5b..830a922 100644
--- a/src/modules/alsa/alsa-util.h
+++ b/src/modules/alsa/alsa-util.h
@@ -114,8 +114,8 @@ snd_pcm_t *pa_alsa_open_by_template(
 void pa_alsa_dump(pa_log_level_t level, snd_pcm_t *pcm);
 void pa_alsa_dump_status(snd_pcm_t *pcm);
 
-void pa_alsa_redirect_errors_inc(void);
-void pa_alsa_redirect_errors_dec(void);
+void pa_alsa_refcnt_inc(void);
+void pa_alsa_refcnt_dec(void);
 
 void pa_alsa_init_proplist_pcm_info(pa_core *c, pa_proplist *p, snd_pcm_info_t *pcm_info);
 void pa_alsa_init_proplist_card(pa_core *c, pa_proplist *p, int card);
diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c
index e8a7f20..55f6a6e 100644
--- a/src/modules/alsa/module-alsa-card.c
+++ b/src/modules/alsa/module-alsa-card.c
@@ -287,8 +287,7 @@ int pa__init(pa_module *m) {
     const char *description;
     char *fn = NULL;
 
-    pa_alsa_redirect_errors_inc();
-    snd_config_update_free_global();
+    pa_alsa_refcnt_inc();
 
     pa_assert(m);
 
@@ -443,6 +442,5 @@ void pa__done(pa_module*m) {
     pa_xfree(u);
 
 finish:
-    snd_config_update_free_global();
-    pa_alsa_redirect_errors_dec();
+    pa_alsa_refcnt_dec();
 }
diff --git a/src/modules/alsa/module-alsa-sink.c b/src/modules/alsa/module-alsa-sink.c
index 058ea20..3aa89b2 100644
--- a/src/modules/alsa/module-alsa-sink.c
+++ b/src/modules/alsa/module-alsa-sink.c
@@ -82,8 +82,7 @@ int pa__init(pa_module*m) {
 
     pa_assert(m);
 
-    pa_alsa_redirect_errors_inc();
-    snd_config_update_free_global();
+    pa_alsa_refcnt_inc();
 
     if (!(ma = pa_modargs_new(m->argument, valid_modargs))) {
         pa_log("Failed to parse module arguments");
@@ -124,6 +123,5 @@ void pa__done(pa_module*m) {
     if ((sink = m->userdata))
         pa_alsa_sink_free(sink);
 
-    snd_config_update_free_global();
-    pa_alsa_redirect_errors_dec();
+    pa_alsa_refcnt_dec();
 }
diff --git a/src/modules/alsa/module-alsa-source.c b/src/modules/alsa/module-alsa-source.c
index 3bd1b45..de8bcd0 100644
--- a/src/modules/alsa/module-alsa-source.c
+++ b/src/modules/alsa/module-alsa-source.c
@@ -106,8 +106,7 @@ int pa__init(pa_module*m) {
 
     pa_assert(m);
 
-    pa_alsa_redirect_errors_inc();
-    snd_config_update_free_global();
+    pa_alsa_refcnt_inc();
 
     if (!(ma = pa_modargs_new(m->argument, valid_modargs))) {
         pa_log("Failed to parse module arguments");
@@ -148,6 +147,5 @@ void pa__done(pa_module*m) {
     if ((source = m->userdata))
         pa_alsa_source_free(source);
 
-    snd_config_update_free_global();
-    pa_alsa_redirect_errors_dec();
+    pa_alsa_refcnt_dec();
 }

commit 8a5f8f41f6524ff36c473712b073f18b08e6483d
Author: Lennart Poettering <lennart at poettering.net>
Date:   Thu Jun 18 22:58:58 2009 +0200

    alsa: add profile set for Native Instruments 4 DJ

diff --git a/src/Makefile.am b/src/Makefile.am
index f3099e2..4068f69 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -116,6 +116,7 @@ EXTRA_DIST = \
 		map-file \
 		daemon/org.pulseaudio.policy.in \
 		modules/alsa/mixer/profile-sets/default.conf \
+		modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf \
 		modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf \
 		modules/alsa/mixer/profile-sets/78-pulseaudio.rules \
 		modules/alsa/mixer/paths/analog-input-aux.conf \
@@ -1049,6 +1050,7 @@ modlibexec_LTLIBRARIES += \
 
 alsaprofilesets_DATA = \
 		modules/alsa/mixer/profile-sets/default.conf \
+		modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf \
 		modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf
 
 udevrules_DATA = \
diff --git a/src/modules/alsa/mixer/profile-sets/78-pulseaudio.rules b/src/modules/alsa/mixer/profile-sets/78-pulseaudio.rules
index 92a6b03..e3a234f 100644
--- a/src/modules/alsa/mixer/profile-sets/78-pulseaudio.rules
+++ b/src/modules/alsa/mixer/profile-sets/78-pulseaudio.rules
@@ -5,5 +5,6 @@ ACTION!="change", GOTO="pulseaudio_end"
 KERNEL!="card*", GOTO="pulseaudio_end"
 
 SUBSYSTEMS=="usb", ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="1978", ENV{PULSE_PROFILE_SET}="native-instruments-audio8dj.conf"
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="0839", ENV{PULSE_PROFILE_SET}="native-instruments-audio4dj.conf"
 
 LABEL="pulseaudio_end"
diff --git a/src/modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf b/src/modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf
new file mode 100644
index 0000000..3b119a2
--- /dev/null
+++ b/src/modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf
@@ -0,0 +1,89 @@
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; Native Instruments Audio 4 DJ
+;
+; This card has two stereo pairs of input and two stereo pairs of
+; output, named channels A and B. Channel B has an additional
+; Headphone connector.
+;
+; We knowingly only define a subset of the theoretically possible
+; mapping combinations as profiles here.
+
+[General]
+auto-profiles = no
+
+[Mapping analog-stereo-a]
+description = Analog Stereo Channel A
+device-strings = hw:%f,0,0
+channel-map = left,right
+
+[Mapping analog-stereo-b-output]
+description = Analog Stereo Channel B (Headphones)
+device-strings = hw:%f,0,1
+channel-map = left,right
+direction = output
+
+[Mapping analog-stereo-b-input]
+description = Analog Stereo Channel B
+device-strings = hw:%f,0,1
+channel-map = left,right
+direction = input
+
+[Profile output:analog-stereo-all+input:analog-stereo-all]
+description = Analog Stereo Duplex Channels A, B (Headphones)
+output-mappings = analog-stereo-a analog-stereo-b-output
+input-mappings = analog-stereo-a analog-stereo-b-input
+priority = 100
+skip-probe = yes
+
+[Profile output:analog-stereo-a+input:analog-stereo-a]
+description = Analog Stereo Duplex Channel A
+output-mappings = analog-stereo-a
+input-mappings = analog-stereo-a
+priority = 40
+skip-probe = yes
+
+[Profile output:analog-stereo-b+input:analog-stereo-b]
+description = Analog Stereo Duplex Channel B (Headphones)
+output-mappings = analog-stereo-b-output
+input-mappings = analog-stereo-b-input
+priority = 50
+skip-probe = yes
+
+[Profile output:analog-stereo-a]
+description = Analog Stereo Output Channel A
+output-mappings = analog-stereo-a
+priority = 5
+skip-probe = yes
+
+[Profile output:analog-stereo-b]
+description = Analog Stereo Output Channel B (Headphones)
+output-mappings = analog-stereo-b-output
+priority = 6
+skip-probe = yes
+
+[Profile input:analog-stereo-a]
+description = Analog Stereo Input Channel A
+input-mappings = analog-stereo-a
+priority = 2
+skip-probe = yes
+
+[Profile input:analog-stereo-b]
+description = Analog Stereo Input Channel B
+input-mappings = analog-stereo-b-input
+priority = 1
+skip-probe = yes

commit 0fd17c6cb9733e11f81a90d7a5799caaea7357d4
Author: Lennart Poettering <lennart at poettering.net>
Date:   Thu Jun 18 23:00:53 2009 +0200

    alsa: document default profile set a bit better

diff --git a/src/modules/alsa/mixer/profile-sets/default.conf b/src/modules/alsa/mixer/profile-sets/default.conf
index bbe5341..ebd4ff4 100644
--- a/src/modules/alsa/mixer/profile-sets/default.conf
+++ b/src/modules/alsa/mixer/profile-sets/default.conf
@@ -1,22 +1,43 @@
-# Profile definitions for PulseAudio's ALSA backend
+# This file is part of PulseAudio.
 #
-# [Mapping id]
-# device-strings = ...
-# channel-map = ...
-# description = ...
-# paths-input = ...
-# paths-output = ...
-# element-input = ...
-# element-output = ...
-# priority = ...
-# direction = any | input | output
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
 #
-# [Profile id]
-# input-mappings = ...
-# output-mappings = ...
-# description = ...
-# priority = ...
-# skip-probe = no | yes
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; Default profile definitions for the ALSA backend of PulseAudio. This
+; is used as fallback for all cards that have no special mapping
+; assigned. (and should be good enough for the vast majority of cards)
+;
+; [General]
+; auto-profiles = no | yes                  # Instead of defining all profiles manually, autogenerate them by combining every input mapping with every output mapping.
+;
+; [Mapping id]
+; device-strings = ...                      # ALSA device string. %f will be replaced by the card identifier.
+; channel-map = ...                         # Channel mapping to use for this device
+; description = ...
+; paths-input = ...                         # A list of mixer paths to use. Every path in this list will be probed. If multiple are found to be working they will be available as device ports
+; paths-output = ...
+; element-input = ...                       # Instead of configuring a full mixer path simply configure a single mixer element for volume/mute handling
+; element-output = ...
+; priority = ...
+; direction = any | input | output          # Only useful for?
+;
+; [Profile id]
+; input-mappings = ...                      # Lists mappings for sources on this profile, those mapping must be defined in this file too
+; output-mappings = ...                     # Lists mappings for sinks on this profile, those mappings must be defined in this file too
+; description = ...
+; priority = ...                            # Numeric value to deduce priority for this profile
+; skip-probe = no | yes                     # Skip probing for availability?
 
 [General]
 auto-profiles = yes
@@ -99,6 +120,7 @@ channel-map = left,right
 priority = 4
 direction = output
 
+; An example for defining multiple-sink profiles
 #[Profile output:analog-stereo+output:iec958-stereo+input:analog-stereo]
 #description = Foobar
 #output-mappings = analog-stereo iec958-stereo

commit 131f76a11db59eb76be301120271fe4c7a816223
Author: Lennart Poettering <lennart at poettering.net>
Date:   Thu Jun 18 23:01:24 2009 +0200

    alsa: move mixer config files to subdir in /usr/share

diff --git a/src/Makefile.am b/src/Makefile.am
index 4068f69..9afef9d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -29,8 +29,8 @@ pulsecoreincludedir=$(includedir)/pulsecore
 pulseconfdir=$(sysconfdir)/pulse
 pulselibexecdir=$(libexecdir)/pulse
 xdgautostartdir=$(sysconfdir)/xdg/autostart
-alsaprofilesetsdir=$(datadir)/alsa-mixer/profile-sets
-alsapathsdir=$(datadir)/alsa-mixer/paths
+alsaprofilesetsdir=$(datadir)/pulseaudio/alsa-mixer/profile-sets
+alsapathsdir=$(datadir)/pulseaudio/alsa-mixer/paths
 udevrulesdir=/lib/udev/rules.d
 
 ###################################

-- 
hooks/post-receive
PulseAudio Sound Server



More information about the pulseaudio-commits mailing list