2022-01-23 16:37:52 +00:00
|
|
|
using System;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
|
|
|
|
namespace MediaBrowser.Model.Session
|
|
|
|
|
{
|
2022-01-23 23:49:14 +00:00
|
|
|
/// <summary>
|
|
|
|
|
/// Extension methods for serializing TranscodeReason.
|
|
|
|
|
/// </summary>
|
2022-01-23 16:37:52 +00:00
|
|
|
public static class TranscodeReasonExtensions
|
|
|
|
|
{
|
2022-01-23 23:49:14 +00:00
|
|
|
private static readonly TranscodeReason[] _values = Enum.GetValues<TranscodeReason>();
|
2022-01-23 16:37:52 +00:00
|
|
|
|
2022-01-23 23:49:14 +00:00
|
|
|
/// <summary>
|
|
|
|
|
/// Serializes a TranscodeReason into a delimiter-separated string.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="reasons">The <see cref="TranscodeReason"/> enumeration.</param>
|
|
|
|
|
/// <param name="sep">The string separator to use. defualt <c>,</c>.</param>
|
|
|
|
|
/// <returns>string of transcode reasons delimited.</returns>
|
|
|
|
|
public static string Serialize(this TranscodeReason reasons, string sep = ",")
|
2022-01-23 16:37:52 +00:00
|
|
|
{
|
|
|
|
|
return string.Join(sep, reasons.ToArray());
|
|
|
|
|
}
|
|
|
|
|
|
2022-01-23 23:49:14 +00:00
|
|
|
/// <summary>
|
|
|
|
|
/// Serializes a TranscodeReason into an array of individual TranscodeReason bits.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="reasons">The <see cref="TranscodeReason"/> enumeration.</param>
|
|
|
|
|
/// <returns>Array of <c>TranscodeReason</c>.</returns>
|
|
|
|
|
public static TranscodeReason[] ToArray(this TranscodeReason reasons)
|
2022-01-23 16:37:52 +00:00
|
|
|
{
|
2022-01-23 23:49:14 +00:00
|
|
|
return _values.Where(r => r != 0 && reasons.HasFlag(r)).ToArray();
|
2022-01-23 16:37:52 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|