         }
     }
     
+    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**

        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
    }
    
    /**

    case stillImage, videoWithMic, videoOnly
}

public enum CaptureResult {
    case success(content: CaptureContent)
    case failure(Error)
