#include "save_data_dialog.h" #include "save_data_list_dialog.h" #include #include s32 save_data_dialog::ShowSaveDataList(std::vector& save_entries, s32 focused, u32 op, vm::ptr listSet) { // TODO: Install native shell as an Emu callback if (auto manager = fxm::get()) { auto result = manager->create()->show(save_entries, op, listSet); if (result != rsx::overlays::user_interface::selection_code::error) return result; } // Fall back to front-end GUI atomic_t dlg_result(false); atomic_t selection; pad::SetIntercepted(true); Emu.CallAfter([&]() { save_data_list_dialog sdid(save_entries, focused, op, listSet); sdid.exec(); selection = sdid.GetSelection(); dlg_result = true; }); while (!dlg_result) { thread_ctrl::wait_for(1000); } pad::SetIntercepted(false); return selection.load(); }