| 1234567891011121314151617181920212223242526272829303132333435363738 |
- using ARMeilleure.Translation.PTC;
- using System;
- namespace Ryujinx.Cpu.Jit
- {
- public class JitDiskCacheLoadState : IDiskCacheLoadState
- {
- /// <inheritdoc/>
- public event Action<LoadState, int, int> StateChanged;
- private readonly IPtcLoadState _loadState;
- public JitDiskCacheLoadState(IPtcLoadState loadState)
- {
- loadState.PtcStateChanged += LoadStateChanged;
- _loadState = loadState;
- }
- private void LoadStateChanged(PtcLoadingState newState, int current, int total)
- {
- LoadState state = newState switch
- {
- PtcLoadingState.Start => LoadState.Unloaded,
- PtcLoadingState.Loading => LoadState.Loading,
- PtcLoadingState.Loaded => LoadState.Loaded,
- _ => throw new ArgumentException($"Invalid load state \"{newState}\".")
- };
- StateChanged?.Invoke(state, current, total);
- }
- /// <inheritdoc/>
- public void Cancel()
- {
- _loadState.Continue();
- }
- }
- }
|