[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