getAvailableQualities method

List<QualityOption> getAvailableQualities()

Get list of available quality options

Implementation

List<QualityOption> getAvailableQualities() {
  if (_currentManifest == null) {
    return [];
  }

  // Always include automatic option
  final List<QualityOption> qualities = [
    QualityOption(height: 0, label: "Auto")
  ];

  // Add available video qualities
  for (var stream in _currentManifest!.videoOnly) {
    // Get height from the videoResolution property
    final height = stream.videoResolution.height;
    if (height > 1080) {
      continue;
    }

    // Only add if we don't already have this resolution
    if (height > 0 && !qualities.any((q) => q.height == height)) {
      qualities.add(QualityOption(
        height: height,
        label: "${height}p",
      ));
    }
  }

  // Sort by height (highest first, but keep Auto at top)
  qualities.sublist(1).sort((a, b) => b.height.compareTo(a.height));

  return qualities;
}