2021-02-19 08:28:05 -07:00
|
|
|
//
|
|
|
|
// AVCaptureDevice+neutralZoom.swift
|
2021-06-21 14:42:46 -06:00
|
|
|
// mrousavy
|
2021-02-19 08:28:05 -07:00
|
|
|
//
|
|
|
|
// Created by Marc Rousavy on 10.01.21.
|
2021-06-01 05:07:57 -06:00
|
|
|
// Copyright © 2021 mrousavy. All rights reserved.
|
2021-02-19 08:28:05 -07:00
|
|
|
//
|
|
|
|
|
|
|
|
import AVFoundation
|
|
|
|
|
|
|
|
extension AVCaptureDevice {
|
2021-06-07 02:46:53 -06:00
|
|
|
/**
|
|
|
|
Get the value at which the Zoom factor is neutral.
|
|
|
|
|
|
|
|
For normal wide-angle devices, this is always going to be 1.0, since this is the default scale.
|
|
|
|
For devices with an ultra-wide-angle camera, this value is going to be the value where the wide-angle device will switch over.
|
|
|
|
*/
|
2021-02-19 08:28:05 -07:00
|
|
|
var neutralZoomFactor: CGFloat {
|
|
|
|
if #available(iOS 13.0, *) {
|
|
|
|
if let indexOfWideAngle = self.constituentDevices.firstIndex(where: { $0.deviceType == .builtInWideAngleCamera }) {
|
|
|
|
if let zoomFactor = self.virtualDeviceSwitchOverVideoZoomFactors[safe: indexOfWideAngle - 1] {
|
|
|
|
return CGFloat(zoomFactor.doubleValue)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return 1.0
|
|
|
|
}
|
|
|
|
}
|