ns: address review comments
This commit is contained in:
parent
4cdf18095d
commit
d45a12826c
3 changed files with 35 additions and 25 deletions
|
@ -441,12 +441,13 @@ Result IApplicationManagerInterface::GetApplicationRightsOnClient(
|
||||||
flags, application_id, account_id.FormattedString());
|
flags, application_id, account_id.FormattedString());
|
||||||
|
|
||||||
if (!out_rights.empty()) {
|
if (!out_rights.empty()) {
|
||||||
out_rights[0] = {
|
ApplicationRightsOnClient rights{};
|
||||||
.application_id = application_id,
|
rights.application_id = application_id;
|
||||||
.uid = account_id,
|
rights.uid = account_id;
|
||||||
.flags = 0,
|
rights.flags = 0;
|
||||||
.flags2 = 0,
|
rights.flags2 = 0;
|
||||||
};
|
|
||||||
|
out_rights[0] = rights;
|
||||||
*out_count = 1;
|
*out_count = 1;
|
||||||
} else {
|
} else {
|
||||||
*out_count = 0;
|
*out_count = 0;
|
||||||
|
|
|
@ -13,8 +13,8 @@ enum class ApplicationRecordType : u8 {
|
||||||
Installing = 2,
|
Installing = 2,
|
||||||
Installed = 3,
|
Installed = 3,
|
||||||
GameCardNotInserted = 5,
|
GameCardNotInserted = 5,
|
||||||
Archived = 0xB,
|
Archived = 11,
|
||||||
GameCard = 0x10,
|
GameCard = 16,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class ApplicationControlSource : u8 {
|
enum class ApplicationControlSource : u8 {
|
||||||
|
@ -37,31 +37,34 @@ struct ApplicationRecord {
|
||||||
u8 unknown2;
|
u8 unknown2;
|
||||||
INSERT_PADDING_BYTES_NOINIT(0x7);
|
INSERT_PADDING_BYTES_NOINIT(0x7);
|
||||||
};
|
};
|
||||||
static_assert(sizeof(ApplicationRecord) == 0x18, "ApplicationRecord is an invalid size");
|
static_assert(sizeof(ApplicationRecord) == 0x18, "ApplicationRecord has incorrect size.");
|
||||||
|
|
||||||
/// ApplicationView
|
/// ApplicationView
|
||||||
struct ApplicationView {
|
struct ApplicationView {
|
||||||
u64 application_id; ///< ApplicationId.
|
u64 application_id; ///< ApplicationId.
|
||||||
u32 unk; ///< Unknown.
|
u32 unk; ///< Unknown.
|
||||||
u32 flags; ///< Flags.
|
u32 flags; ///< Flags.
|
||||||
u8 unk_x10[0x10]; ///< Unknown.
|
std::array<u8, 0x10> unk_x10; ///< Unknown.
|
||||||
u32 unk_x20; ///< Unknown.
|
u32 unk_x20; ///< Unknown.
|
||||||
u16 unk_x24; ///< Unknown.
|
u16 unk_x24; ///< Unknown.
|
||||||
u8 unk_x26[0x2]; ///< Unknown.
|
std::array<u8, 0x2> unk_x26; ///< Unknown.
|
||||||
u8 unk_x28[0x8]; ///< Unknown.
|
std::array<u8, 0x8> unk_x28; ///< Unknown.
|
||||||
u8 unk_x30[0x10]; ///< Unknown.
|
std::array<u8, 0x10> unk_x30; ///< Unknown.
|
||||||
u32 unk_x40; ///< Unknown.
|
u32 unk_x40; ///< Unknown.
|
||||||
u8 unk_x44; ///< Unknown.
|
u8 unk_x44; ///< Unknown.
|
||||||
u8 unk_x45[0xb]; ///< Unknown.
|
std::array<u8, 0xb> unk_x45; ///< Unknown.
|
||||||
};
|
};
|
||||||
|
static_assert(sizeof(ApplicationView) == 0x50, "ApplicationView has incorrect size.");
|
||||||
|
|
||||||
struct ApplicationRightsOnClient {
|
struct ApplicationRightsOnClient {
|
||||||
u64 application_id;
|
u64 application_id;
|
||||||
Common::UUID uid;
|
Common::UUID uid;
|
||||||
u8 flags;
|
u8 flags;
|
||||||
u8 flags2;
|
u8 flags2;
|
||||||
INSERT_PADDING_BYTES(0x6);
|
INSERT_PADDING_BYTES_NOINIT(0x6);
|
||||||
};
|
};
|
||||||
|
static_assert(sizeof(ApplicationRightsOnClient) == 0x20,
|
||||||
|
"ApplicationRightsOnClient has incorrect size.");
|
||||||
|
|
||||||
/// NsPromotionInfo
|
/// NsPromotionInfo
|
||||||
struct PromotionInfo {
|
struct PromotionInfo {
|
||||||
|
@ -74,12 +77,15 @@ struct PromotionInfo {
|
||||||
///< remaining_time is set.
|
///< remaining_time is set.
|
||||||
INSERT_PADDING_BYTES_NOINIT(0x3);
|
INSERT_PADDING_BYTES_NOINIT(0x3);
|
||||||
};
|
};
|
||||||
|
static_assert(sizeof(PromotionInfo) == 0x20, "PromotionInfo has incorrect size.");
|
||||||
|
|
||||||
/// NsApplicationViewWithPromotionInfo
|
/// NsApplicationViewWithPromotionInfo
|
||||||
struct ApplicationViewWithPromotionInfo {
|
struct ApplicationViewWithPromotionInfo {
|
||||||
ApplicationView view; ///< \ref NsApplicationView
|
ApplicationView view; ///< \ref NsApplicationView
|
||||||
PromotionInfo promotion; ///< \ref NsPromotionInfo
|
PromotionInfo promotion; ///< \ref NsPromotionInfo
|
||||||
};
|
};
|
||||||
|
static_assert(sizeof(ApplicationViewWithPromotionInfo) == 0x70,
|
||||||
|
"ApplicationViewWithPromotionInfo has incorrect size.");
|
||||||
|
|
||||||
struct ApplicationOccupiedSizeEntity {
|
struct ApplicationOccupiedSizeEntity {
|
||||||
FileSys::StorageId storage_id;
|
FileSys::StorageId storage_id;
|
||||||
|
@ -93,10 +99,13 @@ static_assert(sizeof(ApplicationOccupiedSizeEntity) == 0x20,
|
||||||
struct ApplicationOccupiedSize {
|
struct ApplicationOccupiedSize {
|
||||||
std::array<ApplicationOccupiedSizeEntity, 4> entities;
|
std::array<ApplicationOccupiedSizeEntity, 4> entities;
|
||||||
};
|
};
|
||||||
|
static_assert(sizeof(ApplicationOccupiedSize) == 0x80,
|
||||||
|
"ApplicationOccupiedSize has incorrect size.");
|
||||||
|
|
||||||
struct ContentPath {
|
struct ContentPath {
|
||||||
u8 file_system_proxy_type;
|
u8 file_system_proxy_type;
|
||||||
u64 program_id;
|
u64 program_id;
|
||||||
};
|
};
|
||||||
|
static_assert(sizeof(ContentPath) == 0x10, "ContentPath has incorrect size.");
|
||||||
|
|
||||||
} // namespace Service::NS
|
} // namespace Service::NS
|
||||||
|
|
|
@ -43,7 +43,7 @@ Result IReadOnlyApplicationControlDataInterface::GetApplicationControlData(
|
||||||
const auto size = out_buffer.size();
|
const auto size = out_buffer.size();
|
||||||
|
|
||||||
const auto icon_size = control.second ? control.second->GetSize() : 0;
|
const auto icon_size = control.second ? control.second->GetSize() : 0;
|
||||||
const auto total_size = 0x4000 + icon_size;
|
const auto total_size = sizeof(FileSys::RawNACP) + icon_size;
|
||||||
|
|
||||||
if (size < total_size) {
|
if (size < total_size) {
|
||||||
LOG_ERROR(Service_NS, "output buffer is too small! (actual={:016X}, expected_min=0x4000)",
|
LOG_ERROR(Service_NS, "output buffer is too small! (actual={:016X}, expected_min=0x4000)",
|
||||||
|
@ -57,11 +57,11 @@ Result IReadOnlyApplicationControlDataInterface::GetApplicationControlData(
|
||||||
} else {
|
} else {
|
||||||
LOG_WARNING(Service_NS, "missing NACP data for application_id={:016X}, defaulting to zero",
|
LOG_WARNING(Service_NS, "missing NACP data for application_id={:016X}, defaulting to zero",
|
||||||
application_id);
|
application_id);
|
||||||
std::memset(out_buffer.data(), 0, 0x4000);
|
std::memset(out_buffer.data(), 0, sizeof(FileSys::RawNACP));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (control.second != nullptr) {
|
if (control.second != nullptr) {
|
||||||
control.second->Read(out_buffer.data() + 0x4000, icon_size);
|
control.second->Read(out_buffer.data() + sizeof(FileSys::RawNACP), icon_size);
|
||||||
} else {
|
} else {
|
||||||
LOG_WARNING(Service_NS, "missing icon data for application_id={:016X}", application_id);
|
LOG_WARNING(Service_NS, "missing icon data for application_id={:016X}", application_id);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue