You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.4 KiB
78 lines
1.4 KiB
/* |
|
* Copyright 2022 Axel Waggershauser |
|
*/ |
|
// SPDX-License-Identifier: Apache-2.0 |
|
|
|
#pragma once |
|
|
|
#include "CharacterSet.h" |
|
|
|
#include <string> |
|
|
|
namespace ZXing { |
|
|
|
enum class ECI : int |
|
{ |
|
Unknown = -1, |
|
Cp437 = 2, // obsolete |
|
ISO8859_1 = 3, |
|
ISO8859_2 = 4, |
|
ISO8859_3 = 5, |
|
ISO8859_4 = 6, |
|
ISO8859_5 = 7, |
|
ISO8859_6 = 8, |
|
ISO8859_7 = 9, |
|
ISO8859_8 = 10, |
|
ISO8859_9 = 11, |
|
ISO8859_10 = 12, |
|
ISO8859_11 = 13, |
|
ISO8859_13 = 15, |
|
ISO8859_14 = 16, |
|
ISO8859_15 = 17, |
|
ISO8859_16 = 18, |
|
Shift_JIS = 20, |
|
Cp1250 = 21, |
|
Cp1251 = 22, |
|
Cp1252 = 23, |
|
Cp1256 = 24, |
|
UTF16BE = 25, |
|
UTF8 = 26, |
|
ASCII = 27, |
|
Big5 = 28, |
|
GB2312 = 29, |
|
EUC_KR = 30, |
|
GB18030 = 32, |
|
UTF16LE = 33, |
|
UTF32BE = 34, |
|
UTF32LE = 35, |
|
ISO646_Inv = 170, |
|
Binary = 899 |
|
}; |
|
|
|
inline constexpr int ToInt(ECI eci) |
|
{ |
|
return static_cast<int>(eci); |
|
} |
|
|
|
inline constexpr bool IsText(ECI eci) |
|
{ |
|
return ToInt(eci) >= 0 && ToInt(eci) <= 170; |
|
} |
|
|
|
inline constexpr bool CanProcess(ECI eci) |
|
{ |
|
// see https://github.com/zxing-cpp/zxing-cpp/commit/d8587545434d533c4e568181e1c12ef04a8e42d9#r74864359 |
|
return ToInt(eci) <= 899; |
|
} |
|
|
|
/** |
|
* @brief ToString converts the numerical ECI value to a 7 character string as used in the ECI protocol |
|
* @return e.g. "\000020" |
|
*/ |
|
std::string ToString(ECI eci); |
|
|
|
CharacterSet ToCharacterSet(ECI eci); |
|
|
|
ECI ToECI(CharacterSet cs); |
|
|
|
} // namespace ZXing
|
|
|