// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. #nullable disable using System; using osu.Framework.Bindables; using osu.Game.Screens.Play; namespace osu.Game.Screens.OnlinePlay.Multiplayer.Spectate { /// /// Manages the synchronisation between one or more s in relation to a master clock. /// public interface ISyncManager { /// /// An event which is invoked when gameplay is ready to start. /// event Action ReadyToStart; /// /// The master clock which player clocks should synchronise to. /// GameplayClockContainer MasterClock { get; } /// /// An event which is invoked when the state of is changed. /// IBindable MasterState { get; } /// /// Adds a new managed . /// /// The added . ISpectatorPlayerClock AddClock(); /// /// Removes an , stopping it from being managed by this . /// /// The to remove. void RemoveClock(ISpectatorPlayerClock clock); } }