mirror of
https://github.com/Redot-Engine/redot-engine.git
synced 2025-12-06 07:17:42 -05:00
Merge pull request #104857 from shiena/feature/discovery-continuity-camera
macOS: Allow users to select Continuity Camera
This commit is contained in:
@@ -309,17 +309,21 @@ 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;
|
||||
#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
|
||||
session = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:[NSArray arrayWithObjects:AVCaptureDeviceTypeExternalUnknown, AVCaptureDeviceTypeBuiltInWideAngleCamera, nil] mediaType:AVMediaTypeVideo position:AVCaptureDevicePositionUnspecified];
|
||||
NSArray<AVCaptureDevice *> *devices = nullptr;
|
||||
#if defined(__x86_64__)
|
||||
if (@available(macOS 10.15, *)) {
|
||||
#endif
|
||||
NSArray<AVCaptureDevice *> *devices = session.devices;
|
||||
#else
|
||||
NSArray<AVCaptureDevice *> *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
|
||||
AVCaptureDeviceDiscoverySession *session;
|
||||
if (@available(macOS 14.0, *)) {
|
||||
session = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:[NSArray arrayWithObjects:AVCaptureDeviceTypeExternal, AVCaptureDeviceTypeBuiltInWideAngleCamera, AVCaptureDeviceTypeContinuityCamera, nil] mediaType:AVMediaTypeVideo position:AVCaptureDevicePositionUnspecified];
|
||||
} else {
|
||||
session = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:[NSArray arrayWithObjects:AVCaptureDeviceTypeExternalUnknown, AVCaptureDeviceTypeBuiltInWideAngleCamera, nil] mediaType:AVMediaTypeVideo position:AVCaptureDevicePositionUnspecified];
|
||||
}
|
||||
devices = session.devices;
|
||||
#if defined(__x86_64__)
|
||||
} else {
|
||||
devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
|
||||
}
|
||||
#endif
|
||||
|
||||
// remove devices that are gone..
|
||||
|
||||
Reference in New Issue
Block a user