Summarize PPI project bodies

This commit is contained in:
2026-06-01 12:44:49 +02:00
parent 2da247f0fb
commit f1ee1b28a1
9 changed files with 430 additions and 32 deletions

View File

@@ -287,25 +287,32 @@ int inspect_project(int argc, char** argv)
std::istreambuf_iterator<char>()
};
const auto* data = reinterpret_cast<const std::byte*>(chars.data());
const auto layout = pp::assets::parse_ppi_project_layout(std::span<const std::byte>(data, chars.size()));
if (!layout) {
print_error("inspect-project", layout.status().message);
const auto summary = pp::assets::parse_ppi_project_summary(std::span<const std::byte>(data, chars.size()));
if (!summary) {
print_error("inspect-project", summary.status().message);
return 2;
}
std::cout << "{\"ok\":true,\"command\":\"inspect-project\""
<< ",\"documentVersion\":\"" << layout.value().header.document_version.major
<< "." << layout.value().header.document_version.minor << "\""
<< ",\"softwareVersion\":\"" << layout.value().header.software_version.major
<< "." << layout.value().header.software_version.minor
<< "." << layout.value().header.software_version.fix
<< "." << layout.value().header.software_version.build << "\""
<< ",\"thumbnail\":{\"width\":" << layout.value().header.thumbnail.width
<< ",\"height\":" << layout.value().header.thumbnail.height
<< ",\"components\":" << layout.value().header.thumbnail.components
<< ",\"bytes\":" << layout.value().thumbnail_bytes
<< "},\"body\":{\"offset\":" << layout.value().body_offset
<< ",\"bytes\":" << layout.value().body_bytes
<< ",\"documentVersion\":\"" << summary.value().layout.header.document_version.major
<< "." << summary.value().layout.header.document_version.minor << "\""
<< ",\"softwareVersion\":\"" << summary.value().layout.header.software_version.major
<< "." << summary.value().layout.header.software_version.minor
<< "." << summary.value().layout.header.software_version.fix
<< "." << summary.value().layout.header.software_version.build << "\""
<< ",\"thumbnail\":{\"width\":" << summary.value().layout.header.thumbnail.width
<< ",\"height\":" << summary.value().layout.header.thumbnail.height
<< ",\"components\":" << summary.value().layout.header.thumbnail.components
<< ",\"bytes\":" << summary.value().layout.thumbnail_bytes
<< "},\"body\":{\"offset\":" << summary.value().layout.body_offset
<< ",\"bytes\":" << summary.value().layout.body_bytes
<< ",\"width\":" << summary.value().body.width
<< ",\"height\":" << summary.value().body.height
<< ",\"layers\":" << summary.value().body.layer_count
<< ",\"frames\":" << summary.value().body.declared_frame_count
<< ",\"dirtyFaces\":" << summary.value().body.dirty_face_count
<< ",\"compressedBytes\":" << summary.value().body.compressed_face_bytes
<< ",\"infoBytes\":" << summary.value().body.info_bytes
<< "}}\n";
return 0;
}