Add volume handling to Preferences and persistence method
Added volume attribute to Preferences and implemented persist_volume method to save normalized media volume.
This commit is contained in:
1 parent
c91511c93e
commit
ac69618d29
1 file changed
+17
@@ -57,6 +57,7 @@ class AvailableWakeWord:
|
||||
@dataclass
|
||||
class Preferences:
|
||||
active_wake_words: List[str] = field(default_factory=list)
|
||||
volume: Optional[float] = None
|
||||
thinking_sound: int = 0 # 0 = disabled, 1 = enabled
|
||||
|
||||
|
||||
@@ -92,6 +93,7 @@ class ServerState:
|
||||
thinking_sound_enabled: bool = False
|
||||
muted: bool = False
|
||||
connected: bool = False
|
||||
volume: float = 1.0
|
||||
|
||||
def save_preferences(self) -> None:
|
||||
"""Save preferences as JSON."""
|
||||
@@ -101,3 +103,18 @@ class ServerState:
|
||||
json.dump(
|
||||
asdict(self.preferences), preferences_file, ensure_ascii=False, indent=4
|
||||
)
|
||||
|
||||
def persist_volume(self, volume: float) -> None:
|
||||
"""Persist the normalized media volume (0.0 - 1.0)."""
|
||||
clamped_volume = max(0.0, min(1.0, volume))
|
||||
|
||||
if (
|
||||
abs(self.volume - clamped_volume) < 0.0001
|
||||
and self.preferences.volume is not None
|
||||
and abs(self.preferences.volume - clamped_volume) < 0.0001
|
||||
):
|
||||
return
|
||||
|
||||
self.volume = clamped_volume
|
||||
self.preferences.volume = clamped_volume
|
||||
self.save_preferences()
|
||||
Reference in new issue
Block a user