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

sev- noreply at scummvm.org
Wed Jul 15 20:59:29 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:
da47800526 DIRECTOR: LINGO: Add the soundDevice entity (D7)


Commit: da478005263f8c9e0d3093fc59bab6a64e6ee641
    https://github.com/scummvm/scummvm/commit/da478005263f8c9e0d3093fc59bab6a64e6ee641
Author: Gianluca Boiano (morf3089 at gmail.com)
Date: 2026-07-15T22:59:25+02:00

Commit Message:
DIRECTOR: LINGO: Add the soundDevice entity (D7)

Fixes 'LC::cb_theassign2 Can't assign theEntity: (soundDevice)' at
every movie start in physicus (StartHandler does
'the soundDevice = "QT3Mix"')

Changed paths:
    engines/director/lingo/lingo-builtins.cpp
    engines/director/lingo/lingo-the.cpp
    engines/director/lingo/lingo-the.h
    engines/director/lingo/lingo.cpp
    engines/director/lingo/lingo.h


diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 29d2d633e7f..e791b53fde9 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -376,7 +376,6 @@ static const BuiltinProto builtins[] = {
    pathName				//	D5
    preloadMode			//				D8
    selectiomn			//	D5
-   soundDevice			//			D7
    version				//	D5
 
    Movie properties:
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 11f06d77eb2..fc469c70e70 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -166,6 +166,7 @@ TheEntity entities[] = {					//	hasId  ver.	isFunction
 	{ kTheSerialNumber,		"serialNumber",		false, 500, false },//				D5 p, documnted in D7
 	{ kTheShiftDown,		"shiftDown",		false, 200, true },	// D2 f
 	{ kTheSoundEnabled,		"soundEnabled",		false, 200, false },// D2 p
+	{ kTheSoundDevice,		"soundDevice",		false, 700, false },//					D7 p
 	{ kTheSoundEntity,		"sound",			true,  300, false },// 		D3 p
 	{ kTheSoundKeepDevice,	"soundKeepDevice",	false, 600, false },//					D6 p, documented in D7
 	{ kTheSoundLevel,		"soundLevel",		false, 200, false },// D2 p
@@ -1093,6 +1094,9 @@ Datum Lingo::getTheEntity(int entity, Datum &id, int field) {
 			}
 		}
 		break;
+	case kTheSoundDevice:
+		d = _soundDevice;
+		break;
 	case kTheSoundKeepDevice:
 		// System property; for Windows only, prevents the sound driver from unloading
 		// and reloading each time a sound needs to play. The default value is TRUE.
@@ -1451,6 +1455,10 @@ void Lingo::setTheEntity(int entity, Datum &id, int field, Datum &d) {
 			}
 		}
 		break;
+	case kTheSoundDevice:
+		// Ignored: ScummVM has one fixed output with no switchable backend,
+		// as in Director when the requested device is unavailable.
+		break;
 	case kTheSoundKeepDevice:
 		// We do not need to unload the sound driver, so just ignore this.
 		break;
diff --git a/engines/director/lingo/lingo-the.h b/engines/director/lingo/lingo-the.h
index 983c963d3b0..451499c9927 100644
--- a/engines/director/lingo/lingo-the.h
+++ b/engines/director/lingo/lingo-the.h
@@ -148,6 +148,7 @@ enum TheEntityType {
 	kTheSelStart,
 	kTheSerialNumber,
 	kTheShiftDown,
+	kTheSoundDevice,
 	kTheSoundEntity,
 	kTheSoundEnabled,
 	kTheSoundKeepDevice,
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 7988a750681..c22f6d02e67 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -207,6 +207,7 @@ Lingo::Lingo(DirectorEngine *vm) : _vm(vm) {
 	_trace = false;
 	_traceLoad = 0;
 	_updateMovieEnabled = false;
+	_soundDevice = "DirectSound";
 
 	// events
 	_passEvent = false;
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index bd168706e5b..d80362d9516 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -496,6 +496,7 @@ public:
 	int _traceLoad; // internal Director verbosity level
 	bool _updateMovieEnabled;
 	bool _romanLingo;
+	Common::String _soundDevice;
 
 	Datum getTheEntity(int entity, Datum &id, int field);
 	void setTheEntity(int entity, Datum &id, int field, Datum &d);




More information about the Scummvm-git-logs mailing list