aboutsummaryrefslogtreecommitdiff
path: root/Captura/Data
diff options
context:
space:
mode:
authorRuben Beltran del Rio <ruben@unlimited.pizza>2023-08-02 10:30:51 +0200
committerRuben Beltran del Rio <ruben@unlimited.pizza>2023-08-02 10:30:51 +0200
commit377442f2f1f0f08bc525393c9bd1c84f159c5159 (patch)
treeab7f62cda14f1d85a30e65b130cf289f3a04947b /Captura/Data
parent8e9321304ca80e9ada7ac01058a5f4603cb37fab (diff)
Add AppleScript support
Diffstat (limited to 'Captura/Data')
-rw-r--r--Captura/Data/CapturaSettings.swift35
-rw-r--r--Captura/Data/OutputFormatSetting.swift (renamed from Captura/Data/SettingsStructs.swift)11
2 files changed, 35 insertions, 11 deletions
diff --git a/Captura/Data/CapturaSettings.swift b/Captura/Data/CapturaSettings.swift
index 85368ea..2d0e70b 100644
--- a/Captura/Data/CapturaSettings.swift
+++ b/Captura/Data/CapturaSettings.swift
@@ -3,19 +3,23 @@ import Foundation
struct CapturaSettings {
static var frameRate: Int {
get {
- UserDefaults.standard.integer(forKey: "frameRate")
+ if NSUbiquitousKeyValueStore.default.object(forKey: "frameRate") == nil {
+ return 10
+ } else {
+ return min(10, max(4, Int(NSUbiquitousKeyValueStore.default.longLong(forKey: "frameRate"))))
+ }
}
set {
- UserDefaults.standard.setValue(newValue, forKey: "frameRate")
+ NSUbiquitousKeyValueStore.default.setValue(newValue, forKey: "frameRate")
}
}
static var outputFormats: OutputFormatSetting {
get {
- OutputFormatSetting(rawValue: UserDefaults.standard.integer(forKey: "outputFormats")) ?? .all
+ OutputFormatSetting(rawValue: Int(NSUbiquitousKeyValueStore.default.longLong(forKey: "outputFormats"))) ?? .all
}
set {
- UserDefaults.standard.setValue(newValue.rawValue, forKey: "outputFormats")
+ NSUbiquitousKeyValueStore.default.setValue(newValue.rawValue, forKey: "outputFormats")
}
}
@@ -41,36 +45,45 @@ struct CapturaSettings {
static var backend: URL? {
get {
- if let url = UserDefaults.standard.string(forKey: "backendUrl") {
+ if let url = NSUbiquitousKeyValueStore.default.string(forKey: "backendUrl") {
return URL(string: url)
}
return nil
}
set {
- UserDefaults.standard.setValue(newValue?.absoluteString, forKey: "backendUrl")
+ NSUbiquitousKeyValueStore.default.setValue(newValue?.absoluteString, forKey: "backendUrl")
}
}
static var backendFormat: OutputFormatSetting {
get {
- OutputFormatSetting(rawValue: UserDefaults.standard.integer(forKey: "backendFormat")) ?? .gifOnly
+ OutputFormatSetting(rawValue: Int(NSUbiquitousKeyValueStore.default.longLong(forKey: "backendFormat"))) ?? .gifOnly
}
set {
- UserDefaults.standard.setValue(newValue.rawValue, forKey: "backendFormat")
+ NSUbiquitousKeyValueStore.default.setValue(newValue.rawValue, forKey: "backendFormat")
}
}
static var shouldKeepLocalFiles: Bool {
get {
- UserDefaults.standard.bool(forKey: "keepFiles")
+ if NSUbiquitousKeyValueStore.default.object(forKey: "keepFiles") == nil {
+ return true
+ } else {
+ return NSUbiquitousKeyValueStore.default.bool(forKey: "keepFiles")
+ }
}
set {
- UserDefaults.standard.set(newValue, forKey: "keepFiles")
+ NSUbiquitousKeyValueStore.default.set(newValue, forKey: "keepFiles")
}
}
static var shouldAllowURLAutomation: Bool {
- UserDefaults.standard.bool(forKey: "allowURLAutomation")
+ get {
+ NSUbiquitousKeyValueStore.default.bool(forKey: "allowURLAutomation")
+ }
+ set {
+ NSUbiquitousKeyValueStore.default.setValue(newValue, forKey: "allowURLAutomation")
+ }
}
static func apply(_ config: ConfigureAction) {
diff --git a/Captura/Data/SettingsStructs.swift b/Captura/Data/OutputFormatSetting.swift
index 16172ca..211a08e 100644
--- a/Captura/Data/SettingsStructs.swift
+++ b/Captura/Data/OutputFormatSetting.swift
@@ -25,4 +25,15 @@ enum OutputFormatSetting: Int {
func shouldSaveMp4() -> Bool {
return self == .mp4Only || self == .all
}
+
+ func toString() -> String {
+ switch(self) {
+ case .gifOnly:
+ return "gif"
+ case .mp4Only:
+ return "mp4"
+ case .all:
+ return "all"
+ }
+ }
}