Dean Herbert
28b45fa899
Add assertions against null reference for connection usages
2022-02-15 15:19:50 +09:00
Dan Balasescu
ffc4c64f7e
Unify namings across the board
2022-02-09 12:10:07 +09:00
Dan Balasescu
886d1d2df6
Refactorings
2022-02-08 21:29:43 +09:00
Dan Balasescu
c1766d8a41
Add paused state
2022-02-08 20:29:53 +09:00
Dan Balasescu
4c76027178
Rename completed state to passed
2022-02-08 20:29:49 +09:00
Dan Balasescu
81a22dbd29
Add back playing users list
2022-02-02 23:19:43 +09:00
Dan Balasescu
fcbba3d948
Rename PlayingUserStates -> WatchingUserStates
2022-02-02 23:11:29 +09:00
Dan Balasescu
6d3bc005ea
Merge branch 'master' into spectator-state-rework
2022-02-02 18:57:04 +09:00
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 Component
s
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