1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 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 =>
- {
- // Nothing beats direct playing a file
- if (i.PlayMethod == PlayMethod.DirectPlay && i.MediaSource.Protocol == MediaProtocol.File)
- {
- return 0;
- }
- return 1;
- }).ThenBy(i =>
- {
- switch (i.PlayMethod)
- {
- // Let's assume direct streaming a file is just as desirable as direct playing a remote url
- case PlayMethod.DirectStream:
- case PlayMethod.DirectPlay:
- return 0;
- default:
- return 1;
- }
- }).ThenBy(i =>
- {
- switch (i.MediaSource.Protocol)
- {
- case MediaProtocol.File:
- return 0;
- default:
- return 1;
- }
- }).ToList();
- }
- }
- }
|