diff --git a/drivers/coreaudio/audio_driver_coreaudio.cpp b/drivers/coreaudio/audio_driver_coreaudio.cpp index 98a8d4b2ef5..fd0adb1fd1b 100644 --- a/drivers/coreaudio/audio_driver_coreaudio.cpp +++ b/drivers/coreaudio/audio_driver_coreaudio.cpp @@ -66,6 +66,11 @@ OSStatus AudioDriverCoreAudio::output_device_address_cb(AudioObjectID inObjectID return noErr; } + +// Switch to kAudioObjectPropertyElementMain everywhere to remove deprecated warnings. +#if (TARGET_OS_OSX && __MAC_OS_X_VERSION_MAX_ALLOWED < 120000) || (TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED < 150000) +#define kAudioObjectPropertyElementMain kAudioObjectPropertyElementMaster +#endif #endif Error AudioDriverCoreAudio::init() { @@ -89,7 +94,7 @@ Error AudioDriverCoreAudio::init() { AudioObjectPropertyAddress prop; prop.mSelector = kAudioHardwarePropertyDefaultOutputDevice; prop.mScope = kAudioObjectPropertyScopeGlobal; - prop.mElement = kAudioObjectPropertyElementMaster; + prop.mElement = kAudioObjectPropertyElementMain; result = AudioObjectAddPropertyListener(kAudioObjectSystemObject, &prop, &output_device_address_cb, this); ERR_FAIL_COND_V(result != noErr, FAILED); @@ -319,7 +324,7 @@ void AudioDriverCoreAudio::finish() { AudioObjectPropertyAddress prop; prop.mSelector = kAudioHardwarePropertyDefaultOutputDevice; prop.mScope = kAudioObjectPropertyScopeGlobal; - prop.mElement = kAudioObjectPropertyElementMaster; + prop.mElement = kAudioObjectPropertyElementMain; result = AudioObjectRemovePropertyListener(kAudioObjectSystemObject, &prop, &output_device_address_cb, this); if (result != noErr) { @@ -358,7 +363,7 @@ Error AudioDriverCoreAudio::init_input_device() { AudioObjectPropertyAddress prop; prop.mSelector = kAudioHardwarePropertyDefaultInputDevice; prop.mScope = kAudioObjectPropertyScopeGlobal; - prop.mElement = kAudioObjectPropertyElementMaster; + prop.mElement = kAudioObjectPropertyElementMain; result = AudioObjectAddPropertyListener(kAudioObjectSystemObject, &prop, &input_device_address_cb, this); ERR_FAIL_COND_V(result != noErr, FAILED); @@ -375,7 +380,7 @@ Error AudioDriverCoreAudio::init_input_device() { #ifdef MACOS_ENABLED AudioDeviceID deviceId; size = sizeof(AudioDeviceID); - AudioObjectPropertyAddress property = { kAudioHardwarePropertyDefaultInputDevice, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster }; + AudioObjectPropertyAddress property = { kAudioHardwarePropertyDefaultInputDevice, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMain }; result = AudioObjectGetPropertyData(kAudioObjectSystemObject, &property, 0, nullptr, &size, &deviceId); ERR_FAIL_COND_V(result != noErr, FAILED); @@ -453,7 +458,7 @@ void AudioDriverCoreAudio::finish_input_device() { AudioObjectPropertyAddress prop; prop.mSelector = kAudioHardwarePropertyDefaultInputDevice; prop.mScope = kAudioObjectPropertyScopeGlobal; - prop.mElement = kAudioObjectPropertyElementMaster; + prop.mElement = kAudioObjectPropertyElementMain; result = AudioObjectRemovePropertyListener(kAudioObjectSystemObject, &prop, &input_device_address_cb, this); if (result != noErr) { @@ -504,7 +509,7 @@ PackedStringArray AudioDriverCoreAudio::_get_device_list(bool input) { prop.mSelector = kAudioHardwarePropertyDevices; prop.mScope = kAudioObjectPropertyScopeGlobal; - prop.mElement = kAudioObjectPropertyElementMaster; + prop.mElement = kAudioObjectPropertyElementMain; UInt32 size = 0; AudioObjectGetPropertyDataSize(kAudioObjectSystemObject, &prop, 0, nullptr, &size); @@ -563,7 +568,7 @@ void AudioDriverCoreAudio::_set_device(const String &output_device, bool input) prop.mSelector = kAudioHardwarePropertyDevices; prop.mScope = kAudioObjectPropertyScopeGlobal; - prop.mElement = kAudioObjectPropertyElementMaster; + prop.mElement = kAudioObjectPropertyElementMain; UInt32 size = 0; AudioObjectGetPropertyDataSize(kAudioObjectSystemObject, &prop, 0, nullptr, &size); @@ -619,7 +624,7 @@ void AudioDriverCoreAudio::_set_device(const String &output_device, bool input) // If we haven't found the desired device get the system default one UInt32 size = sizeof(AudioDeviceID); UInt32 elem = input ? kAudioHardwarePropertyDefaultInputDevice : kAudioHardwarePropertyDefaultOutputDevice; - AudioObjectPropertyAddress property = { elem, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster }; + AudioObjectPropertyAddress property = { elem, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMain }; OSStatus result = AudioObjectGetPropertyData(kAudioObjectSystemObject, &property, 0, nullptr, &size, &deviceId); ERR_FAIL_COND(result != noErr); diff --git a/misc/dist/macos_tools.app/Contents/Info.plist b/misc/dist/macos_tools.app/Contents/Info.plist index c35a209844b..9078701c91f 100644 --- a/misc/dist/macos_tools.app/Contents/Info.plist +++ b/misc/dist/macos_tools.app/Contents/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString 4.4 CFBundleSignature - godot + GODO CFBundleVersion 4.4 NSMicrophoneUsageDescription @@ -28,6 +28,8 @@ Camera access is required to capture video. NSRequiresAquaSystemAppearance + NSCameraUseContinuityCameraDeviceType + NSHumanReadableCopyright © 2007-present Juan Linietsky, Ariel Manzur & Godot Engine contributors CFBundleSupportedPlatforms @@ -38,10 +40,15 @@ NSApplication LSApplicationCategoryType public.app-category.developer-tools - LSMinimumSystemVersion - 10.12 + LSArchitecturePriority + + arm64 + x86_64 + LSMinimumSystemVersionByArchitecture + arm64 + 11.0 x86_64 10.12 diff --git a/modules/camera/camera_macos.mm b/modules/camera/camera_macos.mm index c0d8dc2cef2..578a1d63252 100644 --- a/modules/camera/camera_macos.mm +++ b/modules/camera/camera_macos.mm @@ -307,11 +307,17 @@ MyDeviceNotifications *device_notifications = nil; // CameraMacOS - Subclass for our camera server on macOS void CameraMacOS::update_feeds() { -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 101500 - AVCaptureDeviceDiscoverySession *session = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:[NSArray arrayWithObjects:AVCaptureDeviceTypeExternalUnknown, AVCaptureDeviceTypeBuiltInWideAngleCamera, nil] mediaType:AVMediaTypeVideo position:AVCaptureDevicePositionUnspecified]; - NSArray *devices = session.devices; +#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500 + AVCaptureDeviceDiscoverySession *session; +#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 140000 + // Avoid deprecated warning if the minimum SDK is 14.0. + session = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:[NSArray arrayWithObjects:AVCaptureDeviceTypeExternal, AVCaptureDeviceTypeBuiltInWideAngleCamera, nil] mediaType:AVMediaTypeVideo position:AVCaptureDevicePositionUnspecified]; #else - NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]; + session = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:[NSArray arrayWithObjects:AVCaptureDeviceTypeExternalUnknown, AVCaptureDeviceTypeBuiltInWideAngleCamera, nil] mediaType:AVMediaTypeVideo position:AVCaptureDevicePositionUnspecified]; +#endif + NSArray *devices = session.devices; +#else + NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]; #endif // remove devices that are gone.. diff --git a/platform/ios/godot_view.mm b/platform/ios/godot_view.mm index 1dddc9306e3..e9100361983 100644 --- a/platform/ios/godot_view.mm +++ b/platform/ios/godot_view.mm @@ -441,6 +441,9 @@ static const float earth_gravity = 9.80665; UIInterfaceOrientation interfaceOrientation = UIInterfaceOrientationUnknown; +#if __IPHONE_OS_VERSION_MAX_ALLOWED < 140000 + interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation]; +#else if (@available(iOS 13, *)) { interfaceOrientation = [UIApplication sharedApplication].delegate.window.windowScene.interfaceOrientation; #if !defined(TARGET_OS_SIMULATOR) || !TARGET_OS_SIMULATOR @@ -448,6 +451,7 @@ static const float earth_gravity = 9.80665; interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation]; #endif } +#endif switch (interfaceOrientation) { case UIInterfaceOrientationLandscapeLeft: { diff --git a/platform/macos/display_server_macos.mm b/platform/macos/display_server_macos.mm index cd2d8a60ace..b2243dd8d5b 100644 --- a/platform/macos/display_server_macos.mm +++ b/platform/macos/display_server_macos.mm @@ -2332,7 +2332,7 @@ void DisplayServerMacOS::window_set_window_buttons_offset(const Vector2i &p_offs wd.wb_offset = p_offset / scale; wd.wb_offset = wd.wb_offset.maxi(12); if (wd.window_button_view) { - [wd.window_button_view setOffset:NSMakePoint(wd.wb_offset.x, wd.wb_offset.y)]; + [(GodotButtonView *)wd.window_button_view setOffset:NSMakePoint(wd.wb_offset.x, wd.wb_offset.y)]; } }