Blob Blame History Raw
diff -Nur audacious-plugins-fedora-1.5.1-alsa-ng/src/alsa/alsa-core.c audacious-plugins-fedora-1.5.1-alsa-ng-mixer/src/alsa/alsa-core.c
--- audacious-plugins-fedora-1.5.1-alsa-ng/src/alsa/alsa-core.c	2009-09-19 12:46:20.000000000 +0200
+++ audacious-plugins-fedora-1.5.1-alsa-ng-mixer/src/alsa/alsa-core.c	2009-09-19 12:54:29.476615457 +0200
@@ -45,6 +45,7 @@
 
 static snd_mixer_t *amixer = NULL;
 static gboolean mixer_ready = FALSE;
+static gint mixer_left, mixer_right;
 
 static snd_mixer_elem_t *
 alsaplug_get_mixer_elem_by_name(snd_mixer_t *mixer, gchar *name)
@@ -75,6 +76,8 @@
     gint i;
     snd_mixer_elem_t *elem;
 
+    if (!mixer_ready)
+        return NULL;
     if (alsaplug_cfg.mixer_device != NULL)
         return alsaplug_get_mixer_elem_by_name(mixer, alsaplug_cfg.mixer_device);
 
@@ -140,6 +143,8 @@
 {
     snd_mixer_elem_t *elem = alsaplug_guess_mixer_elem(amixer);
 
+    mixer_left = l;
+    mixer_right = r;
     if (elem == NULL)
         return;
 
@@ -173,10 +178,10 @@
     snd_mixer_elem_t *elem = alsaplug_guess_mixer_elem(amixer);
     long left, right;
 
+    *l = mixer_left;
+    *r = mixer_right;
     if (elem == NULL)
     {
-        * l = 50;
-        * r = 50;
         return;
     }