enumerate

This commit is contained in:
lizzie 2026-05-20 10:46:05 +00:00
parent ef027b629e
commit 3f5356337b

View file

@ -103,17 +103,82 @@ Result ILibraryAppletSelfAccessor::PushOutData(SharedPointer<IStorage> storage)
if (m_applet->applet_id == AppletId::UlauncherUmenu) {
LOG_WARNING(Service_AM, "emulating uLauncher IPC");
std::shared_ptr<IStorage> tmp_storage;
m_broker->GetOutData().Pop(&tmp_storage);
std::vector<u8> result_data(0x8000);
enum class SystemMessage : u32 {
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 {
u32 magic;
u32 val;
} cmd;
cmd.magic = 0x21494D53;
cmd.val = u32(ResultSuccess.raw);
std::memcpy(result_data.data(), &cmd, sizeof(cmd));
m_broker->GetInData().Push(std::make_shared<IStorage>(system, std::move(result_data)));
};
std::shared_ptr<IStorage> req_storage;
m_broker->GetOutData().Pop(&req_storage);
auto req_data = req_storage->GetData();
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();