Expose events from streaming client

This commit is contained in:
Dean Herbert 2020-10-26 20:05:11 +09:00
parent 5fd97bd043
commit 154ccf1b49

View File

@ -64,6 +64,16 @@ namespace osu.Game.Online.Spectator
/// </summary> /// </summary>
public event Action<int, FrameDataBundle> OnNewFrames; public event Action<int, FrameDataBundle> OnNewFrames;
/// <summary>
/// Called whenever a user starts a play session.
/// </summary>
public event Action<int, SpectatorState> OnUserBeganPlaying;
/// <summary>
/// Called whenever a user starts a play session.
/// </summary>
public event Action<int, SpectatorState> OnUserFinishedPlaying;
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load() private void load()
{ {
@ -154,18 +164,24 @@ namespace osu.Game.Online.Spectator
if (!playingUsers.Contains(userId)) if (!playingUsers.Contains(userId))
playingUsers.Add(userId); playingUsers.Add(userId);
OnUserBeganPlaying?.Invoke(userId, state);
return Task.CompletedTask; return Task.CompletedTask;
} }
Task ISpectatorClient.UserFinishedPlaying(int userId, SpectatorState state) Task ISpectatorClient.UserFinishedPlaying(int userId, SpectatorState state)
{ {
playingUsers.Remove(userId); playingUsers.Remove(userId);
OnUserFinishedPlaying?.Invoke(userId, state);
return Task.CompletedTask; return Task.CompletedTask;
} }
Task ISpectatorClient.UserSentFrames(int userId, FrameDataBundle data) Task ISpectatorClient.UserSentFrames(int userId, FrameDataBundle data)
{ {
OnNewFrames?.Invoke(userId, data); OnNewFrames?.Invoke(userId, data);
return Task.CompletedTask; return Task.CompletedTask;
} }