[Scummvm-cvs-logs] scummvm master -> 31252e10950ee5ab6f2f812ddc64c9c59697be75

clone2727 clone2727 at gmail.com
Fri Feb 1 22:53:26 CET 2013


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:
31252e1095 MACOSX: Fix compilation with the 10.2.8 SDK


Commit: 31252e10950ee5ab6f2f812ddc64c9c59697be75
    https://github.com/scummvm/scummvm/commit/31252e10950ee5ab6f2f812ddc64c9c59697be75
Author: Matthew Hoops (clone2727 at gmail.com)
Date: 2013-02-01T13:48:38-08:00

Commit Message:
MACOSX: Fix compilation with the 10.2.8 SDK

This is a pretty bad hack of not using the kMusicDeviceProperty_SoundBankFSRef symbol and using its value instead. It felt wrong breaking 10.2.8 support just because of Soundfonts.

Changed paths:
    backends/midi/coreaudio.cpp



diff --git a/backends/midi/coreaudio.cpp b/backends/midi/coreaudio.cpp
index 317268a..e42b8ca 100644
--- a/backends/midi/coreaudio.cpp
+++ b/backends/midi/coreaudio.cpp
@@ -209,35 +209,41 @@ void MidiDriver_CORE::loadSoundFont(const char *soundfont) {
 	FSRef fsref;
 	err = FSPathMakeRef((const byte *)soundfont, &fsref, NULL);
 
-#ifdef MAC_OS_X_VERSION_10_5
-	// Use kMusicDeviceProperty_SoundBankFSRef if we know it's available
-	// (This became available in 10.3, but the 10.2 SDK has 10.3/10.4 defines)
+	SInt32 version;
+	err = Gestalt(gestaltSystemVersion, &version);
 
 	if (err == noErr) {
-		err = AudioUnitSetProperty(
-			_synth,
-			kMusicDeviceProperty_SoundBankFSRef, kAudioUnitScope_Global,
-			0,
-			&fsref, sizeof(fsref)
-		);
-	}
-#else
-	// Otherwise, we know kMusicDeviceProperty_SoundBankFSSpec is available
-	FSSpec fsSpec;
-
-	if (err == noErr)
-		err = FSGetCatalogInfo(&fsref, kFSCatInfoNone, NULL, NULL, &fsSpec, NULL);
-
-	if (err == noErr) {
-		err = AudioUnitSetProperty(
-			_synth,
-			kMusicDeviceProperty_SoundBankFSSpec, kAudioUnitScope_Global,
-			0,
-			&fsSpec, sizeof(fsSpec)
-		);
+		if (version >= 0x1030) {
+			// Use kMusicDeviceProperty_SoundBankFSRef in >= 10.3
+
+			// HACK HACK HACK HACK SUPER HACK: Using the value of 1012 instead of
+			// kMusicDeviceProperty_SoundBankFSRef so this compiles with the 10.2
+			// SDK (which does not have that symbol).
+			if (err == noErr) {
+				err = AudioUnitSetProperty(
+					_synth,
+					/*kMusicDeviceProperty_SoundBankFSRef*/ 1012, kAudioUnitScope_Global,
+					0,
+					&fsref, sizeof(fsref)
+				);
+			}
+		} else {
+			// In 10.2, only kMusicDeviceProperty_SoundBankFSSpec is available
+			FSSpec fsSpec;
+
+			if (err == noErr)
+				err = FSGetCatalogInfo(&fsref, kFSCatInfoNone, NULL, NULL, &fsSpec, NULL);
+
+			if (err == noErr) {
+				err = AudioUnitSetProperty(
+					_synth,
+					kMusicDeviceProperty_SoundBankFSSpec, kAudioUnitScope_Global,
+					0,
+					&fsSpec, sizeof(fsSpec)
+				);
+			}
+		}
 	}
-#endif // MAC_OS_X_VERSION_10_5
-
 #else
 	// kMusicDeviceProperty_SoundBankURL was added in 10.5 as a replacement
 	// In addition, the File Manager API became deprecated starting in 10.8






More information about the Scummvm-git-logs mailing list