Blob Blame History Raw
diff -Nur audacious-plugins-1.5.1-alsa-ng/src/alsa/alsa-core.c audacious-plugins-1.5.1-alsa-ng2/src/alsa/alsa-core.c
--- audacious-plugins-1.5.1-alsa-ng/src/alsa/alsa-core.c	2009-06-29 18:01:20.000000000 +0200
+++ audacious-plugins-1.5.1-alsa-ng2/src/alsa/alsa-core.c	2009-07-02 10:45:48.000000000 +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;
 
@@ -172,6 +177,8 @@
 {
     snd_mixer_elem_t *elem = alsaplug_guess_mixer_elem(amixer);
 
+    *l = mixer_left;
+    *r = mixer_right;
     if (elem == NULL)
         return;