public void SetPlaybackStateInternal(PlaybackStateChangedRequest changedRequest) { _loadedGameState = LoadedGameState.Loading; switch (changedRequest.State) { case PlaybackState.Loading: _loadedGameState = LoadedGameState.Loading; break; case PlaybackState.Loaded: _loadedGameState = LoadedGameState.Loaded; break; case PlaybackState.Playing: _loadedGameState = LoadedGameState.Playing; break; case PlaybackState.Paused: _loadedGameState = LoadedGameState.Paused; break; } if (changedRequest.StartTime == null) { _playingStartTime = null; } else { var dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc); dtDateTime = dtDateTime.AddSeconds(changedRequest.StartTime.UnixTimestamp); _playingStartTime = dtDateTime; } }
public override Task <PlaybackStateChangedResponse> PlaybackStateChanged(PlaybackStateChangedRequest request, ServerCallContext context) { _loadedGame.Value.SetPlaybackStateInternal(request); return(Task.FromResult(new PlaybackStateChangedResponse())); }