[Scummvm-git-logs] scummvm master -> 09353a06a6c317b7efa71bdd64b1f757fdf96a3c

athrxx noreply at scummvm.org
Sun Oct 13 12:37:31 UTC 2024


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

Summary:
09353a06a6 SCUMM: (MAC) - add disable/enable commands to sound player


Commit: 09353a06a6c317b7efa71bdd64b1f757fdf96a3c
    https://github.com/scummvm/scummvm/commit/09353a06a6c317b7efa71bdd64b1f757fdf96a3c
Author: athrxx (athrxx at scummvm.org)
Date: 2024-10-13T14:35:48+02:00

Commit Message:
SCUMM: (MAC) - add disable/enable commands to sound player

Changed paths:
    engines/scumm/music.h
    engines/scumm/players/player_mac_intern.h
    engines/scumm/players/player_mac_loom_monkey.cpp
    engines/scumm/players/player_mac_new.cpp


diff --git a/engines/scumm/music.h b/engines/scumm/music.h
index e294ffae728..ba9ea607e17 100644
--- a/engines/scumm/music.h
+++ b/engines/scumm/music.h
@@ -103,6 +103,16 @@ public:
 	 */
 	virtual void setQuality(int qual) {}
 
+	/**
+	 * Notify player that the sound is supposed to be disabled (used for Macintosh sound)
+	 */
+	virtual void disable() {}
+
+	/**
+	 * Notify player that the sound is supposed to be enabled (used for Macintosh sound)
+	 */
+	virtual void enable() {}
+
 	/**
 	 * Save or load the music state.
 	 */
diff --git a/engines/scumm/players/player_mac_intern.h b/engines/scumm/players/player_mac_intern.h
index 28c1d2eaa17..37cc4f60479 100644
--- a/engines/scumm/players/player_mac_intern.h
+++ b/engines/scumm/players/player_mac_intern.h
@@ -233,6 +233,8 @@ public:
 	void setQuality(int qual);
 	void saveLoadWithSerializer(Common::Serializer &ser);
 	void restoreAfterLoad();
+	void enable() {}
+	void disable() {}
 
 	void vblCallback() override;
 	void generateData(int8 *dst, uint32 byteSize, Audio::Mixer::SoundType type, bool expectStereo) const override;
@@ -386,6 +388,8 @@ public:
 	void setQuality(int qual);
 	void saveLoadWithSerializer(Common::Serializer &ser);
 	void restoreAfterLoad();
+	void enable();
+	void disable();
 
 	void vblCallback() override;
 	void generateData(int8 *dst, uint32 byteSize, Audio::Mixer::SoundType type, bool expectStereo) const override;
diff --git a/engines/scumm/players/player_mac_loom_monkey.cpp b/engines/scumm/players/player_mac_loom_monkey.cpp
index 783214ef864..2a9ff633d5d 100644
--- a/engines/scumm/players/player_mac_loom_monkey.cpp
+++ b/engines/scumm/players/player_mac_loom_monkey.cpp
@@ -641,6 +641,16 @@ void LoomMonkeyMacSnd::restoreAfterLoad() {
 		startSound(sound);
 }
 
+void LoomMonkeyMacSnd::enable() {
+	restoreAfterLoad();
+}
+
+void LoomMonkeyMacSnd::disable() {
+	int sound = _curSoundSaveVar;
+	stopActiveSound();
+	_curSoundSaveVar = sound;
+}
+
 void LoomMonkeyMacSnd::vblCallback() {
 	if (_songTimerInternal++ == 29) {
 		_songTimerInternal = 0;
diff --git a/engines/scumm/players/player_mac_new.cpp b/engines/scumm/players/player_mac_new.cpp
index c6f36c599a0..eaf0a63dd8f 100644
--- a/engines/scumm/players/player_mac_new.cpp
+++ b/engines/scumm/players/player_mac_new.cpp
@@ -1095,6 +1095,9 @@ public:
 	void setQuality(int qual) override;
 	void saveLoadWithSerializer(Common::Serializer &ser) override;
 	void restoreAfterLoad() override;
+	void enable() override;
+	void disable() override;
+
 private:
 	Common::SharedPtr<T> _player;
 };
@@ -1155,6 +1158,16 @@ template <typename T> void MusicEngineImpl<T>::restoreAfterLoad() {
 		_player->restoreAfterLoad();
 }
 
+template <typename T> void MusicEngineImpl<T>::enable() {
+	if (_player != nullptr)
+		_player->enable();
+}
+
+template <typename T> void MusicEngineImpl<T>::disable() {
+	if (_player != nullptr)
+		_player->disable();
+}
+
 namespace MacSound {
 
 MusicEngine *createPlayer(ScummEngine *vm) {




More information about the Scummvm-git-logs mailing list