$OpenBSD: patch-sys_sunaudio_gstsunaudiomixerctrl_c,v 1.3 2008/05/13 15:11:51 espie Exp $
--- sys/sunaudio/gstsunaudiomixerctrl.c.orig	Thu Apr  3 00:37:28 2008
+++ sys/sunaudio/gstsunaudiomixerctrl.c	Mon May 12 14:46:34 2008
@@ -32,7 +32,9 @@
 #include <string.h>
 #include <errno.h>
 #include <sys/ioctl.h>
+#if !defined(__OpenBSD__)
 #include <sys/mixer.h>
+#endif
 
 #include <gst/gst-i18n-plugin.h>
 
@@ -62,8 +64,10 @@ gst_sunaudiomixer_ctrl_open (GstSunAudioMixerCtrl * mi
 
     return FALSE;
   }
+#if defined(AUDIO_MIXER_MULTIPLE_OPEN)
   /* Try to set the multiple open flag if we can, but ignore errors */
   ioctl (mixer->mixer_fd, AUDIO_MIXER_MULTIPLE_OPEN);
+#endif
 
   mixer->mixer_fd = fd;
   return TRUE;
@@ -238,20 +242,10 @@ gst_sunaudiomixer_ctrl_get_volume (GstSunAudioMixerCtr
     }
   }
 
-  /* Likewise reset MUTE */
-  if ((sunaudiotrack->track_num == GST_SUNAUDIO_TRACK_OUTPUT &&
-          audioinfo.output_muted == 1) ||
-      (sunaudiotrack->track_num != GST_SUNAUDIO_TRACK_OUTPUT && gain == 0)) {
-    track->flags |= GST_MIXER_TRACK_MUTE;
-  } else {
-    /*
-     * If MUTE is set, then gain is always 0, so don't bother
-     * resetting our internal value.
-     */
+
     sunaudiotrack->gain = gain;
     sunaudiotrack->balance = balance;
     track->flags &= ~GST_MIXER_TRACK_MUTE;
-  }
 }
 
 void
@@ -340,11 +334,6 @@ gst_sunaudiomixer_ctrl_set_mute (GstSunAudioMixerCtrl 
 
   switch (sunaudiotrack->track_num) {
     case GST_SUNAUDIO_TRACK_OUTPUT:
-
-      if (mute)
-        audioinfo.output_muted = 1;
-      else
-        audioinfo.output_muted = 0;
 
       audioinfo.play.gain = volume;
       audioinfo.play.balance = balance;
