$FILES = Get-ChildItem -Path lib, test -Recurse -Filter "*.dart" -File -ErrorAction SilentlyContinue | Where-Object { $_.Name -notmatch '\.(g|freezed)\.dart$' } | Select-Object -ExpandProperty FullName; if (-not $FILES) { Write-Host "No Dart files found to format"; exit 0 } else { dart format --output=write --set-exit-if-changed $FILES }
31 lines
1.0 KiB
Dart
31 lines
1.0 KiB
Dart
import 'plex_media_info.dart';
|
|
import 'plex_media_version.dart';
|
|
|
|
/// Consolidated data model containing all information needed for video playback.
|
|
/// This model combines data from multiple Plex API endpoints to reduce redundant requests.
|
|
class PlexVideoPlaybackData {
|
|
/// Direct video URL for playback
|
|
final String? videoUrl;
|
|
|
|
/// Media information including audio/subtitle tracks and chapters
|
|
final PlexMediaInfo? mediaInfo;
|
|
|
|
/// Available media versions/qualities for this content
|
|
final List<PlexMediaVersion> availableVersions;
|
|
|
|
PlexVideoPlaybackData({
|
|
required this.videoUrl,
|
|
required this.mediaInfo,
|
|
required this.availableVersions,
|
|
});
|
|
|
|
/// Returns true if this playback data has a valid video URL
|
|
bool get hasValidVideoUrl => videoUrl != null && videoUrl!.isNotEmpty;
|
|
|
|
/// Returns true if media info is available
|
|
bool get hasMediaInfo => mediaInfo != null;
|
|
|
|
/// Returns true if there are multiple media versions available
|
|
bool get hasMultipleVersions => availableVersions.length > 1;
|
|
}
|