import '../library/database.dart'; /// Summiert die Spieldauer aller Songs (in [songs]). Songs ohne bekannte /// Dauer (`durationMs == null`) werden übersprungen. Duration totalDuration(List songs) { var totalMs = 0; for (final song in songs) { final durationMs = song.durationMs; if (durationMs != null) { totalMs += durationMs; } } return Duration(milliseconds: totalMs); } /// Formatiert die Gesamtspieldauer der Bibliothek als "Xh Ym" bzw. "Ym" bei /// unter einer Stunde. String formatTotalDuration(List songs) { final duration = totalDuration(songs); final hours = duration.inHours; final minutes = duration.inMinutes.remainder(60); if (hours > 0) { return '${hours}h ${minutes}m'; } return '${minutes}m'; }