diff options
Diffstat (limited to 'MediaBrowser.Controller/SyncPlay')
| -rw-r--r-- | MediaBrowser.Controller/SyncPlay/GroupInfo.cs | 59 | ||||
| -rw-r--r-- | MediaBrowser.Controller/SyncPlay/GroupMember.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Controller/SyncPlay/ISyncPlayController.cs | 4 |
3 files changed, 28 insertions, 37 deletions
diff --git a/MediaBrowser.Controller/SyncPlay/GroupInfo.cs b/MediaBrowser.Controller/SyncPlay/GroupInfo.cs index 28a3ac505..a1cada25c 100644 --- a/MediaBrowser.Controller/SyncPlay/GroupInfo.cs +++ b/MediaBrowser.Controller/SyncPlay/GroupInfo.cs @@ -14,12 +14,12 @@ namespace MediaBrowser.Controller.SyncPlay public class GroupInfo { /// <summary> - /// Default ping value used for sessions. + /// The default ping value used for sessions. /// </summary> - public long DefaulPing { get; } = 500; + public const long DefaultPing = 500; /// <summary> - /// Gets or sets the group identifier. + /// Gets the group identifier. /// </summary> /// <value>The group identifier.</value> public Guid GroupId { get; } = Guid.NewGuid(); @@ -31,13 +31,13 @@ namespace MediaBrowser.Controller.SyncPlay public BaseItem PlayingItem { get; set; } /// <summary> - /// Gets or sets whether playback is paused. + /// Gets or sets a value indicating whether playback is paused. /// </summary> /// <value>Playback is paused.</value> public bool IsPaused { get; set; } /// <summary> - /// Gets or sets the position ticks. + /// Gets or sets a value indicating whether there are position ticks. /// </summary> /// <value>The position ticks.</value> public long PositionTicks { get; set; } @@ -58,7 +58,8 @@ namespace MediaBrowser.Controller.SyncPlay /// <summary> /// Checks if a session is in this group. /// </summary> - /// <value><c>true</c> if the session is in this group; <c>false</c> otherwise.</value> + /// <param name="sessionId">The session id to check.</param> + /// <returns><c>true</c> if the session is in this group; <c>false</c> otherwise.</returns> public bool ContainsSession(string sessionId) { return Participants.ContainsKey(sessionId); @@ -70,16 +71,14 @@ namespace MediaBrowser.Controller.SyncPlay /// <param name="session">The session.</param> public void AddSession(SessionInfo session) { - if (ContainsSession(session.Id.ToString())) - { - return; - } - - var member = new GroupMember(); - member.Session = session; - member.Ping = DefaulPing; - member.IsBuffering = false; - Participants[session.Id.ToString()] = member; + Participants.TryAdd( + session.Id, + new GroupMember + { + Session = session, + Ping = DefaultPing, + IsBuffering = false + }); } /// <summary> @@ -88,12 +87,7 @@ namespace MediaBrowser.Controller.SyncPlay /// <param name="session">The session.</param> public void RemoveSession(SessionInfo session) { - if (!ContainsSession(session.Id.ToString())) - { - return; - } - - Participants.Remove(session.Id.ToString(), out _); + Participants.Remove(session.Id); } /// <summary> @@ -103,25 +97,24 @@ namespace MediaBrowser.Controller.SyncPlay /// <param name="ping">The ping.</param> public void UpdatePing(SessionInfo session, long ping) { - if (!ContainsSession(session.Id.ToString())) + if (Participants.TryGetValue(session.Id, out GroupMember value)) { - return; + value.Ping = ping; } - - Participants[session.Id.ToString()].Ping = ping; } /// <summary> /// Gets the highest ping in the group. /// </summary> - /// <value name="session">The highest ping in the group.</value> + /// <returns>The highest ping in the group.</returns> public long GetHighestPing() { - long max = Int64.MinValue; + long max = long.MinValue; foreach (var session in Participants.Values) { max = Math.Max(max, session.Ping); } + return max; } @@ -132,18 +125,16 @@ namespace MediaBrowser.Controller.SyncPlay /// <param name="isBuffering">The state.</param> public void SetBuffering(SessionInfo session, bool isBuffering) { - if (!ContainsSession(session.Id.ToString())) + if (Participants.TryGetValue(session.Id, out GroupMember value)) { - return; + value.IsBuffering = isBuffering; } - - Participants[session.Id.ToString()].IsBuffering = isBuffering; } /// <summary> /// Gets the group buffering state. /// </summary> - /// <value><c>true</c> if there is a session buffering in the group; <c>false</c> otherwise.</value> + /// <returns><c>true</c> if there is a session buffering in the group; <c>false</c> otherwise.</returns> public bool IsBuffering() { foreach (var session in Participants.Values) @@ -160,7 +151,7 @@ namespace MediaBrowser.Controller.SyncPlay /// <summary> /// Checks if the group is empty. /// </summary> - /// <value><c>true</c> if the group is empty; <c>false</c> otherwise.</value> + /// <returns><c>true</c> if the group is empty; <c>false</c> otherwise.</returns> public bool IsEmpty() { return Participants.Count == 0; diff --git a/MediaBrowser.Controller/SyncPlay/GroupMember.cs b/MediaBrowser.Controller/SyncPlay/GroupMember.cs index a3975c334..cde6f8e8c 100644 --- a/MediaBrowser.Controller/SyncPlay/GroupMember.cs +++ b/MediaBrowser.Controller/SyncPlay/GroupMember.cs @@ -8,7 +8,7 @@ namespace MediaBrowser.Controller.SyncPlay public class GroupMember { /// <summary> - /// Gets or sets whether this member is buffering. + /// Gets or sets a value indicating whether this member is buffering. /// </summary> /// <value><c>true</c> if member is buffering; <c>false</c> otherwise.</value> public bool IsBuffering { get; set; } diff --git a/MediaBrowser.Controller/SyncPlay/ISyncPlayController.cs b/MediaBrowser.Controller/SyncPlay/ISyncPlayController.cs index de1fcd259..60d17fe36 100644 --- a/MediaBrowser.Controller/SyncPlay/ISyncPlayController.cs +++ b/MediaBrowser.Controller/SyncPlay/ISyncPlayController.cs @@ -33,7 +33,7 @@ namespace MediaBrowser.Controller.SyncPlay /// </summary> /// <param name="session">The session.</param> /// <param name="cancellationToken">The cancellation token.</param> - void InitGroup(SessionInfo session, CancellationToken cancellationToken); + void CreateGroup(SessionInfo session, CancellationToken cancellationToken); /// <summary> /// Adds the session to the group. @@ -64,4 +64,4 @@ namespace MediaBrowser.Controller.SyncPlay /// <value>The group info for the clients.</value> GroupInfoView GetInfo(); } -}
\ No newline at end of file +} |
