/* 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(ConfigureCommand) class ConfigureCommand: 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 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 config = ConfigureAction( action: "configure", fps: fps, outputs: outputs, backend: backend, backendOutput: backendOutput, keepLocalFiles: keepLocalFiles ) NotificationCenter.default.post(name: .setConfiguration, object: nil, userInfo: [ "config": config ]) NotificationCenter.default.post(name: .reloadConfiguration, object: nil, userInfo: nil) // Return a result if needed return nil } }