Restore configured volume after playback stops

This commit is contained in:
Storm Dragon
2026-06-14 01:48:13 -04:00
parent e2df8972e7
commit 14163bdbc1
7 changed files with 229 additions and 97 deletions
+15
View File
@@ -716,6 +716,7 @@ class MumbleBot:
var.cache.free_and_delete(current.id)
else:
self._loop_status = 'Empty queue'
self.restore_default_volume()
else:
# if wait_for_ready flag is true, means the pointer is already
# pointing to target song. start playing
@@ -855,6 +856,7 @@ class MumbleBot:
self._cleanup_ffmpeg_process() # Ensure proper cleanup
var.playlist.clear()
self.wait_for_ready = False
self.restore_default_volume()
self.log.info("bot: music stopped. playlist trashed.")
def stop(self):
@@ -865,8 +867,21 @@ class MumbleBot:
self.wait_for_ready = True
else:
self.wait_for_ready = False
self.restore_default_volume()
self.log.info("bot: music stopped.")
def restore_default_volume(self):
if not var.config.getboolean("bot", "restore_volume_on_stop"):
return
max_volume = var.config.getfloat("bot", "max_volume")
if var.db.has_option("bot", "max_volume"):
max_volume = var.db.getfloat("bot", "max_volume")
target_volume = min(var.config.getfloat("bot", "volume"), max_volume)
self.volume_helper.set_volume(target_volume)
var.db.set("bot", "volume", str(target_volume))
def _cleanup_ffmpeg_process(self):
"""Properly cleanup FFmpeg process and associated resources"""
if self.thread: