Harden VLC playback controls

This commit is contained in:
dirtydishes 2026-05-26 23:47:06 -04:00
parent 6ced219906
commit 62366c0e25
7 changed files with 583 additions and 16 deletions

View file

@ -24,6 +24,7 @@ struct StreamResolverTests {
testSubtitleDisplayNameNormalization()
testSubtitleDisplayNameUsesPreservedNamesForGenericVLCTracks()
testSubtitleOptionMappingIncludesNone()
testNativePlaybackTogglePolicy()
print("StreamResolverTests passed")
}
@ -505,6 +506,16 @@ struct StreamResolverTests {
assertEqual(options.map(\.name), ["None", "English", "Commentary"])
}
private static func testNativePlaybackTogglePolicy() {
assertEqual(NativePlaybackTogglePolicy.action(for: .playing), .pause)
assertEqual(NativePlaybackTogglePolicy.action(for: .buffering), .pause)
assertEqual(NativePlaybackTogglePolicy.action(for: .paused), .play)
assertEqual(NativePlaybackTogglePolicy.action(for: .stopped), .play)
assertEqual(NativePlaybackTogglePolicy.action(for: .ended), .play)
assertEqual(NativePlaybackTogglePolicy.action(for: .opening), .waitForTransition)
assertEqual(NativePlaybackTogglePolicy.action(for: .unknown), .waitForTransition)
}
private static func assertEqual<T: Equatable>(_ actual: T?, _ expected: T, file: StaticString = #file, line: UInt = #line) {
assert(actual == expected, "Expected \(String(describing: expected)), got \(String(describing: actual))", file: file, line: line)
}