From 5d62d97464a0c33351d742489c77cdffbfd470b9 Mon Sep 17 00:00:00 2001 From: cidoku Date: Thu, 20 Feb 2025 14:31:50 -0300 Subject: [PATCH] pause music if muted --- audio.py | 6 ++++++ gameview.py | 12 +++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/audio.py b/audio.py index f1012f3..13720d0 100644 --- a/audio.py +++ b/audio.py @@ -132,6 +132,12 @@ def playhandle(handle, restart): Play a handle """ return dll.BASS_ChannelPlay(handle, restart) + +def pausehandle(handle): + """ +Play a handle + """ + return dll.BASS_ChannelPause(handle) def stophandle(handle): """ diff --git a/gameview.py b/gameview.py index 624e317..24bebef 100644 --- a/gameview.py +++ b/gameview.py @@ -1255,6 +1255,10 @@ class gui(QtGui.QWidget): def changeMusicVolume(self, value): if self.music: audio.sethandleattr(self.music, BASS_ATTRIB_VOL, value / 100.0) + if value == 0: + audio.pausehandle(self.music) + elif audio.handleisactive(self.music) == BASS_ACTIVE_PAUSED: + audio.playhandle(self.music, False) def changeSoundVolume(self, value): if self.sound: @@ -2868,6 +2872,8 @@ class gui(QtGui.QWidget): self.music = audio.loadhandle(False, AOpath + 'sounds/music/' + musl, 0, 0, BASS_SAMPLE_LOOP) audio.sethandleattr(self.music, BASS_ATTRIB_VOL, self.musicslider.value() / 100.0) audio.playhandle(self.music, True) + if self.musicslider.value() == 0: + audio.pausehandle(self.music) elif ini.read_ini_bool("AO2XP.ini", "General", "download music", True): if mus.lower().startswith("http"): @@ -2884,6 +2890,8 @@ class gui(QtGui.QWidget): if self.music: audio.sethandleattr(self.music, BASS_ATTRIB_VOL, self.musicslider.value() / 100.0) audio.playhandle(self.music, True) + if self.musicslider.value() == 0: + audio.pausehandle(self.music) else: error = audio.getbasserror() print "[audio] Couldn't play music. Error", error @@ -2926,7 +2934,9 @@ class gui(QtGui.QWidget): else: self.music = audio.loadhandle(True, self.stream, 0, file_length, BASS_SAMPLE_LOOP) audio.sethandleattr(self.music, BASS_ATTRIB_VOL, self.musicslider.value() / 100.0) - audio.playhandle(self.music, False) + audio.playhandle(self.music, True) + if self.musicslider.value() == 0: + audio.pausehandle(self.music) def startGame(self, tcp, playerlist, charlist, musiclist, background, evidence, areas, features=[], oocjoin=[], hplist=[], webAO_bucket=""): self.willDisconnect = False