1 /* 2 * Copyright 2016 Nu-book Inc. 3 * Copyright 2016 ZXing authors 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 #include "ODCode128Patterns.h" 19 20 namespace ZXing::OneD::Code128 { 21 22 const std::array<std::array<int, 6>, 107> CODE_PATTERNS = { { 23 { 2, 1, 2, 2, 2, 2 }, // 0 24 { 2, 2, 2, 1, 2, 2 }, 25 { 2, 2, 2, 2, 2, 1 }, 26 { 1, 2, 1, 2, 2, 3 }, 27 { 1, 2, 1, 3, 2, 2 }, 28 { 1, 3, 1, 2, 2, 2 }, // 5 29 { 1, 2, 2, 2, 1, 3 }, 30 { 1, 2, 2, 3, 1, 2 }, 31 { 1, 3, 2, 2, 1, 2 }, 32 { 2, 2, 1, 2, 1, 3 }, 33 { 2, 2, 1, 3, 1, 2 }, // 10 34 { 2, 3, 1, 2, 1, 2 }, 35 { 1, 1, 2, 2, 3, 2 }, 36 { 1, 2, 2, 1, 3, 2 }, 37 { 1, 2, 2, 2, 3, 1 }, 38 { 1, 1, 3, 2, 2, 2 }, // 15 39 { 1, 2, 3, 1, 2, 2 }, 40 { 1, 2, 3, 2, 2, 1 }, 41 { 2, 2, 3, 2, 1, 1 }, 42 { 2, 2, 1, 1, 3, 2 }, 43 { 2, 2, 1, 2, 3, 1 }, // 20 44 { 2, 1, 3, 2, 1, 2 }, 45 { 2, 2, 3, 1, 1, 2 }, 46 { 3, 1, 2, 1, 3, 1 }, 47 { 3, 1, 1, 2, 2, 2 }, 48 { 3, 2, 1, 1, 2, 2 }, // 25 49 { 3, 2, 1, 2, 2, 1 }, 50 { 3, 1, 2, 2, 1, 2 }, 51 { 3, 2, 2, 1, 1, 2 }, 52 { 3, 2, 2, 2, 1, 1 }, 53 { 2, 1, 2, 1, 2, 3 }, // 30 54 { 2, 1, 2, 3, 2, 1 }, 55 { 2, 3, 2, 1, 2, 1 }, 56 { 1, 1, 1, 3, 2, 3 }, 57 { 1, 3, 1, 1, 2, 3 }, 58 { 1, 3, 1, 3, 2, 1 }, // 35 59 { 1, 1, 2, 3, 1, 3 }, 60 { 1, 3, 2, 1, 1, 3 }, 61 { 1, 3, 2, 3, 1, 1 }, 62 { 2, 1, 1, 3, 1, 3 }, 63 { 2, 3, 1, 1, 1, 3 }, // 40 64 { 2, 3, 1, 3, 1, 1 }, 65 { 1, 1, 2, 1, 3, 3 }, 66 { 1, 1, 2, 3, 3, 1 }, 67 { 1, 3, 2, 1, 3, 1 }, 68 { 1, 1, 3, 1, 2, 3 }, // 45 69 { 1, 1, 3, 3, 2, 1 }, 70 { 1, 3, 3, 1, 2, 1 }, 71 { 3, 1, 3, 1, 2, 1 }, 72 { 2, 1, 1, 3, 3, 1 }, 73 { 2, 3, 1, 1, 3, 1 }, // 50 74 { 2, 1, 3, 1, 1, 3 }, 75 { 2, 1, 3, 3, 1, 1 }, 76 { 2, 1, 3, 1, 3, 1 }, 77 { 3, 1, 1, 1, 2, 3 }, 78 { 3, 1, 1, 3, 2, 1 }, // 55 79 { 3, 3, 1, 1, 2, 1 }, 80 { 3, 1, 2, 1, 1, 3 }, 81 { 3, 1, 2, 3, 1, 1 }, 82 { 3, 3, 2, 1, 1, 1 }, 83 { 3, 1, 4, 1, 1, 1 }, // 60 84 { 2, 2, 1, 4, 1, 1 }, 85 { 4, 3, 1, 1, 1, 1 }, 86 { 1, 1, 1, 2, 2, 4 }, 87 { 1, 1, 1, 4, 2, 2 }, 88 { 1, 2, 1, 1, 2, 4 }, // 65 89 { 1, 2, 1, 4, 2, 1 }, 90 { 1, 4, 1, 1, 2, 2 }, 91 { 1, 4, 1, 2, 2, 1 }, 92 { 1, 1, 2, 2, 1, 4 }, 93 { 1, 1, 2, 4, 1, 2 }, // 70 94 { 1, 2, 2, 1, 1, 4 }, 95 { 1, 2, 2, 4, 1, 1 }, 96 { 1, 4, 2, 1, 1, 2 }, 97 { 1, 4, 2, 2, 1, 1 }, 98 { 2, 4, 1, 2, 1, 1 }, // 75 99 { 2, 2, 1, 1, 1, 4 }, 100 { 4, 1, 3, 1, 1, 1 }, 101 { 2, 4, 1, 1, 1, 2 }, 102 { 1, 3, 4, 1, 1, 1 }, 103 { 1, 1, 1, 2, 4, 2 }, // 80 104 { 1, 2, 1, 1, 4, 2 }, 105 { 1, 2, 1, 2, 4, 1 }, 106 { 1, 1, 4, 2, 1, 2 }, 107 { 1, 2, 4, 1, 1, 2 }, 108 { 1, 2, 4, 2, 1, 1 }, // 85 109 { 4, 1, 1, 2, 1, 2 }, 110 { 4, 2, 1, 1, 1, 2 }, 111 { 4, 2, 1, 2, 1, 1 }, 112 { 2, 1, 2, 1, 4, 1 }, 113 { 2, 1, 4, 1, 2, 1 }, // 90 114 { 4, 1, 2, 1, 2, 1 }, 115 { 1, 1, 1, 1, 4, 3 }, 116 { 1, 1, 1, 3, 4, 1 }, 117 { 1, 3, 1, 1, 4, 1 }, 118 { 1, 1, 4, 1, 1, 3 }, // 95 119 { 1, 1, 4, 3, 1, 1 }, 120 { 4, 1, 1, 1, 1, 3 }, 121 { 4, 1, 1, 3, 1, 1 }, 122 { 1, 1, 3, 1, 4, 1 }, 123 { 1, 1, 4, 1, 3, 1 }, // 100 124 { 3, 1, 1, 1, 4, 1 }, 125 { 4, 1, 1, 1, 3, 1 }, 126 { 2, 1, 1, 4, 1, 2 }, 127 { 2, 1, 1, 2, 1, 4 }, 128 { 2, 1, 1, 2, 3, 2 }, // 105 129 { 2, 3, 3, 1, 1, 1 } // STOP_CODE followed by 2-wide termination bar 130 } }; 131 132 } // namespace ZXing::OneD::Code128 133