diff options
Diffstat (limited to 'Captura/Scripting/RecordCommand.swift')
| -rw-r--r-- | Captura/Scripting/RecordCommand.swift | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/Captura/Scripting/RecordCommand.swift b/Captura/Scripting/RecordCommand.swift new file mode 100644 index 0000000..8db2656 --- /dev/null +++ b/Captura/Scripting/RecordCommand.swift @@ -0,0 +1,64 @@ +import Foundation + +@objc(RecordCommand) +class RecordCommand: NSScriptCommand { + override func performDefaultImplementation() -> Any? { + print("AAAH \(self.directParameter)") + + guard let args = self.directParameter as? [String: Any] else { + return nil + } + + print("AAH COMMANDS \(args)") + + // 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 + + print("AAH WIDTH \(width)") + + 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: [ + "config": config + ]) + NotificationCenter.default.post(name: .startAreaSelection, object: nil, userInfo: nil) + + // Return a result if needed + return nil + } +} |