#pragma once #include #include #include #include #include #include #include #include "errors.h" #include "file_utils.h" #include "clock_manager.h" class ReverseNXSync { public: ReverseNXSync (); void ToggleSync(bool enable) { m_sync_enabled = enable; }; void Reset(uint64_t app_id) { m_app_id = app_id; SetRTMode(ReverseNX_NotFound); GetToolMode(); } ReverseNXMode GetRTMode() { return m_rt_mode; }; void SetRTMode(ReverseNXMode mode) { m_rt_mode = mode; }; ReverseNXMode GetToolMode() { return m_tool_mode = RecheckToolMode(); }; SysClkProfile GetProfile(SysClkProfile real); ReverseNXMode GetMode(); protected: std::atomic m_rt_mode; ReverseNXMode m_tool_mode; uint64_t m_app_id = 0; bool m_tool_enabled; bool m_sync_enabled; ReverseNXMode GetToolModeFromPatch(const char* patch_path); ReverseNXMode RecheckToolMode(); };