Browse Source

more changes, show app tile name in qlaunch

pull/3004/head
Maufeat 3 months ago
parent
commit
bb72836838
  1. 4
      src/core/hle/service/ns/application_manager_interface.cpp
  2. 24
      src/core/hle/service/ns/read_only_application_control_data_interface.cpp
  3. 2
      src/core/hle/service/ns/read_only_application_control_data_interface.h
  4. 7
      src/core/hle/service/prepo/prepo.cpp

4
src/core/hle/service/ns/application_manager_interface.cpp

@ -548,8 +548,8 @@ Result IApplicationManagerInterface::GetApplicationTerminateResult(Out<Result> o
}
Result IApplicationManagerInterface::RequestDownloadApplicationControlDataInBackground(
u64 unk, u64 application_id) {
LOG_WARNING(Service_NS, "(STUBBED), app={:016X} unk={}", application_id, unk);
u64 control_source, u64 application_id) {
LOG_WARNING(Service_NS, "(STUBBED), control_source={} app={:016X}", control_source, application_id);
R_SUCCEED();
}

24
src/core/hle/service/ns/read_only_application_control_data_interface.cpp

@ -27,7 +27,8 @@ IReadOnlyApplicationControlDataInterface::IReadOnlyApplicationControlDataInterfa
{2, D<&IReadOnlyApplicationControlDataInterface::ConvertApplicationLanguageToLanguageCode>, "ConvertApplicationLanguageToLanguageCode"},
{3, nullptr, "ConvertLanguageCodeToApplicationLanguage"},
{4, nullptr, "SelectApplicationDesiredLanguage"},
{5, D<&IReadOnlyApplicationControlDataInterface::GetApplicationControlDataWithIconSize>, "GetApplicationControlDataWithIconSize"},
{5, D<&IReadOnlyApplicationControlDataInterface::GetApplicationControlDataWithoutIcon>, "GetApplicationControlDataWithIconSize"},
{19, D<&IReadOnlyApplicationControlDataInterface::GetApplicationControlDataWithoutIcon>, "GetApplicationControlDataWithIconSize"},
};
// clang-format on
@ -163,7 +164,7 @@ Result IReadOnlyApplicationControlDataInterface::GetApplicationControlData(
R_SUCCEED();
}
Result IReadOnlyApplicationControlDataInterface::GetApplicationControlDataWithIconSize(
Result IReadOnlyApplicationControlDataInterface::GetApplicationControlDataWithoutIcon(
OutBuffer<BufferAttr_HipcMapAlias> out_buffer,
Out<u64> out_total_size,
ApplicationControlSource application_control_source,
@ -173,19 +174,11 @@ Result IReadOnlyApplicationControlDataInterface::GetApplicationControlDataWithIc
constexpr size_t kExpectedBufferSize = 0x14000;
constexpr size_t kNACPSize = sizeof(FileSys::RawNACP);
constexpr size_t kMaxIconSize = kExpectedBufferSize - kNACPSize;
const FileSys::PatchManager pm{application_id, system.GetFileSystemController(),
system.GetContentProvider()};
const auto control = pm.GetControlMetadata();
const auto size = out_buffer.size();
if (size < kExpectedBufferSize) {
LOG_ERROR(Service_NS, "output buffer is too small! (actual={:016X}, required={:016X})", size, kExpectedBufferSize);
R_THROW(ResultUnknown);
}
// Copy NACP
if (control.first != nullptr) {
const auto bytes = control.first->GetRawBytes();
std::memcpy(out_buffer.data(), bytes.data(), bytes.size());
@ -193,17 +186,6 @@ Result IReadOnlyApplicationControlDataInterface::GetApplicationControlDataWithIc
std::memset(out_buffer.data(), 0, kNACPSize);
}
// Copy icon, pad with zeros if needed
size_t icon_size = control.second ? control.second->GetSize() : 0;
if (icon_size > kMaxIconSize) {
icon_size = kMaxIconSize; // Truncate if too large
}
if (control.second != nullptr && icon_size > 0) {
control.second->Read(out_buffer.data() + kNACPSize, icon_size);
} else {
std::memset(out_buffer.data() + kNACPSize, 0, kMaxIconSize);
}
*out_total_size = kExpectedBufferSize;
R_SUCCEED();
}

2
src/core/hle/service/ns/read_only_application_control_data_interface.h

@ -31,7 +31,7 @@ public:
Out<u32> out_actual_size,
ApplicationControlSource application_control_source,
u64 application_id);
Result GetApplicationControlDataWithIconSize(
Result GetApplicationControlDataWithoutIcon(
OutBuffer<BufferAttr_HipcMapAlias> out_buffer,
Out<u64> out_total_size,
ApplicationControlSource application_control_source,

7
src/core/hle/service/prepo/prepo.cpp

@ -133,6 +133,9 @@ private:
const auto data1 = ctx.ReadBufferA(0);
const auto data2 = ctx.ReadBufferX(0);
LOG_ERROR(Service_PREPO, "called, title_id={:016X}, data1_size={:016X}, data2_size={:016X}",
title_id, data1.size(), data2.size());
LOG_ERROR(Service_PREPO, "called, title_id={:016X}, data1_size={:016X}, data2_size={:016X}",
title_id, data1.size(), data2.size());
@ -151,7 +154,7 @@ private:
Common::UUID uuid{};
std::memcpy(uuid.uuid.data(), user_id.data(), sizeof(Common::UUID));
LOG_ERROR(Service_PREPO,
LOG_DEBUG(Service_PREPO,
"called, user_id={}, title_id={:016X}, data1_size={:016X}, data2_size={:016X}",
uuid.FormattedString(), title_id, data1.size(), data2.size());
@ -172,7 +175,7 @@ private:
const auto data_x = ctx.ReadBufferX(0);
const auto data_a = ctx.ReadBufferA(0);
LOG_ERROR(Service_PREPO,
LOG_DEBUG(Service_PREPO,
"called, field0={}, title_id={:016X}, data_a_size={}, data_x_size={}",
field0, title_id, data_a.size(), data_x.size());

Loading…
Cancel
Save