[Scummvm-git-logs] scummvm master -> b24c17022625122b8aaf547d67b4b70e32622ed1

sev- noreply at scummvm.org
Mon Aug 24 23:00:48 UTC 2026


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
b24c170226 DIRECTOR: Share sound channels across the Stage and MIAWs


Commit: b24c17022625122b8aaf547d67b4b70e32622ed1
    https://github.com/scummvm/scummvm/commit/b24c17022625122b8aaf547d67b4b70e32622ed1
Author: ramyak-sharma (ramyaksharma1 at gmail.com)
Date: 2026-08-25T01:00:45+02:00

Commit Message:
DIRECTOR: Share sound channels across the Stage and MIAWs

Each Window had its own DirectorSound, so sounds from different windows used
independent channels and could not stop or replace each other. In Director
the channels are one global resource shared by the Stage and every MIAW, so
route every window through the Stage's manager.

Fixes sound overlapping in gusmuse.

Changed paths:
    engines/director/window.h


diff --git a/engines/director/window.h b/engines/director/window.h
index 8953fe1a463..d53c081e90d 100644
--- a/engines/director/window.h
+++ b/engines/director/window.h
@@ -138,7 +138,14 @@ public:
 	// so getCurrentMovie()-based context (go, globals, events) points at it.
 	void setCurrentMovie(Movie *movie) { _currentMovie = movie; }
 	Common::String getCurrentPath() const { return _currentPath; }
-	DirectorSound *getSoundManager() const { return _soundManager; }
+	// Sound channels are shared by the Stage and every MIAW (Director in a Nutshell),
+	// so route every window through the Stage's manager.
+	DirectorSound *getSoundManager() const {
+		Window *stage = g_director->getStage();
+		if (stage && stage != this)
+			return stage->getSoundManager();
+		return _soundManager;
+	}
 
 	void setVisible(bool visible, bool silent = false);
 	bool setNextMovie(Common::String &movieFilenameRaw);




More information about the Scummvm-git-logs mailing list