mirror of
https://github.com/danbee/persephone
synced 2025-03-04 08:39:11 +00:00
65 lines
1.3 KiB
Swift
65 lines
1.3 KiB
Swift
//
|
|
// Preferences.swift
|
|
// Persephone
|
|
//
|
|
// Created by Daniel Barber on 2019/2/15.
|
|
// Copyright © 2019 Dan Barber. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
struct Preferences {
|
|
let mpdHostDefault = "127.0.0.1"
|
|
let mpdPortDefault = 6600
|
|
let mpdLibraryDirDefault = "~/Music"
|
|
|
|
let preferences = UserDefaults.standard
|
|
|
|
var mpdHost: String? {
|
|
get {
|
|
return preferences.string(forKey: "mpdHost")
|
|
}
|
|
set {
|
|
preferences.set(newValue, forKey: "mpdHost")
|
|
}
|
|
}
|
|
|
|
var mpdHostOrDefault: String {
|
|
return mpdHost ?? mpdHostDefault
|
|
}
|
|
|
|
var mpdPort: Int? {
|
|
get {
|
|
return preferences.value(forKey: "mpdPort") as? Int
|
|
}
|
|
set {
|
|
if (newValue.map { $0 > 0 } ?? false) {
|
|
preferences.set(newValue, forKey: "mpdPort")
|
|
} else {
|
|
preferences.removeObject(forKey: "mpdPort")
|
|
}
|
|
}
|
|
}
|
|
|
|
var mpdPortOrDefault: Int {
|
|
return mpdPort ?? mpdPortDefault
|
|
}
|
|
|
|
var mpdLibraryDir: String? {
|
|
get {
|
|
return preferences.string(forKey: "mpdLibraryDir")
|
|
}
|
|
set {
|
|
preferences.set(newValue, forKey: "mpdLibraryDir")
|
|
}
|
|
}
|
|
|
|
var mpdLibraryDirOrDefault: String {
|
|
return mpdLibraryDir ?? mpdLibraryDirDefault
|
|
}
|
|
|
|
func addObserver(_ observer: NSObject, forKeyPath keyPath: String) {
|
|
preferences.addObserver(observer, forKeyPath: keyPath, options: .new, context: nil)
|
|
}
|
|
}
|