aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/Dlna/ConditionProcessor.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Model/Dlna/ConditionProcessor.cs')
-rw-r--r--MediaBrowser.Model/Dlna/ConditionProcessor.cs284
1 files changed, 0 insertions, 284 deletions
diff --git a/MediaBrowser.Model/Dlna/ConditionProcessor.cs b/MediaBrowser.Model/Dlna/ConditionProcessor.cs
deleted file mode 100644
index bd3dc6fd2..000000000
--- a/MediaBrowser.Model/Dlna/ConditionProcessor.cs
+++ /dev/null
@@ -1,284 +0,0 @@
-using MediaBrowser.Model.Extensions;
-using MediaBrowser.Model.MediaInfo;
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-
-namespace MediaBrowser.Model.Dlna
-{
- public class ConditionProcessor
- {
- public bool IsVideoConditionSatisfied(ProfileCondition condition,
- int? width,
- int? height,
- int? videoBitDepth,
- int? videoBitrate,
- string videoProfile,
- double? videoLevel,
- float? videoFramerate,
- int? packetLength,
- TransportStreamTimestamp? timestamp,
- bool? isAnamorphic,
- bool? isInterlaced,
- int? refFrames,
- int? numVideoStreams,
- int? numAudioStreams,
- string videoCodecTag,
- bool? isAvc )
- {
- switch (condition.Property)
- {
- case ProfileConditionValue.IsInterlaced:
- return IsConditionSatisfied(condition, isInterlaced);
- case ProfileConditionValue.IsAnamorphic:
- return IsConditionSatisfied(condition, isAnamorphic);
- case ProfileConditionValue.IsAvc:
- return IsConditionSatisfied(condition, isAvc);
- case ProfileConditionValue.VideoFramerate:
- return IsConditionSatisfied(condition, videoFramerate);
- case ProfileConditionValue.VideoLevel:
- return IsConditionSatisfied(condition, videoLevel);
- case ProfileConditionValue.VideoProfile:
- return IsConditionSatisfied(condition, videoProfile);
- case ProfileConditionValue.VideoCodecTag:
- return IsConditionSatisfied(condition, videoCodecTag);
- case ProfileConditionValue.PacketLength:
- return IsConditionSatisfied(condition, packetLength);
- case ProfileConditionValue.VideoBitDepth:
- return IsConditionSatisfied(condition, videoBitDepth);
- case ProfileConditionValue.VideoBitrate:
- return IsConditionSatisfied(condition, videoBitrate);
- case ProfileConditionValue.Height:
- return IsConditionSatisfied(condition, height);
- case ProfileConditionValue.Width:
- return IsConditionSatisfied(condition, width);
- case ProfileConditionValue.RefFrames:
- return IsConditionSatisfied(condition, refFrames);
- case ProfileConditionValue.NumAudioStreams:
- return IsConditionSatisfied(condition, numAudioStreams);
- case ProfileConditionValue.NumVideoStreams:
- return IsConditionSatisfied(condition, numVideoStreams);
- case ProfileConditionValue.VideoTimestamp:
- return IsConditionSatisfied(condition, timestamp);
- default:
- return true;
- }
- }
-
- public bool IsImageConditionSatisfied(ProfileCondition condition, int? width, int? height)
- {
- switch (condition.Property)
- {
- case ProfileConditionValue.Height:
- return IsConditionSatisfied(condition, height);
- case ProfileConditionValue.Width:
- return IsConditionSatisfied(condition, width);
- default:
- throw new ArgumentException("Unexpected condition on image file: " + condition.Property);
- }
- }
-
- public bool IsAudioConditionSatisfied(ProfileCondition condition, int? audioChannels, int? audioBitrate, int? audioSampleRate, int? audioBitDepth)
- {
- switch (condition.Property)
- {
- case ProfileConditionValue.AudioBitrate:
- return IsConditionSatisfied(condition, audioBitrate);
- case ProfileConditionValue.AudioChannels:
- return IsConditionSatisfied(condition, audioChannels);
- case ProfileConditionValue.AudioSampleRate:
- return IsConditionSatisfied(condition, audioSampleRate);
- case ProfileConditionValue.AudioBitDepth:
- return IsConditionSatisfied(condition, audioBitDepth);
- default:
- throw new ArgumentException("Unexpected condition on audio file: " + condition.Property);
- }
- }
-
- public bool IsVideoAudioConditionSatisfied(ProfileCondition condition,
- int? audioChannels,
- int? audioBitrate,
- int? audioSampleRate,
- int? audioBitDepth,
- string audioProfile,
- bool? isSecondaryTrack)
- {
- switch (condition.Property)
- {
- case ProfileConditionValue.AudioProfile:
- return IsConditionSatisfied(condition, audioProfile);
- case ProfileConditionValue.AudioBitrate:
- return IsConditionSatisfied(condition, audioBitrate);
- case ProfileConditionValue.AudioChannels:
- return IsConditionSatisfied(condition, audioChannels);
- case ProfileConditionValue.IsSecondaryAudio:
- return IsConditionSatisfied(condition, isSecondaryTrack);
- case ProfileConditionValue.AudioSampleRate:
- return IsConditionSatisfied(condition, audioSampleRate);
- case ProfileConditionValue.AudioBitDepth:
- return IsConditionSatisfied(condition, audioBitDepth);
- default:
- throw new ArgumentException("Unexpected condition on audio file: " + condition.Property);
- }
- }
-
- private bool IsConditionSatisfied(ProfileCondition condition, int? currentValue)
- {
- if (!currentValue.HasValue)
- {
- // If the value is unknown, it satisfies if not marked as required
- return !condition.IsRequired;
- }
-
- int expected;
- if (int.TryParse(condition.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out expected))
- {
- switch (condition.Condition)
- {
- case ProfileConditionType.Equals:
- case ProfileConditionType.EqualsAny:
- return currentValue.Value.Equals(expected);
- case ProfileConditionType.GreaterThanEqual:
- return currentValue.Value >= expected;
- case ProfileConditionType.LessThanEqual:
- return currentValue.Value <= expected;
- case ProfileConditionType.NotEquals:
- return !currentValue.Value.Equals(expected);
- default:
- throw new InvalidOperationException("Unexpected ProfileConditionType: " + condition.Condition);
- }
- }
-
- return false;
- }
-
- private bool IsConditionSatisfied(ProfileCondition condition, string currentValue)
- {
- if (string.IsNullOrEmpty(currentValue))
- {
- // If the value is unknown, it satisfies if not marked as required
- return !condition.IsRequired;
- }
-
- string expected = condition.Value;
-
- switch (condition.Condition)
- {
- case ProfileConditionType.EqualsAny:
- {
- return ListHelper.ContainsIgnoreCase(expected.Split('|'), currentValue);
- }
- case ProfileConditionType.Equals:
- return StringHelper.EqualsIgnoreCase(currentValue, expected);
- case ProfileConditionType.NotEquals:
- return !StringHelper.EqualsIgnoreCase(currentValue, expected);
- default:
- throw new InvalidOperationException("Unexpected ProfileConditionType: " + condition.Condition);
- }
- }
-
- private bool IsConditionSatisfied(ProfileCondition condition, bool? currentValue)
- {
- if (!currentValue.HasValue)
- {
- // If the value is unknown, it satisfies if not marked as required
- return !condition.IsRequired;
- }
-
- bool expected;
- if (bool.TryParse(condition.Value, out expected))
- {
- switch (condition.Condition)
- {
- case ProfileConditionType.Equals:
- return currentValue.Value == expected;
- case ProfileConditionType.NotEquals:
- return currentValue.Value != expected;
- default:
- throw new InvalidOperationException("Unexpected ProfileConditionType: " + condition.Condition);
- }
- }
-
- return false;
- }
-
- private bool IsConditionSatisfied(ProfileCondition condition, float? currentValue)
- {
- if (!currentValue.HasValue)
- {
- // If the value is unknown, it satisfies if not marked as required
- return !condition.IsRequired;
- }
-
- float expected;
- if (float.TryParse(condition.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out expected))
- {
- switch (condition.Condition)
- {
- case ProfileConditionType.Equals:
- return currentValue.Value.Equals(expected);
- case ProfileConditionType.GreaterThanEqual:
- return currentValue.Value >= expected;
- case ProfileConditionType.LessThanEqual:
- return currentValue.Value <= expected;
- case ProfileConditionType.NotEquals:
- return !currentValue.Value.Equals(expected);
- default:
- throw new InvalidOperationException("Unexpected ProfileConditionType: " + condition.Condition);
- }
- }
-
- return false;
- }
-
- private bool IsConditionSatisfied(ProfileCondition condition, double? currentValue)
- {
- if (!currentValue.HasValue)
- {
- // If the value is unknown, it satisfies if not marked as required
- return !condition.IsRequired;
- }
-
- double expected;
- if (double.TryParse(condition.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out expected))
- {
- switch (condition.Condition)
- {
- case ProfileConditionType.Equals:
- return currentValue.Value.Equals(expected);
- case ProfileConditionType.GreaterThanEqual:
- return currentValue.Value >= expected;
- case ProfileConditionType.LessThanEqual:
- return currentValue.Value <= expected;
- case ProfileConditionType.NotEquals:
- return !currentValue.Value.Equals(expected);
- default:
- throw new InvalidOperationException("Unexpected ProfileConditionType: " + condition.Condition);
- }
- }
-
- return false;
- }
-
- private bool IsConditionSatisfied(ProfileCondition condition, TransportStreamTimestamp? timestamp)
- {
- if (!timestamp.HasValue)
- {
- // If the value is unknown, it satisfies if not marked as required
- return !condition.IsRequired;
- }
-
- TransportStreamTimestamp expected = (TransportStreamTimestamp)Enum.Parse(typeof(TransportStreamTimestamp), condition.Value, true);
-
- switch (condition.Condition)
- {
- case ProfileConditionType.Equals:
- return timestamp == expected;
- case ProfileConditionType.NotEquals:
- return timestamp != expected;
- default:
- throw new InvalidOperationException("Unexpected ProfileConditionType: " + condition.Condition);
- }
- }
- }
-}