+/*
+ 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
@objc(RecordCommand)
class RecordCommand: NSScriptCommand {
- override func performDefaultImplementation() -> Any? {
-
- let args = self.directParameter as? [String: Any] ?? [:]
-
- // Here you can extract the parameters from the args dictionary and configure your settings
- let x = args["x"] as? Int
- let y = args["y"] as? Int
- let width = args["width"] as? Int
- let height = args["height"] as? Int
- let preventResize = args["prevent_resize"] as? Bool
- let preventMove = args["prevent_move"] as? Bool
- let fps = args["fps"] as? Int
- let outputs = OutputFormatSetting(args["outputs"] as? String ?? "")
- let backend = URL(string: args["backend"] as? String ?? "")
- let backendOutput = OutputFormatSetting(args["backend_output"] as? String ?? "")
- let keepLocalFiles = args["keep_local_files"] as? Bool
- let autoStart = args["auto_start"] as? Bool
- let maxLength = args["max_length"] as? Int
-
- var skipBackend = false
- if let backendString = args["backend"] as? String {
- if backendString == "" {
- skipBackend = true
- }
+ override func performDefaultImplementation() -> Any? {
+
+ let args = self.directParameter as? [String: Any] ?? [:]
+
+ // Here you can extract the parameters from the args dictionary and configure your settings
+ let x = args["x"] as? Int
+ let y = args["y"] as? Int
+ let width = args["width"] as? Int
+ let height = args["height"] as? Int
+ let preventResize = args["prevent_resize"] as? Bool
+ let preventMove = args["prevent_move"] as? Bool
+ let fps = args["fps"] as? Int
+ let outputs = OutputFormatSetting(args["outputs"] as? String ?? "")
+ let backend = URL(string: args["backend"] as? String ?? "")
+ let backendOutput = OutputFormatSetting(args["backend_output"] as? String ?? "")
+ let keepLocalFiles = args["keep_local_files"] as? Bool
+ let autoStart = args["auto_start"] as? Bool
+ let maxLength = args["max_length"] as? Int
+
+ var skipBackend = false
+ if let backendString = args["backend"] as? String {
+ if backendString == "" {
+ skipBackend = true
}
-
- let config = RecordAction(
- action: "record",
- x: x,
- y: y,
- width: width,
- height: height,
- preventResize: preventResize,
- preventMove: preventMove,
- fps: fps,
- outputs: outputs,
- backend: backend,
- backendOutput: backendOutput,
- keepLocalFiles: keepLocalFiles,
- autoStart: autoStart,
- skipBackend: skipBackend,
- maxLength: maxLength
- )
-
- NotificationCenter.default.post(name: .setCaptureSessionConfiguration, object: nil, userInfo: [
+ }
+
+ let config = RecordAction(
+ action: "record",
+ x: x,
+ y: y,
+ width: width,
+ height: height,
+ preventResize: preventResize,
+ preventMove: preventMove,
+ fps: fps,
+ outputs: outputs,
+ backend: backend,
+ backendOutput: backendOutput,
+ keepLocalFiles: keepLocalFiles,
+ autoStart: autoStart,
+ skipBackend: skipBackend,
+ maxLength: maxLength
+ )
+
+ NotificationCenter.default.post(
+ name: .setCaptureSessionConfiguration, object: nil,
+ userInfo: [
"config": config
])
- NotificationCenter.default.post(name: .startAreaSelection, object: nil, userInfo: nil)
+ NotificationCenter.default.post(name: .startAreaSelection, object: nil, userInfo: nil)
- // Return a result if needed
- return nil
- }
+ // Return a result if needed
+ return nil
+ }
}