Mixer kann beim Start von Onyx mitlaufen
Ein Häkchen im Mixer selbst. Standardmäßig aus: der Mixer greift in den Tonweg der geregelten Programme ein, und das soll niemandem ungefragt passieren — beim ersten Start soll nichts umgeleitet werden, was der Nutzer nicht angeschaltet hat. Das Häkchen steht in beiden Zuständen: eingeschaltet, um es wieder abzuwählen, ausgeschaltet, um es gleich mit zu setzen. Sonst müsste man den Mixer erst einschalten, um sagen zu können, dass er von selbst einschalten soll. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -38,10 +38,23 @@ public final class AudioMixer {
|
||||
/// verschwindet ein pausiertes Programm sofort aus der Liste.
|
||||
private var lastHeard: [String: Date] = [:]
|
||||
|
||||
/// Ob der Mixer beim Programmstart von selbst anläuft.
|
||||
///
|
||||
/// Standardmäßig aus: der Mixer greift in den Tonweg ein, und das soll
|
||||
/// niemandem ungefragt passieren. Wer ihn täglich benutzt, spart sich mit
|
||||
/// dem Häkchen den Klick.
|
||||
public var startsAutomatically: Bool {
|
||||
didSet {
|
||||
guard startsAutomatically != oldValue else { return }
|
||||
defaults.set(startsAutomatically, forKey: Keys.autostart)
|
||||
}
|
||||
}
|
||||
|
||||
private enum Keys {
|
||||
static let volumes = "onyx.audio.volumes"
|
||||
static let muted = "onyx.audio.muted"
|
||||
static let managed = "onyx.audio.managed"
|
||||
static let autostart = "onyx.audio.autostart"
|
||||
}
|
||||
|
||||
public init(defaults: UserDefaults = .standard) {
|
||||
@@ -50,6 +63,13 @@ public final class AudioMixer {
|
||||
let muted = defaults.stringArray(forKey: Keys.muted) ?? []
|
||||
store = VolumeStore(volumes: volumes, muted: muted)
|
||||
managed = Set(defaults.stringArray(forKey: Keys.managed) ?? [])
|
||||
startsAutomatically = defaults.bool(forKey: Keys.autostart)
|
||||
}
|
||||
|
||||
/// Beim Programmstart aufrufen. Läuft nur an, wenn das Häkchen gesetzt ist.
|
||||
public func enableIfWanted() {
|
||||
guard startsAutomatically else { return }
|
||||
enable()
|
||||
}
|
||||
|
||||
// MARK: - Ein und aus
|
||||
|
||||
Reference in New Issue
Block a user