File indexing completed on 2024-05-12 04:01:32
0001 /* 0002 SPDX-FileCopyrightText: 2022 Volker Krause <vkrause@kde.org> 0003 SPDX-License-Identifier: MIT 0004 */ 0005 0006 #include "format_p.h" 0007 0008 using namespace Prison; 0009 0010 struct format_map_t { 0011 ZXing::BarcodeFormat zxFormat; 0012 Prison::Format::BarcodeFormat format; 0013 }; 0014 0015 static constexpr const format_map_t format_map[] = { 0016 {ZXing::BarcodeFormat::None, Format::NoFormat}, 0017 {ZXing::BarcodeFormat::Aztec, Format::Aztec}, 0018 {ZXing::BarcodeFormat::Codabar, Format::Codabar}, 0019 {ZXing::BarcodeFormat::Code39, Format::Code39}, 0020 {ZXing::BarcodeFormat::Code93, Format::Code93}, 0021 {ZXing::BarcodeFormat::Code128, Format::Code128}, 0022 {ZXing::BarcodeFormat::DataBar, Format::DataBar}, 0023 {ZXing::BarcodeFormat::DataBarExpanded, Format::DataBarExpanded}, 0024 {ZXing::BarcodeFormat::DataMatrix, Format::DataMatrix}, 0025 {ZXing::BarcodeFormat::EAN8, Format::EAN8}, 0026 {ZXing::BarcodeFormat::EAN13, Format::EAN13}, 0027 {ZXing::BarcodeFormat::ITF, Format::ITF}, 0028 {ZXing::BarcodeFormat::MaxiCode, Format::MaxiCode}, 0029 {ZXing::BarcodeFormat::PDF417, Format::PDF417}, 0030 {ZXing::BarcodeFormat::QRCode, Format::QRCode}, 0031 {ZXing::BarcodeFormat::UPCA, Format::UPCA}, 0032 {ZXing::BarcodeFormat::UPCE, Format::UPCE}, 0033 }; 0034 0035 ZXing::BarcodeFormats Format::toZXing(Format::BarcodeFormats formats) 0036 { 0037 ZXing::BarcodeFormats f; 0038 for (auto m : format_map) { 0039 if (m.format & formats) { 0040 f |= m.zxFormat; 0041 } 0042 } 0043 return f; 0044 } 0045 0046 Format::BarcodeFormat Format::toFormat(ZXing::BarcodeFormat format) 0047 { 0048 const auto it = std::find_if(std::begin(format_map), std::end(format_map), [format](auto m) { 0049 return m.zxFormat == format; 0050 }); 0051 0052 return it != std::end(format_map) ? (*it).format : Format::NoFormat; 0053 } 0054 0055 #include "moc_format.cpp"