1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 16:25:32 +08:00
Commit Graph

137 Commits

Author SHA1 Message Date
Dan Balasescu
f4210f7a30 Rework spectator components to use new user state 2022-02-01 21:53:25 +09:00
Dan Balasescu
41007169f7 Give SpectatorState a user state 2022-02-01 21:51:05 +09:00
Dan Balasescu
502e6af008 Remove PlayingUsers list from SpectatorClient 2022-02-01 14:42:30 +09:00
Dan Balasescu
4727aeda01 Give last bundled replay frame the frame header 2022-01-31 18:53:47 +09:00
Dan Balasescu
3037a3a769 Purge final spectator frames before ending play 2022-01-28 22:26:05 +09:00
Dan Balasescu
397971c631 Change FrameDataBundle.Frames into an IList 2022-01-28 22:06:34 +09:00
Dean Herbert
7a333ffdcc Add a paired schedule in SpectatorClient.BeginPlaying
Optimally, I would like to remove the `Schedule` in `EndPlaying`, but it
turns out quite a few test are relying on this at very least. Adding a
paired schedule ensure that order of operations is correct, at least.
2021-12-06 17:07:19 +09:00
Dean Herbert
6a098a8634 Rename BeatmapInfo.OnlineBeatmapID to OnlineID to match interface 2021-11-12 17:46:24 +09:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Dean Herbert
853cf6feaa Rename last remaining BeatmapInfo Beatmap usage 2021-10-04 17:35:53 +09:00
Dean Herbert
32afd3f426 Replace all basic usages 2021-10-02 02:22:23 +09:00
smoogipoo
b807c161b4 Remove now-unused DI params 2021-09-14 17:25:57 +09:00
smoogipoo
6cffbee592 Fix random/target mods not working in spectator 2021-09-14 17:22:58 +09:00
smoogipoo
bca8a9ea53 Fix HandleFrame crashing when not playing 2021-05-31 10:02:02 +09:00
Dean Herbert
20f890cfd0
Merge branch 'master' into fix-spectator-playing-state-5 2021-05-21 16:49:22 +09:00
smoogipoo
7c59fb37f1 Move check into callback 2021-05-21 16:00:58 +09:00
smoogipoo
36aa186c6e Merge branch 'thread-safe-spectator-client' 2021-05-21 16:00:24 +09:00
smoogipoo
7f712a4d04 Fix EndPlaying potentially doing cross-thread mutation 2021-05-21 15:57:39 +09:00
smoogipoo
2fdf8aa1aa Add update thread assertions 2021-05-21 15:57:31 +09:00
smoogipoo
895eb14c5a Forcefully end playing to fix test failures 2021-05-21 14:09:30 +09:00
smoogipoo
e3284b976d Merge branch 'thread-safe-spectator-client' into fix-spectator-playing-state-5 2021-05-20 19:46:26 +09:00
smoogipoo
06c99e8c7c Fix race due to StopWatchingUser() being called asynchronously 2021-05-20 19:45:31 +09:00
smoogipoo
7ee81669f7 Remove bind helpers from SpectatorClient 2021-05-20 19:27:43 +09:00
smoogipoo
b515fe3cb1 Fix playing user state not removed on stop watching 2021-05-20 19:20:09 +09:00
smoogipoo
89b4f69588 Expose playing user states as bindable dictionary 2021-05-20 19:19:39 +09:00
smoogipoo
10597f7e6a Remove locking from SpectatorClient 2021-05-20 18:37:27 +09:00
smoogipoo
6eff8d513e Annotate nullables 2021-05-20 17:51:09 +09:00
smoogipoo
df80531a0a Split online connectivity into OnlineSpectatorClient 2021-05-20 16:30:56 +09:00
smoogipoo
6beeb7f7c4 Rename SpectatorStreamingClient -> SpectatorClient 2021-05-20 15:55:07 +09:00
Bartłomiej Dach
aaa7c7eb05 Handle null case explicitly in SpectatorState.Equals()
Uses the usual pattern of two `ReferenceEquals` checks against `this`
and `null` before proceeding to inspect field values. Doing this causes
the compiler to infer that at the point that field values are checked,
`other` can no longer viably be `null`.
2021-05-14 23:58:07 +02:00
smoogipoo
f4c96b2675 Only update playing user states when users are watched 2021-05-12 13:10:59 +09:00
smoogipoo
ad11818868 Remove watched users on stop watching 2021-05-12 13:05:02 +09:00
smoogipoo
4cc3321d54 Fix potential doubling of events 2021-04-20 21:20:08 +09:00
smoogipoo
c50b526ba0 Remove local state dictionary from SpectatorScreen 2021-04-19 16:48:55 +09:00
smoogipoo
83716ddb08 Rename currentUserStates -> playingUserStates 2021-04-19 16:07:00 +09:00
smoogipoo
de9e37857e Lock around playingUsers 2021-04-19 16:06:40 +09:00
smoogipoo
5885c24e00 Clear current user states on disconnect 2021-04-19 16:00:56 +09:00
smoogipoo
ca74f413cd Change to explicit method instead 2021-04-16 17:31:02 +09:00
smoogipoo
5652490d61 Fix OnUserBeganPlaying not being invoked if already watching 2021-04-16 14:11:55 +09:00
Dean Herbert
9ad38ab20e Move HubClientConnector retrieval to IAPIProvider 2021-02-15 16:43:56 +09:00
Salman Ahmed
d3c1b47592 Replace nullable API with null connector instead 2021-02-11 12:34:39 +03:00
Salman Ahmed
5fb99fdc52 Rename some members and extract connection closure to separate method 2021-02-11 10:49:16 +03:00
Salman Ahmed
f04d6d5e5e Update hub clients with changes to connecotr 2021-02-09 08:02:32 +03:00
Salman Ahmed
71e564d399 Revert clients to be Components 2021-02-09 07:46:00 +03:00
Salman Ahmed
f76f92515e Clean up spectator streaming client with new hub connector 2021-02-09 02:15:56 +03:00
Bartłomiej Dach
386f9f7842 Fix typos in comments 2021-01-28 22:36:07 +01:00
Dean Herbert
90a82f986b Fallback to using json for signalr communication if JIT is unavailable 2021-01-28 16:20:19 +09:00
Dean Herbert
15885c17af Remove unused usings 2021-01-26 18:07:43 +09:00
Dean Herbert
20cfa991bf Switch clients to MessagePack mode 2021-01-26 17:41:21 +09:00
Dean Herbert
9537090d28 Setup all spectator model classes for MessagePack 2021-01-26 16:39:35 +09:00
Dean Herbert
3d28a0ccef
Merge pull request #11271 from peppy/dev-server
Prefer connecting to dev server when running in DEBUG
2020-12-24 23:01:19 +09:00
Dean Herbert
323da82477 Add website root URL and update most links to use it
For what it's worth, I intentionally didn't include news / changelog /
supporter, because these should never change.
2020-12-24 18:11:42 +09:00
Dean Herbert
eb795a2127 Move all endpoint information to a configuration class 2020-12-24 17:58:38 +09:00
Dean Herbert
1f80f01b53 Add accuracy to frame bundle header 2020-12-24 14:46:52 +09:00
Dean Herbert
e89583d732 Prefer connecting to dev server when running in DEBUG 2020-12-24 01:33:19 +09:00
Dean Herbert
72d296f412 Add received timestamp and basic xmldoc for header class 2020-12-16 16:19:53 +09:00
Dean Herbert
84a0770789 Change frame header to use dictionary for compatibility 2020-12-16 15:35:46 +09:00
Dean Herbert
0d9c1cb5d3 Fix issues with data serialisation 2020-12-14 18:41:24 +09:00
Dean Herbert
64a2526678 Add header class and basic flow for propagating data updates 2020-12-14 17:33:23 +09:00
smoogipoo
d5dccbc3d7 Fix spectator not being thread-safe 2020-12-02 19:13:09 +09:00
Dean Herbert
a3c67aabe2 Merge branch 'master' into spectator-listing 2020-11-03 19:56:25 +09:00
Dean Herbert
ed30756c19 Add test coverage for new display (and remove live version for now) 2020-11-02 20:41:14 +09:00
Dean Herbert
a89aeaf1ce Add very basic connection status logging for spectator streaming client 2020-11-02 17:32:10 +09:00
Bartłomiej Dach
5903c3be90 Fix inaccurate xmldoc 2020-11-01 14:39:10 +01:00
Dean Herbert
c1e7cd6e47 Stop replay playback when frames are starved 2020-10-27 18:58:37 +09:00
Dean Herbert
154ccf1b49 Expose events from streaming client 2020-10-27 18:58:37 +09:00
Dean Herbert
68719bb23d Rename other variables to match 2020-10-27 10:59:24 +09:00
Bartłomiej Dach
7392876b5f Fix mania crashing due to spectator client handling frames with unconverted beatmap 2020-10-27 00:35:25 +01:00
Dean Herbert
dfe07271de Add very basic latency handling to spectator test 2020-10-26 16:31:39 +09:00
Dean Herbert
9caa7ff64d Remove debug endpoint 2020-10-26 13:38:05 +09:00
Dean Herbert
e20a986401 Add ruleset to state 2020-10-23 17:24:19 +09:00
Dean Herbert
e99cf369fa Don't worry about EndPlaying being invoked when not playing 2020-10-23 13:33:23 +09:00
Dean Herbert
54d666604b Fix incorrect order of flag settings 2020-10-22 22:56:23 +09:00
Dean Herbert
9f2f8d8cc7 Fix missing licence headers 2020-10-22 19:41:10 +09:00
Dean Herbert
147d502da1 Fix initial play state not being kept locally if not connected 2020-10-22 19:30:07 +09:00
Dean Herbert
ee2513bf4b Add batch sending 2020-10-22 19:17:19 +09:00
Dean Herbert
34e889e66e Don't watch every user in normal gameplay (but allow so in test) 2020-10-22 18:38:03 +09:00
Dean Herbert
1ab6f41b3b Add basic send and receive test 2020-10-22 18:10:27 +09:00
Dean Herbert
c834aa6051 Use APIMod for mod serialization 2020-10-22 17:48:15 +09:00
Dean Herbert
0611b30258 Drop webpack 2020-10-22 17:48:15 +09:00
Dean Herbert
05697dfe68 Add spectator state object support 2020-10-22 17:48:15 +09:00
Dean Herbert
2021945a8c Add retry/error handling logic 2020-10-22 17:48:15 +09:00
Dean Herbert
4788b4a643 Expose oauth access token via api interface 2020-10-22 17:48:15 +09:00
Dean Herbert
175fd512b0 Send frames to streaming client from replay recorder 2020-10-22 17:48:15 +09:00
Dean Herbert
93db75bd41 Begin shaping the spectator streaming component 2020-10-22 17:48:15 +09:00
Dean Herbert
db4dd3182b Add xmldoc to spectator interfaces 2020-10-22 14:46:21 +09:00
Dean Herbert
b39a4da6bc Add initial classes for spectator support 2020-10-22 14:46:21 +09:00