using ARMeilleure.Translation.PTC; using System; namespace Ryujinx.Cpu.Jit { public class JitDiskCacheLoadState : IDiskCacheLoadState { /// public event Action 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); } /// public void Cancel() { _loadState.Continue(); } } }