import Foundation extension Duration { /// Die Dauer als Gleitkommazahl in Sekunden. /// /// Foundation und AVFoundation rechnen in `TimeInterval`; `Duration` ist /// der genauere Typ, den der übrige Code verwendet. /// /// Sie liegt in der neutralen Schicht und nicht beim Server — das ist /// der Grund, warum Downloads und Wiedergabe ohne jeden Serverbezug /// übersetzen. In einem Servermodul stand sie einmal, „weil es die /// unterste Schicht ist"; das stimmte nur, solange es einen gab. public var seconds: Double { Double(components.seconds) + Double(components.attoseconds) / 1e18 } /// Die Dauer in ganzen Millisekunden. /// /// Die übliche Einheit, in der Server Fortschritt melden — Jellyfin /// allerdings in Ticks zu 100 Nanosekunden, was sein Adapter umrechnet. public var milliseconds: Int { Int(components.seconds * 1000 + components.attoseconds / 1_000_000_000_000_000) } }