         }
     }
 
+	/// Checks if custom exposure mode is supported.
+	public var isCustomExposureSupported: Bool {
+		get {
+			if let device: AVCaptureDevice = self._currentDevice {
+				return device.isExposureModeSupported(.custom)
+			}
+			return false
+		}
+	}
+
     /// Checks if an exposure adjustment is progress.
     public var isAdjustingExposure: Bool {
         get {

        do {
            try device.lockForConfiguration()

            device.setExposureModeCustom(duration: AVCaptureDevice.currentExposureDuration, iso: newISO, completionHandler: nil)

            device.unlockForConfiguration()
        } catch {

        do {
            try device.lockForConfiguration()

			if device.isExposureModeSupported(.custom) {
				device.setExposureModeCustom(duration: CMTimeMakeWithSeconds( newDurationSeconds, preferredTimescale: 1000*1000*1000 ), iso: AVCaptureDevice.currentISO, completionHandler: nil)
			}

            device.unlockForConfiguration()
        } catch {
