|
|
|
|
@ -8,6 +8,7 @@
|
|
|
|
|
#include "common/settings.h"
|
|
|
|
|
#include "common/settings_enums.h"
|
|
|
|
|
#include "core/core.h"
|
|
|
|
|
#include "core/core_timing.h"
|
|
|
|
|
#include "core/file_sys/control_metadata.h"
|
|
|
|
|
#include "core/file_sys/patch_manager.h"
|
|
|
|
|
#include "core/file_sys/registered_cache.h"
|
|
|
|
|
@ -19,6 +20,7 @@
|
|
|
|
|
#include "core/hle/service/am/am.h"
|
|
|
|
|
#include "core/hle/service/am/applet_ae.h"
|
|
|
|
|
#include "core/hle/service/am/applet_oe.h"
|
|
|
|
|
#include "core/hle/service/am/applets/applet_cabinet.h"
|
|
|
|
|
#include "core/hle/service/am/applets/applet_mii_edit_types.h"
|
|
|
|
|
#include "core/hle/service/am/applets/applet_profile_select.h"
|
|
|
|
|
#include "core/hle/service/am/applets/applet_web_browser.h"
|
|
|
|
|
@ -1385,7 +1387,16 @@ ILibraryAppletSelfAccessor::ILibraryAppletSelfAccessor(Core::System& system_)
|
|
|
|
|
// clang-format on
|
|
|
|
|
RegisterHandlers(functions);
|
|
|
|
|
|
|
|
|
|
PushInShowMiiEditData();
|
|
|
|
|
switch (system.GetAppletManager().GetCurrentAppletId()) {
|
|
|
|
|
case Applets::AppletId::Cabinet:
|
|
|
|
|
PushInShowCabinetData();
|
|
|
|
|
break;
|
|
|
|
|
case Applets::AppletId::MiiEdit:
|
|
|
|
|
PushInShowMiiEditData();
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ILibraryAppletSelfAccessor::~ILibraryAppletSelfAccessor() = default;
|
|
|
|
|
@ -1431,7 +1442,7 @@ void ILibraryAppletSelfAccessor::GetLibraryAppletInfo(HLERequestContext& ctx) {
|
|
|
|
|
LOG_WARNING(Service_AM, "(STUBBED) called");
|
|
|
|
|
|
|
|
|
|
const LibraryAppletInfo applet_info{
|
|
|
|
|
.applet_id = Applets::AppletId::MiiEdit,
|
|
|
|
|
.applet_id = system.GetAppletManager().GetCurrentAppletId(),
|
|
|
|
|
.library_applet_mode = Applets::LibraryAppletMode::AllForeground,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
@ -1459,6 +1470,35 @@ void ILibraryAppletSelfAccessor::GetCallerAppletIdentityInfo(HLERequestContext&
|
|
|
|
|
rb.PushRaw(applet_info);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ILibraryAppletSelfAccessor::PushInShowCabinetData() {
|
|
|
|
|
const Applets::CommonArguments arguments{
|
|
|
|
|
.arguments_version = Applets::CommonArgumentVersion::Version3,
|
|
|
|
|
.size = Applets::CommonArgumentSize::Version3,
|
|
|
|
|
.library_version = static_cast<u32>(Applets::CabinetAppletVersion::Version1),
|
|
|
|
|
.theme_color = Applets::ThemeColor::BasicBlack,
|
|
|
|
|
.play_startup_sound = true,
|
|
|
|
|
.system_tick = system.CoreTiming().GetClockTicks(),
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const Applets::StartParamForAmiiboSettings amiibo_settings{
|
|
|
|
|
.param_1 = 0,
|
|
|
|
|
.applet_mode = system.GetAppletManager().GetCabinetMode(),
|
|
|
|
|
.flags = Applets::CabinetFlags::None,
|
|
|
|
|
.amiibo_settings_1 = 0,
|
|
|
|
|
.device_handle = 0,
|
|
|
|
|
.tag_info{},
|
|
|
|
|
.register_info{},
|
|
|
|
|
.amiibo_settings_3{},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
std::vector<u8> argument_data(sizeof(arguments));
|
|
|
|
|
std::vector<u8> settings_data(sizeof(amiibo_settings));
|
|
|
|
|
std::memcpy(argument_data.data(), &arguments, sizeof(arguments));
|
|
|
|
|
std::memcpy(settings_data.data(), &amiibo_settings, sizeof(amiibo_settings));
|
|
|
|
|
queue_data.emplace_back(std::move(argument_data));
|
|
|
|
|
queue_data.emplace_back(std::move(settings_data));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ILibraryAppletSelfAccessor::PushInShowMiiEditData() {
|
|
|
|
|
struct MiiEditV3 {
|
|
|
|
|
Applets::MiiEditAppletInputCommon common;
|
|
|
|
|
@ -2238,7 +2278,7 @@ void IProcessWindingController::GetLaunchReason(HLERequestContext& ctx) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void IProcessWindingController::OpenCallingLibraryApplet(HLERequestContext& ctx) {
|
|
|
|
|
const auto applet_id = Applets::AppletId::MiiEdit;
|
|
|
|
|
const auto applet_id = system.GetAppletManager().GetCurrentAppletId();
|
|
|
|
|
const auto applet_mode = Applets::LibraryAppletMode::AllForeground;
|
|
|
|
|
|
|
|
|
|
LOG_WARNING(Service_AM, "(STUBBED) called with applet_id={:08X}, applet_mode={:08X}", applet_id,
|
|
|
|
|
@ -2259,4 +2299,5 @@ void IProcessWindingController::OpenCallingLibraryApplet(HLERequestContext& ctx)
|
|
|
|
|
rb.Push(ResultSuccess);
|
|
|
|
|
rb.PushIpcInterface<ILibraryAppletAccessor>(system, applet);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} // namespace Service::AM
|
|
|
|
|
|