From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 1 Feb 2022 15:44:43 +0000 (+0000) Subject: Ensure that when ignore_volume_control is true, the volume metadata has the current... X-Git-Tag: 4.1-rc1~24^2~288 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f135d857c06df35ee80b2be1f0f955d04a6e956f;p=thirdparty%2Fshairport-sync.git Ensure that when ignore_volume_control is true, the volume metadata has the current, max and min values of the [now ignored] attenuator set to 0.0. --- diff --git a/player.c b/player.c index dadfc48b..1dd5a0e7 100644 --- a/player.c +++ b/player.c @@ -3162,14 +3162,18 @@ void player_volume_without_notification(double airplay_volume, rtsp_conn_info *c // is being used by shairport sync to control the output volume char dv[128]; memset(dv, 0, 128); - if (volume_mode == vol_both) { - // normalise the maximum output to the hardware device's max output - snprintf(dv, 127, "%.2f,%.2f,%.2f,%.2f", airplay_volume, - (scaled_attenuation - max_db + hw_max_db) / 100.0, - (min_db - max_db + hw_max_db) / 100.0, (max_db - max_db + hw_max_db) / 100.0); + if (config.ignore_volume_control == 0) { + if (volume_mode == vol_both) { + // normalise the maximum output to the hardware device's max output + snprintf(dv, 127, "%.2f,%.2f,%.2f,%.2f", airplay_volume, + (scaled_attenuation - max_db + hw_max_db) / 100.0, + (min_db - max_db + hw_max_db) / 100.0, (max_db - max_db + hw_max_db) / 100.0); + } else { + snprintf(dv, 127, "%.2f,%.2f,%.2f,%.2f", airplay_volume, scaled_attenuation / 100.0, + min_db / 100.0, max_db / 100.0); + } } else { - snprintf(dv, 127, "%.2f,%.2f,%.2f,%.2f", airplay_volume, scaled_attenuation / 100.0, - min_db / 100.0, max_db / 100.0); + snprintf(dv, 127, "%.2f,%.2f,%.2f,%.2f", airplay_volume, 0.0, 0.0, 0.0); } send_ssnc_metadata('pvol', dv, strlen(dv), 1); #endif