// Copyright (c) Arlo Godfrey. All Rights Reserved. // Licensed under the GNU Lesser General Public License, Version 3.0 with additional terms. // See the LICENSE, LICENSE.LESSER and LICENSE.ADDITIONAL files in the project root for more information. using System; using StrixMusic.Sdk.BaseModels; namespace StrixMusic.Sdk.ViewModels.Helpers.Comparers { /// /// Compares the duration/>. /// public sealed class DurationComparer : InversableComparer where TPlayableBase : IPlayableBase { /// /// Initializes a new instance of the class. /// /// Sets if the comparer operates in descending order. public DurationComparer(bool isDescending = false) : base(isDescending) { } /// public override int Compare(TPlayableBase x, TPlayableBase y) { int value = TimeSpan.Compare(x.Duration, y.Duration); return IsDescending ? -value : value; } } }