         }
     }
     
-    fileprivate func _updateCameraQualityMode(_ newCameraOutputQuality: CameraOutputQuality) {
+    fileprivate func _updateCameraQualityMode(_ newCameraOutputQuality: AVCaptureSession.Preset) {
+        
+        
         if let validCaptureSession = captureSession {
-            var sessionPreset = AVCaptureSession.Preset.low
-            switch newCameraOutputQuality {
-            case CameraOutputQuality.low:
-                sessionPreset = AVCaptureSession.Preset.low
-            case CameraOutputQuality.medium:
-                sessionPreset = AVCaptureSession.Preset.medium
-            case CameraOutputQuality.high:
+            
+            var sessionPreset = newCameraOutputQuality
+            if newCameraOutputQuality == .high {
                 if cameraOutputMode == .stillImage {
                     sessionPreset = AVCaptureSession.Preset.photo
                 } else {
                     sessionPreset = AVCaptureSession.Preset.high
                 }
             }
+            
             if validCaptureSession.canSetSessionPreset(sessionPreset) {
                 validCaptureSession.beginConfiguration()
                 validCaptureSession.sessionPreset = sessionPreset

        guard let newFlashMode = CameraFlashMode(rawValue: (flashMode.rawValue+1)%3) else { return flashMode }
        flashMode = newFlashMode
        return flashMode
    }
    
    /**
     Change current output quality mode to next value from available ones.
     
     :returns: Current quality mode: Low / Medium / High
     */
    open func changeQualityMode() -> CameraOutputQuality {
        guard let newQuality = CameraOutputQuality(rawValue: (cameraOutputQuality.rawValue+1)%3) else { return cameraOutputQuality }
        cameraOutputQuality = newQuality
        return cameraOutputQuality
    }
    
    /**

        }
    }
    
    open func canSetPresset(presset: AVCaptureSession.Preset) -> Bool? {
        if let validCaptureSession = captureSession {
            return validCaptureSession.canSetSessionPreset(presset)
        }
        return nil
    }
    
    /**
     Property to determine if manager should write the resources to the phone library.
     - note: Default value is **true**
