diff options
Diffstat (limited to 'src/core/tools/freezer.cpp')
| -rw-r--r-- | src/core/tools/freezer.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/core/tools/freezer.cpp b/src/core/tools/freezer.cpp index 98ebbbf32..9d42c726e 100644 --- a/src/core/tools/freezer.cpp +++ b/src/core/tools/freezer.cpp | |||
| @@ -51,18 +51,17 @@ void MemoryWriteWidth(Core::Memory::Memory& memory, u32 width, VAddr addr, u64 v | |||
| 51 | 51 | ||
| 52 | Freezer::Freezer(Core::Timing::CoreTiming& core_timing_, Core::Memory::Memory& memory_) | 52 | Freezer::Freezer(Core::Timing::CoreTiming& core_timing_, Core::Memory::Memory& memory_) |
| 53 | : core_timing{core_timing_}, memory{memory_} { | 53 | : core_timing{core_timing_}, memory{memory_} { |
| 54 | event = Core::Timing::CreateEvent( | 54 | event = Core::Timing::CreateEvent("MemoryFreezer::FrameCallback", |
| 55 | "MemoryFreezer::FrameCallback", | 55 | [this](s64 time, std::chrono::nanoseconds ns_late) |
| 56 | [this](std::uintptr_t user_data, s64 time, | 56 | -> std::optional<std::chrono::nanoseconds> { |
| 57 | std::chrono::nanoseconds ns_late) -> std::optional<std::chrono::nanoseconds> { | 57 | FrameCallback(ns_late); |
| 58 | FrameCallback(user_data, ns_late); | 58 | return std::nullopt; |
| 59 | return std::nullopt; | 59 | }); |
| 60 | }); | ||
| 61 | core_timing.ScheduleEvent(memory_freezer_ns, event); | 60 | core_timing.ScheduleEvent(memory_freezer_ns, event); |
| 62 | } | 61 | } |
| 63 | 62 | ||
| 64 | Freezer::~Freezer() { | 63 | Freezer::~Freezer() { |
| 65 | core_timing.UnscheduleEvent(event, 0); | 64 | core_timing.UnscheduleEvent(event); |
| 66 | } | 65 | } |
| 67 | 66 | ||
| 68 | void Freezer::SetActive(bool is_active) { | 67 | void Freezer::SetActive(bool is_active) { |
| @@ -159,7 +158,7 @@ Freezer::Entries::const_iterator Freezer::FindEntry(VAddr address) const { | |||
| 159 | [address](const Entry& entry) { return entry.address == address; }); | 158 | [address](const Entry& entry) { return entry.address == address; }); |
| 160 | } | 159 | } |
| 161 | 160 | ||
| 162 | void Freezer::FrameCallback(std::uintptr_t, std::chrono::nanoseconds ns_late) { | 161 | void Freezer::FrameCallback(std::chrono::nanoseconds ns_late) { |
| 163 | if (!IsActive()) { | 162 | if (!IsActive()) { |
| 164 | LOG_DEBUG(Common_Memory, "Memory freezer has been deactivated, ending callback events."); | 163 | LOG_DEBUG(Common_Memory, "Memory freezer has been deactivated, ending callback events."); |
| 165 | return; | 164 | return; |