diff options
Diffstat (limited to 'MediaBrowser.Dlna/ProfileSerialization/CodecProfile.cs')
| -rw-r--r-- | MediaBrowser.Dlna/ProfileSerialization/CodecProfile.cs | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/MediaBrowser.Dlna/ProfileSerialization/CodecProfile.cs b/MediaBrowser.Dlna/ProfileSerialization/CodecProfile.cs new file mode 100644 index 000000000..4619d91bc --- /dev/null +++ b/MediaBrowser.Dlna/ProfileSerialization/CodecProfile.cs @@ -0,0 +1,68 @@ +using MediaBrowser.Model.Extensions; +using System.Collections.Generic; +using System.Xml.Serialization; +using MediaBrowser.Model.Dlna; + +namespace MediaBrowser.Dlna.ProfileSerialization +{ + public class CodecProfile + { + [XmlAttribute("type")] + public CodecType Type { get; set; } + + public ProfileCondition[] Conditions { get; set; } + + public ProfileCondition[] ApplyConditions { get; set; } + + [XmlAttribute("codec")] + public string Codec { get; set; } + + [XmlAttribute("container")] + public string Container { get; set; } + + public CodecProfile() + { + Conditions = new ProfileCondition[] {}; + ApplyConditions = new ProfileCondition[] { }; + } + + public List<string> GetCodecs() + { + List<string> list = new List<string>(); + foreach (string i in (Codec ?? string.Empty).Split(',')) + { + if (!string.IsNullOrEmpty(i)) list.Add(i); + } + return list; + } + + public List<string> GetContainers() + { + List<string> list = new List<string>(); + foreach (string i in (Container ?? string.Empty).Split(',')) + { + if (!string.IsNullOrEmpty(i)) list.Add(i); + } + return list; + } + + private bool ContainsContainer(string container) + { + List<string> containers = GetContainers(); + + return containers.Count == 0 || ListHelper.ContainsIgnoreCase(containers, container ?? string.Empty); + } + + public bool ContainsCodec(string codec, string container) + { + if (!ContainsContainer(container)) + { + return false; + } + + List<string> codecs = GetCodecs(); + + return codecs.Count == 0 || ListHelper.ContainsIgnoreCase(codecs, codec); + } + } +} |
