aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs43
1 files changed, 38 insertions, 5 deletions
diff --git a/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs b/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs
index c3cd047b6..6cc5be955 100644
--- a/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs
+++ b/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs
@@ -1,21 +1,54 @@
-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
+ public class AppSyncProvider : ISyncProvider, IHasUniqueTargetIds
{
+ 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 IEnumerable<SyncTarget> GetSyncTargets(string userId)
+ {
+ return _deviceManager.GetDevices(new DeviceQuery
+ {
+ SupportsSync = true,
+ UserId = userId
+
+ }).Items.Select(i => new SyncTarget
+ {
+ Id = i.Id,
+ Name = i.Name
+ });
}
public DeviceProfile GetDeviceProfile(SyncTarget target)
{
- return new DeviceProfile();
+ var caps = _deviceManager.GetCapabilities(target.Id);
+
+ return caps == null || caps.DeviceProfile == null ? new DeviceProfile() : caps.DeviceProfile;
}
public string Name