From 19ce63babfd66ca0d97b3ff8278f7f1b7a765320 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Sat, 21 Jan 2023 21:48:08 -0500 Subject: [PATCH] icc: Print MultiLocalizedUnicodeTagData contents --- Userland/Libraries/LibGfx/ICCProfile.h | 2 ++ Userland/Utilities/icc.cpp | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibGfx/ICCProfile.h b/Userland/Libraries/LibGfx/ICCProfile.h index 7a3340a555..ad6841ee66 100644 --- a/Userland/Libraries/LibGfx/ICCProfile.h +++ b/Userland/Libraries/LibGfx/ICCProfile.h @@ -276,6 +276,8 @@ public: { } + Vector const& records() const { return m_records; } + private: Vector m_records; }; diff --git a/Userland/Utilities/icc.cpp b/Userland/Utilities/icc.cpp index 45590b9627..fddc2c1333 100644 --- a/Userland/Utilities/icc.cpp +++ b/Userland/Utilities/icc.cpp @@ -94,7 +94,15 @@ ErrorOr serenity_main(Main::Arguments arguments) profile->for_each_tag([](auto tag_signature, auto tag_data) { outln("{}: {}, offset {}, size {}", tag_signature, tag_data->type(), tag_data->offset(), tag_data->size()); - if (tag_data->type() == Gfx::ICC::TextTagData::Type) { + if (tag_data->type() == Gfx::ICC::MultiLocalizedUnicodeTagData::Type) { + auto& multi_localized_unicode = static_cast(*tag_data); + for (auto& record : multi_localized_unicode.records()) { + outln(" {:c}{:c}/{:c}{:c}: \"{}\"", + record.iso_639_1_language_code >> 8, record.iso_639_1_language_code & 0xff, + record.iso_3166_1_country_code >> 8, record.iso_3166_1_country_code & 0xff, + record.text); + } + } else if (tag_data->type() == Gfx::ICC::TextTagData::Type) { outln(" text: \"{}\"", static_cast(*tag_data).text()); } });