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