2021-02-19 08:28:05 -07:00
|
|
|
//
|
|
|
|
// AVCaptureVideoStabilizationMode+descriptor.swift
|
2021-06-21 14:42:46 -06:00
|
|
|
// mrousavy
|
2021-02-19 08:28:05 -07:00
|
|
|
//
|
|
|
|
// Created by Marc Rousavy on 29.12.20.
|
2021-06-01 05:07:57 -06:00
|
|
|
// Copyright © 2020 mrousavy. All rights reserved.
|
2021-02-19 08:28:05 -07:00
|
|
|
//
|
|
|
|
|
|
|
|
import AVFoundation
|
|
|
|
|
|
|
|
extension AVCaptureVideoStabilizationMode {
|
|
|
|
init(withString string: String) throws {
|
|
|
|
switch string {
|
|
|
|
case "auto":
|
|
|
|
self = .auto
|
|
|
|
return
|
|
|
|
case "cinematic":
|
|
|
|
self = .cinematic
|
|
|
|
return
|
|
|
|
case "cinematic-extended":
|
|
|
|
if #available(iOS 13.0, *) {
|
|
|
|
self = .cinematicExtended
|
|
|
|
return
|
|
|
|
} else {
|
2023-09-29 13:54:35 -06:00
|
|
|
self = .cinematic
|
|
|
|
return
|
2021-02-19 08:28:05 -07:00
|
|
|
}
|
|
|
|
case "off":
|
|
|
|
self = .off
|
|
|
|
return
|
|
|
|
case "standard":
|
|
|
|
self = .standard
|
|
|
|
return
|
|
|
|
default:
|
|
|
|
throw EnumParserError.invalidValue
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
var descriptor: String {
|
|
|
|
if #available(iOS 13.0, *) {
|
|
|
|
switch self {
|
|
|
|
case .cinematicExtended:
|
|
|
|
return "cinematic-extended"
|
|
|
|
default:
|
|
|
|
break
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
switch self {
|
|
|
|
case .auto:
|
|
|
|
return "auto"
|
|
|
|
case .cinematic:
|
|
|
|
return "cinematic"
|
|
|
|
case .off:
|
|
|
|
return "off"
|
|
|
|
case .standard:
|
|
|
|
return "standard"
|
|
|
|
default:
|
|
|
|
fatalError("AVCaptureVideoStabilizationMode has unknown state.")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|