aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.MediaEncoding/Subtitles/SubtitleFormatExtensions.cs
blob: 88c2bf3db294d30b8d2a284d01913188700d388b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System.Diagnostics.CodeAnalysis;
using Nikse.SubtitleEdit.Core.SubtitleFormats;

namespace MediaBrowser.MediaEncoding.Subtitles;

internal static class SubtitleFormatExtensions
{
    /// <summary>
    /// Will try to find errors if supported by provider.
    /// </summary>
    /// <param name="format">The subtitle format.</param>
    /// <param name="errors">The out errors value.</param>
    /// <returns>True if errors are available for given format.</returns>
    public static bool TryGetErrors(this SubtitleFormat format, [NotNullWhen(true)] out string? errors)
    {
        errors = format switch
        {
            SubStationAlpha ssa => ssa.Errors,
            AdvancedSubStationAlpha assa => assa.Errors,
            SubRip subRip => subRip.Errors,
            MicroDvd microDvd => microDvd.Errors,
            DCinemaSmpte2007 smpte2007 => smpte2007.Errors,
            DCinemaSmpte2010 smpte2010 => smpte2010.Errors,
            _ => null,
        };

        return !string.IsNullOrWhiteSpace(errors);
    }
}