From: Mike Brady Date: Sun, 17 Feb 2019 14:10:45 +0000 (+0000) Subject: fix the ability to give attenation priority to hardware or software, set the default... X-Git-Tag: 3.3RC0~55^2^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=00be8bc2a6dd29b5d1d71a85ecb6d0467a149f20;p=thirdparty%2Fshairport-sync.git fix the ability to give attenation priority to hardware or software, set the default to software --- diff --git a/scripts/shairport-sync.conf b/scripts/shairport-sync.conf index bf6ce4ba..52d3232f 100644 --- a/scripts/shairport-sync.conf +++ b/scripts/shairport-sync.conf @@ -29,7 +29,7 @@ general = // volume_control_profile = "standard" ; // use this advanced setting to specify how the airplay volume is transferred to the mixer volume. // "standard" makes the volume change more quickly at lower volumes and slower at higher volumes. // "flat" makes the volume change at the same rate at all volumes. -// volume_range_hw_priority = "yes"; // when extending the volume range by combining the built-in software attenuator with the hardware mixer attenuator, set this to "yes" to reduce volume by using the hardware attenuator first, then the software attenuator. +// volume_range_combined_hardware_priority = "no"; // when extending the volume range by combining the built-in software attenuator with the hardware mixer attenuator, set this to "yes" to reduce volume by using the hardware mixer first, then the built-in software attenuator. // run_this_when_volume_is_set = "/full/path/to/application/and/args"; // Run the specified application whenever the volume control is set or changed. // The desired AirPlay volume is appended to the end of the command line – leave a space if you want it treated as an extra argument. // AirPlay volume goes from 0 to -30 and -144 means "mute". diff --git a/shairport.c b/shairport.c index 4cb316e1..21f4ff52 100644 --- a/shairport.c +++ b/shairport.c @@ -344,8 +344,9 @@ int parse_options(int argc, char **argv) { config.diagnostic_drop_packet_fraction = 0.0; config.active_state_timeout = 10.0; config.volume_range_hw_priority = - 1; // if combining software and hardware volume control, give the hardware priority -// i.e. when reducing volume, reduce the hw first before reducing the software. + 0; // if combining software and hardware volume control, give the software priority +// i.e. when reducing volume, reduce the sw first before reducing the software. +// this is because some hw mixers mute at the bottom of their range, and they don't always advertise this fact #ifdef CONFIG_METADATA_HUB config.cover_art_cache_dir = "/tmp/shairport-sync/.cache/coverart"; @@ -1568,7 +1569,7 @@ int main(int argc, char **argv) { config.volume_range_db); debug( 1, - "combined attenuators (0 -- software is / 1 -- hardware is top of attenuation range) is %d.", + "volume_range_combined_hardware_priority (1 means hardware mixer attenuation is used first) is %d.", config.volume_range_hw_priority); debug(1, "playback_mode is %d (0-stereo, 1-mono, 1-reverse_stereo, 2-both_left, 3-both_right).", config.playback_mode);