aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync/SyncManager.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncManager.cs59
1 files changed, 47 insertions, 12 deletions
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
index 0bf9a2e23..b75f6e761 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
@@ -982,7 +982,7 @@ namespace MediaBrowser.Server.Implementations.Sync
public AudioOptions GetAudioOptions(SyncJobItem jobItem, SyncJob job)
{
- var profile = GetDeviceProfile(jobItem.TargetId, null);
+ var profile = GetDeviceProfile(jobItem.TargetId, null, null);
return new AudioOptions
{
@@ -992,7 +992,7 @@ namespace MediaBrowser.Server.Implementations.Sync
public VideoOptions GetVideoOptions(SyncJobItem jobItem, SyncJob job)
{
- var profile = GetDeviceProfile(jobItem.TargetId, job.Quality);
+ var profile = GetDeviceProfile(jobItem.TargetId, job.Profile, job.Quality);
return new VideoOptions
{
@@ -1000,7 +1000,7 @@ namespace MediaBrowser.Server.Implementations.Sync
};
}
- public DeviceProfile GetDeviceProfile(string targetId, string quality)
+ private DeviceProfile GetDeviceProfile(string targetId, string profile, string quality)
{
foreach (var provider in _providers)
{
@@ -1008,7 +1008,7 @@ namespace MediaBrowser.Server.Implementations.Sync
{
if (string.Equals(target.Id, targetId, StringComparison.OrdinalIgnoreCase))
{
- return GetDeviceProfile(provider, target, quality);
+ return GetDeviceProfile(provider, target, profile, quality);
}
}
}
@@ -1016,22 +1016,22 @@ namespace MediaBrowser.Server.Implementations.Sync
return null;
}
- private DeviceProfile GetDeviceProfile(ISyncProvider provider, SyncTarget target, string quality)
+ private DeviceProfile GetDeviceProfile(ISyncProvider provider, SyncTarget target, string profile, string quality)
{
var hasProfile = provider as IHasSyncQuality;
if (hasProfile != null)
{
- return hasProfile.GetDeviceProfile(target, quality);
+ return hasProfile.GetDeviceProfile(target, profile, quality);
}
- return GetDefaultProfile(quality);
+ return GetDeviceProfile(profile, quality);
}
- private DeviceProfile GetDefaultProfile(string quality)
+ private DeviceProfile GetDeviceProfile(string profile, string quality)
{
- var profile = new CloudSyncProfile(true, false);
- var maxBitrate = profile.MaxStaticBitrate;
+ var deviceProfile = new CloudSyncProfile(true, false);
+ var maxBitrate = deviceProfile.MaxStaticBitrate;
if (maxBitrate.HasValue)
{
@@ -1044,10 +1044,10 @@ namespace MediaBrowser.Server.Implementations.Sync
maxBitrate = Convert.ToInt32(maxBitrate.Value * .5);
}
- profile.MaxStaticBitrate = maxBitrate;
+ deviceProfile.MaxStaticBitrate = maxBitrate;
}
- return profile;
+ return deviceProfile;
}
public IEnumerable<SyncQualityOption> GetQualityOptions(string targetId)
@@ -1100,5 +1100,40 @@ namespace MediaBrowser.Server.Implementations.Sync
}
};
}
+
+ public IEnumerable<SyncQualityOption> GetProfileOptions(string targetId)
+ {
+ foreach (var provider in _providers)
+ {
+ foreach (var target in GetSyncTargets(provider))
+ {
+ if (string.Equals(target.Id, targetId, StringComparison.OrdinalIgnoreCase))
+ {
+ return GetProfileOptions(provider, target);
+ }
+ }
+ }
+
+ return new List<SyncQualityOption>();
+ }
+
+ private IEnumerable<SyncQualityOption> GetProfileOptions(ISyncProvider provider, SyncTarget target)
+ {
+ var hasQuality = provider as IHasSyncQuality;
+ if (hasQuality != null)
+ {
+ return hasQuality.GetProfileOptions(target);
+ }
+
+ var list = new List<SyncQualityOption>();
+
+ list.Add(new SyncQualityOption
+ {
+ Name = SyncQuality.Low.ToString(),
+ Id = SyncQuality.Low.ToString()
+ });
+
+ return list;
+ }
}
}