From 1e9078182ddf9c9ca68fb50dde1a1996899b5a87 Mon Sep 17 00:00:00 2001 From: Julien BLACHE Date: Tue, 7 Dec 2010 12:49:48 +0100 Subject: [PATCH] Fix RAOP volume printing Partial revert of 4ac75a316a9a6b6b92593f8e04fc845dcd54755e, going back to the previous way of computing the RAOP volume. Fixes printing when volume is 0.0 (would print -0.000000). --- src/raop.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/raop.c b/src/raop.c index 6a44786d..9dbf4e2c 100644 --- a/src/raop.c +++ b/src/raop.c @@ -1675,13 +1675,11 @@ raop_volume_convert(int volume) /* RAOP volume * -144.0 is off * 0 - -30.0 maps to 100 - 0 - * - * Here, raop_volume is the absolute value */ if (volume == 0) - raop_volume = 144.0; + raop_volume = -144.0; else - raop_volume = 30.0 - ((float)volume * 30.0) / 100.0; + raop_volume = -30.0 + ((float)volume * 30.0) / 100.0; return raop_volume; } @@ -1704,7 +1702,7 @@ raop_set_volume_internal(struct raop_session *rs, int volume, evrtsp_req_cb cb) raop_volume = raop_volume_convert(volume); /* Don't let locales get in the way here */ - ret = evbuffer_add_printf(evbuf, "volume: -%d.%06d", (int)raop_volume, (int)(1000000.0 * (raop_volume - (int)raop_volume))); + ret = evbuffer_add_printf(evbuf, "volume: %d.%06d", (int)raop_volume, -(int)(1000000.0 * (raop_volume - (int)raop_volume))); if (ret < 0) { DPRINTF(E_LOG, L_RAOP, "Out of memory for SET_PARAMETER payload (volume)\n");