diff --git a/lib/ippprinter.cpp b/lib/ippprinter.cpp index 79ca15e..1f6f8bb 100644 --- a/lib/ippprinter.cpp +++ b/lib/ippprinter.cpp @@ -340,6 +340,11 @@ List IppPrinter::icons() const return _printerAttrs.getList("printer-icons"); } +List IppPrinter::urisSupported() const +{ + return _printerAttrs.getList("printer-uri-supported"); +} + std::string IppPrinter::strings() const { return _printerAttrs.get("printer-strings-uri"); diff --git a/lib/ippprinter.h b/lib/ippprinter.h index 8339684..6701257 100644 --- a/lib/ippprinter.h +++ b/lib/ippprinter.h @@ -76,6 +76,7 @@ class IppPrinter List firmware() const; List settableAttributes() const; List icons() const; + List urisSupported() const; std::string strings() const; List documentFormats() const; List additionalDocumentFormats() const; diff --git a/tests/test.cpp b/tests/test.cpp index 5dd5c14..d88f9a4 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -2274,6 +2274,8 @@ TEST(attribute_getters) {"printer-firmware-name", IppAttr(IppTag::NameWithoutLanguage, IppOneSetOf {"Firmware 1", "Firmware 2"})}, {"printer-firmware-string-version", IppAttr(IppTag::TextWithoutLanguage, IppOneSetOf {"1.0", "2.0"})}, {"printer-settable-attributes-supported", IppAttr(IppTag::Keyword, IppOneSetOf {"printer-name", "printer-location"})}, + {"printer-icons", IppAttr(IppTag::Uri, IppOneSetOf {"http://myprinter/iconM.png", "http://myprinter/iconL.png"})}, + {"printer-uri-supported", IppAttr(IppTag::Uri, "ipp://myprinter/ipp/print")}, {"document-format-supported", IppAttr(IppTag::Keyword, IppOneSetOf {"application/octet-stream", "image/urf", "image/pwg-raster", @@ -2298,6 +2300,8 @@ TEST(attribute_getters) ASSERT(ip.supplies().size() == 3); ASSERT(ip.firmware() == (List {{"Firmware 1", "1.0"}, {"Firmware 2", "2.0"}})); ASSERT(ip.settableAttributes() == (List {"printer-name", "printer-location"})); + ASSERT(ip.icons() == (List {"http://myprinter/iconM.png", "http://myprinter/iconL.png"})); + ASSERT(ip.urisSupported() == (List {"ipp://myprinter/ipp/print"})); ASSERT(ip.documentFormats() == (List {"application/octet-stream", "image/urf", "image/pwg-raster", diff --git a/utils/ippclient.cpp b/utils/ippclient.cpp index 425f9b6..de6d8de 100644 --- a/utils/ippclient.cpp +++ b/utils/ippclient.cpp @@ -311,6 +311,7 @@ int main(int argc, char** argv) print_if_set("Firmware:", printer.firmware()); print_if_set("Settable attributes:", join_string(printer.settableAttributes(), "\n")); print_if_set("Icons:", join_string(printer.icons(), "\n")); + print_if_set("Printer URIs supported:", join_string(printer.urisSupported(), "\n")); print_if_set("Strings:", printer.strings()); print_if_set("Document formats (native):", join_string(printer.documentFormats(), "\n")); print_if_set("Document formats (guessed):", join_string(printer.additionalDocumentFormats(), "\n"));