X-Git-Url: https://git.r.bdr.sh/rbdr/captura/blobdiff_plain/153f3309127a4f9d898310224a467d11eef0f2ff..cdc79b7d7c4829ba7a0371826b28f398f267c46a:/Captura/CapturaApp.swift?ds=sidebyside diff --git a/Captura/CapturaApp.swift b/Captura/CapturaApp.swift index d954b9f..0d22e79 100644 --- a/Captura/CapturaApp.swift +++ b/Captura/CapturaApp.swift @@ -1,5 +1,4 @@ import SwiftUI -import SwiftData import Cocoa import Combine import AVFoundation @@ -108,7 +107,9 @@ struct CapturaApp: App { if let action = CapturaURLDecoder.decodeParams(url: url) { switch action { case let .configure(config): - CapturaSettings.apply(config) + NotificationCenter.default.post(name: .setConfiguration, object: nil, userInfo: [ + "config": config + ]) case let .record(config): NotificationCenter.default.post(name: .setCaptureSessionConfiguration, object: nil, userInfo: [ "config": config @@ -200,8 +201,16 @@ struct CapturaApp: App { if let frame = notification.userInfo?["frame"] { receivedFrame(frame as! CVImageBuffer) } + case .setConfiguration: + DispatchQueue.main.async { + if let userInfo = notification.userInfo { + if let config = userInfo["config"] as? ConfigureAction { + self.setConfiguration(config) + } + } + } case .reloadConfiguration: - reloadConfiguration() + reloadConfiguration() case .setCaptureSessionConfiguration: if let userInfo = notification.userInfo { if let config = userInfo["config"] as? RecordAction { @@ -336,6 +345,10 @@ struct CapturaApp: App { } } + func setConfiguration(_ config: ConfigureAction) { + CapturaSettings.apply(config) + } + func reloadConfiguration() { self.captureSessionConfiguration = CaptureSessionConfiguration() }