feat: load optional XDG TOML configuration with session overrides
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import AppKit
|
||||
import MediaPlayer
|
||||
import TerebiConfiguration
|
||||
|
||||
@main
|
||||
@MainActor
|
||||
@@ -29,13 +30,20 @@ struct SystemPlaybackChecks {
|
||||
"buffer readout can be enabled before playback and reveals controls")
|
||||
initialModel.shutdown()
|
||||
let restoredModel = PlayerModel(defaults: defaults)
|
||||
require(restoredModel.showsBufferInfo, "enabled buffer readout survives model recreation")
|
||||
restoredModel.setShowsBufferInfo(false)
|
||||
require(!restoredModel.showsBufferInfo, "buffer readout can be explicitly disabled")
|
||||
require(!restoredModel.showsBufferInfo, "session opt-in does not survive model recreation")
|
||||
restoredModel.shutdown()
|
||||
let configuredModel = PlayerModel(defaults: defaults, configuration:
|
||||
PlayerConfiguration(showBufferInfo: true, automaticQuality: true, snapToEdges: false))
|
||||
require(configuredModel.showsBufferInfo && configuredModel.automaticYouTubeQuality
|
||||
&& !configuredModel.compactWindow.snappingEnabled, "configuration initializes all three controls")
|
||||
configuredModel.setShowsBufferInfo(false)
|
||||
configuredModel.setAutomaticYouTubeQuality(false)
|
||||
configuredModel.compactWindow.snappingEnabled = true
|
||||
configuredModel.shutdown()
|
||||
let model = PlayerModel(defaults: defaults)
|
||||
defer { model.shutdown() }
|
||||
require(!model.showsBufferInfo, "explicitly disabled buffer readout survives model recreation")
|
||||
require(!model.showsBufferInfo && !model.automaticYouTubeQuality && model.compactWindow.snappingEnabled,
|
||||
"session overrides never replace built-in settings")
|
||||
model.setVolume(0)
|
||||
let directory = URL(fileURLWithPath: CommandLine.arguments[1], isDirectory: true)
|
||||
let center = MPNowPlayingInfoCenter.default()
|
||||
|
||||
Reference in New Issue
Block a user