1
1
mirror of https://github.com/danbee/persephone synced 2025-03-04 08:39:11 +00:00
persephone/Persephone/Models/Preferences.swift
Dan Barber fe748e2c61
WIP: Refactor MPDClient
This should make handling the queuing side work more reliably.
2019-03-20 20:06:23 -04:00

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)
}
}