mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-05-22 22:27:03 +02:00
enumerate
This commit is contained in:
parent
20f1a2ef02
commit
ea9f43d987
1 changed files with 73 additions and 8 deletions
|
|
@ -103,17 +103,82 @@ Result ILibraryAppletSelfAccessor::PushOutData(SharedPointer<IStorage> storage)
|
||||||
|
|
||||||
if (m_applet->applet_id == AppletId::UlauncherUmenu) {
|
if (m_applet->applet_id == AppletId::UlauncherUmenu) {
|
||||||
LOG_WARNING(Service_AM, "emulating uLauncher IPC");
|
LOG_WARNING(Service_AM, "emulating uLauncher IPC");
|
||||||
std::shared_ptr<IStorage> tmp_storage;
|
|
||||||
m_broker->GetOutData().Pop(&tmp_storage);
|
enum class SystemMessage : u32 {
|
||||||
std::vector<u8> result_data(0x8000);
|
Invalid,
|
||||||
|
SetSelectedUser,
|
||||||
|
LaunchApplication,
|
||||||
|
ResumeApplication,
|
||||||
|
TerminateApplication,
|
||||||
|
LaunchHomebrewLibraryApplet,
|
||||||
|
LaunchHomebrewApplication,
|
||||||
|
ChooseHomebrew,
|
||||||
|
OpenWebPage,
|
||||||
|
OpenAlbum,
|
||||||
|
RestartMenu,
|
||||||
|
ReloadConfig,
|
||||||
|
UpdateMenuPaths,
|
||||||
|
UpdateMenuIndex,
|
||||||
|
OpenUserPage,
|
||||||
|
OpenMiiEdit,
|
||||||
|
OpenAddUser,
|
||||||
|
OpenNetConnect,
|
||||||
|
ListAddedApplications,
|
||||||
|
ListDeletedApplications,
|
||||||
|
OpenCabinet,
|
||||||
|
StartVerifyApplication,
|
||||||
|
ListInVerifyApplications,
|
||||||
|
NotifyWarnedAboutOutdatedTheme,
|
||||||
|
TerminateMenu,
|
||||||
|
OpenControllerKeyRemapping
|
||||||
|
};
|
||||||
struct CommandCommonHeader {
|
struct CommandCommonHeader {
|
||||||
u32 magic;
|
u32 magic;
|
||||||
u32 val;
|
u32 val;
|
||||||
} cmd;
|
};
|
||||||
cmd.magic = 0x21494D53;
|
std::shared_ptr<IStorage> req_storage;
|
||||||
cmd.val = u32(ResultSuccess.raw);
|
m_broker->GetOutData().Pop(&req_storage);
|
||||||
std::memcpy(result_data.data(), &cmd, sizeof(cmd));
|
auto req_data = req_storage->GetData();
|
||||||
m_broker->GetInData().Push(std::make_shared<IStorage>(system, std::move(result_data)));
|
CommandCommonHeader req_cmd{};
|
||||||
|
std::memcpy(req_data.data(), &req_cmd, sizeof(req_cmd));
|
||||||
|
|
||||||
|
switch (SystemMessage(req_cmd.val)) {
|
||||||
|
case SystemMessage::SetSelectedUser:
|
||||||
|
case SystemMessage::LaunchApplication:
|
||||||
|
case SystemMessage::ResumeApplication:
|
||||||
|
case SystemMessage::TerminateApplication:
|
||||||
|
case SystemMessage::LaunchHomebrewLibraryApplet:
|
||||||
|
case SystemMessage::LaunchHomebrewApplication:
|
||||||
|
case SystemMessage::ChooseHomebrew:
|
||||||
|
case SystemMessage::OpenWebPage:
|
||||||
|
case SystemMessage::OpenAlbum:
|
||||||
|
case SystemMessage::RestartMenu:
|
||||||
|
case SystemMessage::ReloadConfig:
|
||||||
|
case SystemMessage::UpdateMenuPaths:
|
||||||
|
case SystemMessage::UpdateMenuIndex:
|
||||||
|
case SystemMessage::OpenUserPage:
|
||||||
|
case SystemMessage::OpenMiiEdit:
|
||||||
|
case SystemMessage::OpenAddUser:
|
||||||
|
case SystemMessage::OpenNetConnect:
|
||||||
|
case SystemMessage::ListAddedApplications:
|
||||||
|
case SystemMessage::ListDeletedApplications:
|
||||||
|
case SystemMessage::OpenCabinet:
|
||||||
|
case SystemMessage::StartVerifyApplication:
|
||||||
|
case SystemMessage::ListInVerifyApplications:
|
||||||
|
case SystemMessage::NotifyWarnedAboutOutdatedTheme:
|
||||||
|
case SystemMessage::TerminateMenu:
|
||||||
|
case SystemMessage::OpenControllerKeyRemapping:
|
||||||
|
break;
|
||||||
|
case SystemMessage::Invalid:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
CommandCommonHeader res_cmd{};
|
||||||
|
std::vector<u8> res_data(0x8000);
|
||||||
|
res_cmd.magic = 0x21494D53;
|
||||||
|
res_cmd.val = u32(ResultSuccess.raw);
|
||||||
|
std::memcpy(res_data.data(), &res_cmd, sizeof(res_cmd));
|
||||||
|
m_broker->GetInData().Push(std::make_shared<IStorage>(system, std::move(res_data)));
|
||||||
}
|
}
|
||||||
|
|
||||||
R_SUCCEED();
|
R_SUCCEED();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue