implement CELL_PAD_INFO_INTERCEPTED

This commit is contained in:
Megamouse 2018-12-30 02:34:15 +01:00
parent 8ad14c4ada
commit 6f7b25de90
13 changed files with 250 additions and 153 deletions

View file

@ -6,7 +6,7 @@
s32 save_data_dialog::ShowSaveDataList(std::vector<SaveDataEntry>& save_entries, s32 focused, u32 op, vm::ptr<CellSaveDataListSet> listSet)
{
//TODO: Install native shell as an Emu callback
// TODO: Install native shell as an Emu callback
if (auto manager = fxm::get<rsx::overlays::display_manager>())
{
auto result = manager->create<rsx::overlays::save_dialog>()->show(save_entries, op, listSet);
@ -14,10 +14,12 @@ s32 save_data_dialog::ShowSaveDataList(std::vector<SaveDataEntry>& save_entries,
return result;
}
//Fall back to front-end GUI
// Fall back to front-end GUI
atomic_t<bool> dlg_result(false);
atomic_t<s32> selection;
pad::SetIntercepted(true);
Emu.CallAfter([&]()
{
save_data_list_dialog sdid(save_entries, focused, op, listSet);
@ -31,5 +33,7 @@ s32 save_data_dialog::ShowSaveDataList(std::vector<SaveDataEntry>& save_entries,
thread_ctrl::wait_for(1000);
}
pad::SetIntercepted(false);
return selection.load();
}