feat: load optional XDG TOML configuration with session overrides

This commit is contained in:
2026-10-11 14:41:11 +02:00
parent 0dce073287
commit 722a225da5
16 changed files with 461 additions and 89 deletions
+6 -4
View File
@@ -1,4 +1,5 @@
import AppKit
import TerebiConfiguration
@MainActor
private final class FixedQualityClock { var now = 1000.0 }
@@ -65,15 +66,16 @@ struct AutomaticQualityPlaybackChecks {
"reselecting the current manual resolution disables auto without disrupting playback")
model.setAutomaticYouTubeQuality(true)
let reopened = PlayerModel(defaults: defaults, qualityClock: { clock.now })
require(reopened.automaticYouTubeQuality, "explicit opt-in survives player restart")
require(!reopened.automaticYouTubeQuality, "session opt-in does not survive player restart")
reopened.shutdown()
model.setYouTubeQuality(nil)
require(!model.automaticYouTubeQuality && model.youtubeQuality == nil,
"default quality is also a manual override")
let manual = PlayerModel(defaults: defaults, qualityClock: { clock.now })
require(!manual.automaticYouTubeQuality, "manual override persists after restart")
let manual = PlayerModel(defaults: defaults, configuration: PlayerConfiguration(automaticQuality: true),
qualityClock: { clock.now })
require(manual.automaticYouTubeQuality, "manual session override does not replace startup configuration")
manual.shutdown()
model.closeFile()
print("PASS native adaptive playback: default-off/stalled downshift/healthy upshift/progress preservation/current+default manual override/opt-in persistence")
print("PASS native adaptive playback: default-off/stalled downshift/healthy upshift/progress preservation/current+default manual override/session-only settings")
}
}