AppSyncProvider.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using MediaBrowser.Controller.Devices;
  2. using MediaBrowser.Controller.Sync;
  3. using MediaBrowser.Model.Devices;
  4. using MediaBrowser.Model.Dlna;
  5. using MediaBrowser.Model.Sync;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. namespace MediaBrowser.Server.Implementations.Sync
  9. {
  10. public class AppSyncProvider : ISyncProvider, IHasUniqueTargetIds, IHasSyncQuality
  11. {
  12. private readonly IDeviceManager _deviceManager;
  13. public AppSyncProvider(IDeviceManager deviceManager)
  14. {
  15. _deviceManager = deviceManager;
  16. }
  17. public IEnumerable<SyncTarget> GetSyncTargets(string userId)
  18. {
  19. return _deviceManager.GetDevices(new DeviceQuery
  20. {
  21. SupportsSync = true,
  22. UserId = userId
  23. }).Items.Select(i => new SyncTarget
  24. {
  25. Id = i.Id,
  26. Name = i.Name
  27. });
  28. }
  29. public DeviceProfile GetDeviceProfile(SyncTarget target)
  30. {
  31. var caps = _deviceManager.GetCapabilities(target.Id);
  32. return caps == null || caps.DeviceProfile == null ? new DeviceProfile() : caps.DeviceProfile;
  33. }
  34. public string Name
  35. {
  36. get { return "App Sync"; }
  37. }
  38. public IEnumerable<SyncTarget> GetAllSyncTargets()
  39. {
  40. return _deviceManager.GetDevices(new DeviceQuery
  41. {
  42. SupportsSync = true
  43. }).Items.Select(i => new SyncTarget
  44. {
  45. Id = i.Id,
  46. Name = i.Name
  47. });
  48. }
  49. public IEnumerable<SyncQualityOption> GetQualityOptions(SyncTarget target)
  50. {
  51. return new List<SyncQualityOption>
  52. {
  53. new SyncQualityOption
  54. {
  55. Name = SyncQuality.Original.ToString(),
  56. Id = SyncQuality.Original.ToString()
  57. },
  58. new SyncQualityOption
  59. {
  60. Name = SyncQuality.High.ToString(),
  61. Id = SyncQuality.High.ToString(),
  62. IsDefault = true
  63. },
  64. new SyncQualityOption
  65. {
  66. Name = SyncQuality.Medium.ToString(),
  67. Id = SyncQuality.Medium.ToString()
  68. },
  69. new SyncQualityOption
  70. {
  71. Name = SyncQuality.Low.ToString(),
  72. Id = SyncQuality.Low.ToString()
  73. }
  74. };
  75. }
  76. }
  77. }