2
0

ISyncPlayController.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System;
  2. using System.Threading;
  3. using MediaBrowser.Controller.Session;
  4. using MediaBrowser.Model.SyncPlay;
  5. namespace MediaBrowser.Controller.SyncPlay
  6. {
  7. /// <summary>
  8. /// Interface ISyncPlayController.
  9. /// </summary>
  10. public interface ISyncPlayController
  11. {
  12. /// <summary>
  13. /// Gets the group id.
  14. /// </summary>
  15. /// <value>The group id.</value>
  16. Guid GetGroupId();
  17. /// <summary>
  18. /// Gets the playing item id.
  19. /// </summary>
  20. /// <value>The playing item id.</value>
  21. Guid GetPlayingItemId();
  22. /// <summary>
  23. /// Checks if the group is empty.
  24. /// </summary>
  25. /// <value>If the group is empty.</value>
  26. bool IsGroupEmpty();
  27. /// <summary>
  28. /// Initializes the group with the session's info.
  29. /// </summary>
  30. /// <param name="session">The session.</param>
  31. /// <param name="cancellationToken">The cancellation token.</param>
  32. void CreateGroup(SessionInfo session, CancellationToken cancellationToken);
  33. /// <summary>
  34. /// Adds the session to the group.
  35. /// </summary>
  36. /// <param name="session">The session.</param>
  37. /// <param name="request">The request.</param>
  38. /// <param name="cancellationToken">The cancellation token.</param>
  39. void SessionJoin(SessionInfo session, JoinGroupRequest request, CancellationToken cancellationToken);
  40. /// <summary>
  41. /// Removes the session from the group.
  42. /// </summary>
  43. /// <param name="session">The session.</param>
  44. /// <param name="cancellationToken">The cancellation token.</param>
  45. void SessionLeave(SessionInfo session, CancellationToken cancellationToken);
  46. /// <summary>
  47. /// Handles the requested action by the session.
  48. /// </summary>
  49. /// <param name="session">The session.</param>
  50. /// <param name="request">The requested action.</param>
  51. /// <param name="cancellationToken">The cancellation token.</param>
  52. void HandleRequest(SessionInfo session, PlaybackRequest request, CancellationToken cancellationToken);
  53. /// <summary>
  54. /// Gets the info about the group for the clients.
  55. /// </summary>
  56. /// <value>The group info for the clients.</value>
  57. GroupInfoView GetInfo();
  58. }
  59. }