jellyfin/MediaBrowser.Model/Dlna/StreamInfoSorter.cs

48 lines
1.3 KiB
C#
Raw Normal View History

2015-03-26 20:31:57 +00:00
using MediaBrowser.Model.MediaInfo;
using MediaBrowser.Model.Session;
using System.Collections.Generic;
using System.Linq;
namespace MediaBrowser.Model.Dlna
{
public class StreamInfoSorter
{
public static List<StreamInfo> SortMediaSources(List<StreamInfo> streams)
{
return streams.OrderBy(i =>
2015-03-26 23:10:34 +00:00
{
// Nothing beats direct playing a file
if (i.PlayMethod == PlayMethod.DirectPlay && i.MediaSource.Protocol == MediaProtocol.File)
{
return 0;
}
return 1;
}).ThenBy(i =>
2015-03-26 20:31:57 +00:00
{
switch (i.PlayMethod)
{
2015-03-26 23:10:34 +00:00
// Let's assume direct streaming a file is just as desirable as direct playing a remote url
case PlayMethod.DirectStream:
2015-03-26 20:31:57 +00:00
case PlayMethod.DirectPlay:
return 0;
default:
2015-03-27 20:55:31 +00:00
return 1;
2015-03-26 20:31:57 +00:00
}
}).ThenBy(i =>
{
switch (i.MediaSource.Protocol)
{
case MediaProtocol.File:
return 0;
default:
return 1;
}
}).ToList();
}
}
}