From ff11c0383210fd45233c9159f4e7740c757f3206 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Torra=CC=83o?= Date: Wed, 17 Feb 2016 10:15:49 +0000 Subject: [PATCH] Minor fixes and improvements --- camera/CameraManager.swift | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/camera/CameraManager.swift b/camera/CameraManager.swift index 7f2deef..c9615e8 100644 --- a/camera/CameraManager.swift +++ b/camera/CameraManager.swift @@ -106,6 +106,8 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate, UIGe if cameraIsSetup { if cameraDevice != oldValue { _updateCameraDevice(cameraDevice) + _setupMaxZoomScale() + _zoom(0) } } } @@ -485,11 +487,13 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate, UIGe do { let captureDevice = AVCaptureDevice.devices().first as? AVCaptureDevice try captureDevice?.lockForConfiguration() - + zoomScale = max(1.0, min(beginZoomScale * scale, maxZoomScale)) - captureDevice?.videoZoomFactor = zoomScale + captureDevice?.videoZoomFactor = zoomScale + captureDevice?.unlockForConfiguration() + } catch { print("Error locking configuration") } @@ -656,18 +660,17 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate, UIGe } private func _setupMaxZoomScale() { + var maxZoom = CGFloat(1.0) + beginZoomScale = CGFloat(1.0) + if cameraDevice == .Back { - if let maxZoom = backCameraDevice?.activeFormat.videoMaxZoomFactor { - beginZoomScale = CGFloat(1.0) - maxZoomScale = maxZoom - } + maxZoom = (backCameraDevice?.activeFormat.videoMaxZoomFactor)! } - else { - if let maxZoom = frontCameraDevice?.activeFormat.videoMaxZoomFactor { - beginZoomScale = CGFloat(1.0) - maxZoomScale = maxZoom - } + else if cameraDevice == .Front { + maxZoom = (frontCameraDevice?.activeFormat.videoMaxZoomFactor)! } + + maxZoomScale = maxZoom } private func _checkIfCameraIsAvailable() -> CameraState {