On MATE, the system and MATE mixers are distinct, and it's easy
to get them out of sync: the volume control applet's slider
controls only the MATE mixer, mixerctl controls only the system
mixer, and the volume up/down keys control both (thanks to
handlers in mate-settings-daemon).  This gets confusing very
fast, as the volume slider naturally only reflects the state of
the MATE mixer, but audio playback volume is also affected by
the (invisible without mixerctl) system mixer.

The distinct mixers are due to libmatemixer using pulseaudio as
its backend, which in turn uses sndio(7), which doesn't touch
mixer(4).  This patch makes libmatemixer use OSS as its backend
instead, which does use mixer(4).

This probably costs some pulseaudio-specific functionality, but
I don't know enough about it to tell what.  Anyone know better?
Is it worth keeping the current confusing mixer behavior?

I expect a similar problem affects other desktop environments
using pulseaudio as their audio backend.  A more comprehensive
fix would thus be to change pulseaudio to use mixer(4) (directly
or indirectly) to control the volume, but I don't know how this
might best be done.

diff --git Makefile Makefile
index f24450972..d4a4344c4 100644
--- Makefile
+++ Makefile
@@ -3,7 +3,7 @@
 COMMENT=               mixer library for MATE desktop
 
 MATE_PROJECT=          libmatemixer
-REVISION=              2
+REVISION=              3
 
 SHARED_LIBS +=  matemixer                 0.0 # 0.0
 
@@ -12,15 +12,15 @@ CATEGORIES=         audio
 # LGPLv2
 PERMIT_PACKAGE_CDROM=  Yes
 
-WANTLIB += ICE SM X11 X11-xcb Xext Xi Xtst m pthread xcb pulse
-WANTLIB += FLAC dbus-1 execinfo ffi glib-2.0 gmodule-2.0
-WANTLIB += gobject-2.0 iconv intl ogg pcre pulse-mainloop-glib
-WANTLIB += sndfile vorbis vorbisenc
+WANTLIB += ICE SM X11 X11-xcb Xext Xi Xtst m pthread xcb ossaudio
+WANTLIB += ffi glib-2.0 gmodule-2.0 gobject-2.0 iconv intl pcre
 
 MODULES=               x11/gnome
 
-LIB_DEPENDS=           audio/pulseaudio
+LIB_DEPENDS=           devel/glib2
 
 CONFIGURE_STYLE=       gnu
 
+CONFIGURE_ARGS+=       --disable-pulseaudio --enable-oss
+
 .include <bsd.port.mk>
diff --git pkg/PLIST pkg/PLIST
index ec80aa410..18a4fc892 100644
--- pkg/PLIST
+++ pkg/PLIST
@@ -24,9 +24,9 @@ lib/libmatemixer.la
 @comment lib/libmatemixer/libmatemixer-null.a
 @comment lib/libmatemixer/libmatemixer-null.la
 lib/libmatemixer/libmatemixer-null.so
-@comment lib/libmatemixer/libmatemixer-pulse.a
-@comment lib/libmatemixer/libmatemixer-pulse.la
-lib/libmatemixer/libmatemixer-pulse.so
+@comment lib/libmatemixer/libmatemixer-oss.a
+@comment lib/libmatemixer/libmatemixer-oss.la
+lib/libmatemixer/libmatemixer-oss.so
 lib/pkgconfig/libmatemixer.pc
 share/gtk-doc/html/libmatemixer/
 share/gtk-doc/html/libmatemixer/MateMixerAppInfo.html

Reply via email to