瀏覽代碼

display sync targets

Luke Pulverenti 10 年之前
父節點
當前提交
7f7d2f85e3

+ 5 - 0
MediaBrowser.Model/Devices/DeviceQuery.cs

@@ -13,5 +13,10 @@ namespace MediaBrowser.Model.Devices
         /// </summary>
         /// <value><c>null</c> if [supports unique identifier] contains no value, <c>true</c> if [supports unique identifier]; otherwise, <c>false</c>.</value>
         public bool? SupportsUniqueIdentifier { get; set; }
+        /// <summary>
+        /// Gets or sets a value indicating whether [supports synchronize].
+        /// </summary>
+        /// <value><c>null</c> if [supports synchronize] contains no value, <c>true</c> if [supports synchronize]; otherwise, <c>false</c>.</value>
+        public bool? SupportsSync { get; set; }
     }
 }

+ 7 - 0
MediaBrowser.Server.Implementations/Devices/DeviceManager.cs

@@ -91,6 +91,13 @@ namespace MediaBrowser.Server.Implementations.Devices
                 devices = devices.Where(i => GetCapabilities(i.Id).SupportsContentUploading == val);
             }
 
+            if (query.SupportsSync.HasValue)
+            {
+                var val = query.SupportsSync.Value;
+
+                devices = devices.Where(i => GetCapabilities(i.Id).SupportsSync == val);
+            }
+
             if (query.SupportsUniqueIdentifier.HasValue)
             {
                 var val = query.SupportsUniqueIdentifier.Value;

+ 20 - 3
MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs

@@ -1,16 +1,33 @@
-using MediaBrowser.Controller.Sync;
+using MediaBrowser.Controller.Devices;
+using MediaBrowser.Controller.Sync;
+using MediaBrowser.Model.Devices;
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Sync;
-using System;
 using System.Collections.Generic;
+using System.Linq;
 
 namespace MediaBrowser.Server.Implementations.Sync
 {
     public class AppSyncProvider : ISyncProvider
     {
+        private readonly IDeviceManager _deviceManager;
+
+        public AppSyncProvider(IDeviceManager deviceManager)
+        {
+            _deviceManager = deviceManager;
+        }
+
         public IEnumerable<SyncTarget> GetSyncTargets()
         {
-            return new List<SyncTarget>();
+            return _deviceManager.GetDevices(new DeviceQuery
+            {
+                SupportsSync = true
+
+            }).Items.Select(i => new SyncTarget
+            {
+                Id = i.Id,
+                Name = i.Name
+            });
         }
 
         public DeviceProfile GetDeviceProfile(SyncTarget target)