Improve roon volume translation logic (#84916)

Improve roon volume translation logic.
This commit is contained in:
Greg Dowling 2023-01-02 05:16:37 +00:00 committed by GitHub
parent 0ae55fb58b
commit f79ffb2981
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 10 deletions

View File

@ -3,7 +3,7 @@
"name": "RoonLabs music player",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/roon",
"requirements": ["roonapi==0.1.2"],
"requirements": ["roonapi==0.1.3"],
"codeowners": ["@pavoni"],
"iot_class": "local_push",
"loggers": ["roonapi"]

View File

@ -180,13 +180,16 @@ class RoonDevice(MediaPlayerEntity):
volume_data = player_data["volume"]
volume_muted = volume_data["is_muted"]
volume_step = convert(volume_data["step"], int, 0)
volume_max = volume_data["max"]
volume_min = volume_data["min"]
raw_level = convert(volume_data["value"], float, 0)
if volume_data["type"] == "db":
level = convert(volume_data["value"], float, 0.0) / 80 * 100 + 100
else:
level = convert(volume_data["value"], float, 0.0)
volume_range = volume_max - volume_min
volume_percentage_factor = volume_range / 100
level = (raw_level - volume_min) / volume_percentage_factor
volume_level = convert(level, int, 0) / 100
except KeyError:
# catch KeyError
pass
@ -329,7 +332,7 @@ class RoonDevice(MediaPlayerEntity):
def set_volume_level(self, volume: float) -> None:
"""Send new volume_level to device."""
volume = int(volume * 100)
self._server.roonapi.change_volume(self.output_id, volume)
self._server.roonapi.set_volume_percent(self.output_id, volume)
def mute_volume(self, mute=True):
"""Send mute/unmute to device."""
@ -337,11 +340,11 @@ class RoonDevice(MediaPlayerEntity):
def volume_up(self) -> None:
"""Send new volume_level to device."""
self._server.roonapi.change_volume(self.output_id, 3, "relative")
self._server.roonapi.change_volume_percent(self.output_id, 3)
def volume_down(self) -> None:
"""Send new volume_level to device."""
self._server.roonapi.change_volume(self.output_id, -3, "relative")
self._server.roonapi.change_volume_percent(self.output_id, -3)
def turn_on(self) -> None:
"""Turn on device (if supported)."""

View File

@ -2220,7 +2220,7 @@ rokuecp==0.17.0
roombapy==1.6.5
# homeassistant.components.roon
roonapi==0.1.2
roonapi==0.1.3
# homeassistant.components.rova
rova==0.3.0

View File

@ -1547,7 +1547,7 @@ rokuecp==0.17.0
roombapy==1.6.5
# homeassistant.components.roon
roonapi==0.1.2
roonapi==0.1.3
# homeassistant.components.rpi_power
rpi-bad-power==0.1.0