]> code.delx.au - pulseaudio/commitdiff
alsa: unify alsa log handling and snd_config_update_free_global() handling in one...
authorLennart Poettering <lennart@poettering.net>
Thu, 18 Jun 2009 19:27:02 +0000 (21:27 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 18 Jun 2009 19:27:02 +0000 (21:27 +0200)
src/modules/alsa/alsa-sink.c
src/modules/alsa/alsa-source.c
src/modules/alsa/alsa-util.c
src/modules/alsa/alsa-util.h
src/modules/alsa/module-alsa-card.c
src/modules/alsa/module-alsa-sink.c
src/modules/alsa/module-alsa-source.c

index 34ff65829f79d0de63dba766898b351bc273d4cf..281371f74daf7b785436a88cb8a6ee75704183b8 100644 (file)
@@ -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|
index c8244c662ded425104b9fee3bc2425f6526d96db..4be27eb0c7f3fdaa5aebf7dd3ea9a02895dc84e0 100644 (file)
@@ -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|
index 0ed4361c58dafd1e191c588f6c8dc21a4b808e30..1f3e5dcd8b8e4a12473da21d0d0c660b7567e62a 100644 (file)
@@ -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) {
index c2f0e5b749edae54db9790f7b20b131a14c27009..830a922ecef5e3385fa375d2858600d0254c2664 100644 (file)
@@ -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);
index e8a7f206f46a78941e923caaa25c859791dc9c80..55f6a6e25f9ca256da2f0f603085c53f3eabd9de 100644 (file)
@@ -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();
 }
index 058ea205c937989e4f8dd224d4b3ffb24492c1a8..3aa89b2aaf672ab8e53424026b19d991bd514e26 100644 (file)
@@ -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();
 }
index 3bd1b4512fb85864cb1b4dcc3360cb661f2096d2..de8bcd0b2fa0392e6a459aa6b8c679396b3c9732 100644 (file)
@@ -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();
 }