Here's the third version of the patch set that aims to fix the Aureon volume bug[1]. Changes in v3: - Use pa_parse_volume() in pa_config_parse_volume(). - Add mute and save_mute fields to pa_sink/source_port_changed_hook_data to make the mute handling symmetric with the volume handling. David suggested that I could share the volume parsing code also in pactl, but that turned out to be difficult with pactl's relative volume adjustments, so I didn't want to do that in this patch set, but I plan to do that later. [1] https://bugs.freedesktop.org/show_bug.cgi?id=81777 Tanu Kaskinen (6): core: Add default volume to ports When switching ports, use the port default volume core-util: Make pa_parse_volume() more strict conf-parser: Add pa_config_parse_volume() alsa-mixer: Add "default-volume" path option alsa-mixer: Improve volume handling for Terratec Aureon Dual USB src/Makefile.am | 6 +- src/modules/alsa/alsa-mixer.c | 6 ++ src/modules/alsa/alsa-mixer.h | 1 + .../alsa/mixer/paths/analog-output.conf.common | 7 ++ .../paths/terratec-aureon-dual-usb-output.conf | 37 +++++++++++ .../alsa/mixer/profile-sets/90-pulseaudio.rules | 1 + .../profile-sets/terratec-aureon-dual-usb.conf | 42 ++++++++++++ src/modules/dbus/iface-device.c | 4 +- src/modules/module-device-restore.c | 42 ++++++------ src/pulsecore/conf-parser.c | 23 +++++++ src/pulsecore/conf-parser.h | 3 +- src/pulsecore/core-util.c | 42 +++++++----- src/pulsecore/device-port.c | 9 ++- src/pulsecore/device-port.h | 3 + src/pulsecore/sink.c | 75 ++++++++++++++-------- src/pulsecore/sink.h | 19 ++++++ src/pulsecore/source.c | 75 ++++++++++++++-------- src/pulsecore/source.h | 19 ++++++ 18 files changed, 312 insertions(+), 102 deletions(-) create mode 100644 src/modules/alsa/mixer/paths/terratec-aureon-dual-usb-output.conf create mode 100644 src/modules/alsa/mixer/profile-sets/terratec-aureon-dual-usb.conf -- 1.9.3