using System; using System.Text.RegularExpressions; namespace MediaBrowser.Dlna.PlayTo.Configuration { public class TranscodeSettings { /// /// Gets or sets the container. /// /// /// The container. /// public string Container { get; set; } /// /// Gets or sets the target container. /// /// /// The target container. /// public string TargetContainer { get; set; } /// /// Gets or sets the Mimetype to enforce /// /// /// The MimeType. /// public string MimeType { get; set; } /// /// The default transcoding settings /// private static readonly TranscodeSettings[] DefaultTranscodingSettings = { new TranscodeSettings { Container = "mkv", TargetContainer = "ts" }, new TranscodeSettings { Container = "flac", TargetContainer = "mp3" }, new TranscodeSettings { Container = "m4a", TargetContainer = "mp3" } }; public static TranscodeSettings[] GetDefaultTranscodingSettings() { return DefaultTranscodingSettings; } /// /// Gets the profile settings. /// /// The device properties. /// The TranscodeSettings for the device public static TranscodeSettings[] GetProfileSettings(DeviceProperties deviceProperties) { foreach (var profile in PlayToConfiguration.Profiles) { if (!string.IsNullOrEmpty(profile.FriendlyName)) { if (!Regex.IsMatch(deviceProperties.Name, profile.FriendlyName)) continue; } if (!string.IsNullOrEmpty(profile.ModelNumber)) { if (!Regex.IsMatch(deviceProperties.ModelNumber, profile.ModelNumber)) continue; } if (!string.IsNullOrEmpty(profile.ModelName)) { if (!Regex.IsMatch(deviceProperties.ModelName, profile.ModelName)) continue; } deviceProperties.DisplayName = profile.Name; deviceProperties.ClientType = profile.ClientType; return profile.TranscodeSettings; } // Since we don't have alot of info about different devices we go down the safe // route abd use the default transcoding settings if no profile exist return GetDefaultTranscodingSettings(); } } }