You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.3 KiB
64 lines
1.3 KiB
//
|
|
// Created by Marco Schmickler on 28.10.21.
|
|
// Copyright (c) 2021 Marco Schmickler. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
class KSettings: ObservableObject {
|
|
@Published
|
|
var scale = Float(1.5)
|
|
|
|
@Published
|
|
var autoloop = false
|
|
|
|
@Published
|
|
var slow = false
|
|
|
|
@Published
|
|
var zoomed = false
|
|
|
|
@Published
|
|
var jump = true
|
|
|
|
@Published
|
|
var edit = false
|
|
|
|
@Published
|
|
var confirm = true
|
|
|
|
@Published
|
|
var automaticallyWaitsToMinimizeStalling = true
|
|
|
|
@Published
|
|
var muteAudio = false
|
|
|
|
@Published
|
|
var docked = true
|
|
|
|
@Published
|
|
var embeddedVideoUrl : URL?
|
|
|
|
convenience init(model: KSettingsModel) {
|
|
self.init()
|
|
scale = model.scale
|
|
autoloop = model.autoloop
|
|
zoomed = model.zoomed
|
|
jump = model.jump
|
|
slow = model.slow
|
|
confirm = model.confirm
|
|
muteAudio = model.muteAudio
|
|
docked = model.docked
|
|
}
|
|
|
|
func toModel() -> KSettingsModel {
|
|
KSettingsModel(scale: scale, autoloop: autoloop, zoomed: zoomed, jump: jump, slow: slow, confirm: confirm, muteAudio: muteAudio, docked: docked)
|
|
}
|
|
|
|
func toJSON() -> String {
|
|
let jsonEncoder = JSONEncoder()
|
|
let jsonData = try! jsonEncoder.encode(toModel())
|
|
let json = String(data: jsonData, encoding: String.Encoding.utf8)
|
|
return json!
|
|
}
|
|
}
|