-import Foundation
+/*
+ Copyright (C) 2024 Rubén Beltrán del Río
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see https://captura.tranquil.systems.
+ */
+import Foundation
protocol ConfigureActionProtocol {
var action: String { get }
var backendOutput: OutputFormatSetting? { get }
var keepLocalFiles: Bool? { get }
var autoStart: Bool? { get }
+ var skipBackend: Bool { get }
+ var maxLength: Int? { get }
}
// The concrete implementations
var backendOutput: OutputFormatSetting?
var keepLocalFiles: Bool?
var autoStart: Bool?
+ var skipBackend: Bool
+ var maxLength: Int?
}
enum CapturaAction {
let keepLocalFiles = Bool(paramsDict["keep_local_files"] as? String ?? "")
let outputs = OutputFormatSetting(paramsDict["outputs"] as? String ?? "")
var backendOutput = OutputFormatSetting(paramsDict["backend_output"] as? String ?? "")
+ let autoStart = Bool(paramsDict["auto_start"] as? String ?? "")
+ var maxLength = Int(paramsDict["max_length"] as? String ?? "")
if fps != nil {
fps = min(10, max(4, fps!))
}
+ if maxLength != nil {
+ maxLength = min(300, max(1, fps!))
+ }
+
if backendOutput == .all {
backendOutput = .gifOnly
}
+ var skipBackend = false
+ if let backendString = paramsDict["backend"] as? String {
+ if backendString == "" {
+ skipBackend = true
+ }
+ }
+
return .record(RecordAction(
action: action,
x: x,
outputs: outputs,
backend: backend,
backendOutput: backendOutput,
- keepLocalFiles: keepLocalFiles
+ keepLocalFiles: keepLocalFiles,
+ autoStart: autoStart,
+ skipBackend: skipBackend,
+ maxLength: maxLength
))
default: