]> git.r.bdr.sh - rbdr/captura/blobdiff - Captura/CapturaApp.swift
Add URL parsing for record action
[rbdr/captura] / Captura / CapturaApp.swift
index d9c3ff0bcfffd18786ae622bda386b149bf34733..eb6f02ecb264a24147165745a7944435a176ca9b 100644 (file)
@@ -101,16 +101,15 @@ class CapturaAppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
   // MARK: - URL Event Handler
   
   func application(_ application: NSApplication, open urls: [URL]) {
-    print("AAAH OPENING")
     if (CapturaSettings.shouldAllowURLAutomation) {
       for url in urls {
         if let action = CapturaURLDecoder.decodeParams(url: url) {
           switch action {
             case let .configure(config):
-            print("AAAH CONFIGURING \(config)")
               CapturaSettings.apply(config)
             case let .record(config):
-              print(config)
+              captureSessionConfiguration = CaptureSessionConfiguration(from: config)
+              NotificationCenter.default.post(name: .startAreaSelection, object: nil, userInfo: nil)
           }
         }
       }
@@ -216,7 +215,7 @@ class CapturaAppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
         let rectInWindow = button.convert(button.bounds, to: nil)
         let rectInScreen = button.window?.convertToScreen(rectInWindow)
         NSApp.activate(ignoringOtherApps: true)
-        recordingWindow = RecordingWindow(rectInScreen)
+        recordingWindow = RecordingWindow(captureSessionConfiguration, rectInScreen)
         recordingWindow?.makeKeyAndOrderFront(nil)
         recordingWindow?.orderFrontRegardless()
         boxListener = recordingWindow?.recordingContentView.$box
@@ -250,7 +249,7 @@ class CapturaAppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
           stopTimer = DispatchWorkItem {
             self.stopRecording()
           }
-          DispatchQueue.main.asyncAfter(deadline: .now() + 300, execute: stopTimer!)
+          DispatchQueue.main.asyncAfter(deadline: .now() + Double(captureSessionConfiguration.maxLength), execute: stopTimer!)
           
           outputFile = CapturaFile()
           if captureSessionConfiguration.shouldSaveMp4 {
@@ -296,6 +295,7 @@ class CapturaAppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
   func reset() {
     captureState = .idle
     updateImage()
+    captureSessionConfiguration = CaptureSessionConfiguration()
     stop()
   }
   
@@ -383,7 +383,6 @@ class CapturaAppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
     boxListener?.cancel()
     recordingWindow?.close()
     recordingWindow = nil
-    captureSessionConfiguration = CaptureSessionConfiguration()
   }
   
   private func uploadOrCopy() async -> Bool {