//------------------------------------------------------------------------------
//
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
//
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System;
///
/// Indicates how subtitles should be included: * 'auto' - Compute the appropriate subtitle setting automatically * 'burn' - Burn the selected subtitle; auto if no selected subtitle * 'none' - Ignore all subtitle streams * 'sidecar' - The selected subtitle should be provided as a sidecar * 'embedded' - The selected subtitle should be provided as an embedded stream * 'segmented' - The selected subtitle should be provided as a segmented stream
///
///
///
///
///
public enum Subtitles
{
[JsonProperty("auto")]
Auto,
[JsonProperty("burn")]
Burn,
[JsonProperty("none")]
None,
[JsonProperty("sidecar")]
Sidecar,
[JsonProperty("embedded")]
Embedded,
[JsonProperty("segmented")]
Segmented,
[JsonProperty("unknown")]
Unknown,
}
public static class SubtitlesExtension
{
public static string Value(this Subtitles value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static Subtitles ToEnum(this string value)
{
foreach(var field in typeof(Subtitles).GetFields())
{
var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
if (attributes.Length == 0)
{
continue;
}
var attribute = attributes[0] as JsonPropertyAttribute;
if (attribute != null && attribute.PropertyName == value)
{
var enumVal = field.GetValue(null);
if (enumVal is Subtitles)
{
return (Subtitles)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum Subtitles");
}
}
}