2021-10-31 00:00:31 +03:00
/* pdf417.h - PDF417 tables and coefficients declarations */
2008-07-14 01:15:55 +04:00
/*
libzint - the open source barcode library
2024-01-04 23:11:04 +03:00
Copyright ( C ) 2008 - 2024 Robin Stuart < rstuart114 @ gmail . com >
2008-07-14 01:15:55 +04:00
Portions Copyright ( C ) 2004 Grandzebu
2013-05-16 21:26:38 +04:00
Redistribution and use in source and binary forms , with or without
modification , are permitted provided that the following conditions
are met :
2016-02-20 13:50:15 +03:00
1. Redistributions of source code must retain the above copyright
notice , this list of conditions and the following disclaimer .
2013-05-16 21:26:38 +04:00
2. Redistributions in binary form must reproduce the above copyright
notice , this list of conditions and the following disclaimer in the
2016-02-20 13:50:15 +03:00
documentation and / or other materials provided with the distribution .
2013-05-16 21:26:38 +04:00
3. Neither the name of the project nor the names of its contributors
may be used to endorse or promote products derived from this software
2016-02-20 13:50:15 +03:00
without specific prior written permission .
2013-05-16 21:26:38 +04:00
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS " AS IS " AND
ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED . IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT , INDIRECT , INCIDENTAL , SPECIAL , EXEMPLARY , OR CONSEQUENTIAL
DAMAGES ( INCLUDING , BUT NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES ; LOSS OF USE , DATA , OR PROFITS ; OR BUSINESS INTERRUPTION )
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT
LIABILITY , OR TORT ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY
2016-02-20 13:50:15 +03:00
OUT OF THE USE OF THIS SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF
2013-05-16 21:26:38 +04:00
SUCH DAMAGE .
2016-02-20 13:50:15 +03:00
*/
2022-09-13 23:16:31 +03:00
/* SPDX-License-Identifier: BSD-3-Clause */
2008-07-14 01:15:55 +04:00
2021-10-31 00:00:31 +03:00
/* See "pdf417_tabs.h" for table definitions */
2008-07-14 01:15:55 +04:00
Add multiple segments support for AZTEC, CODEONE, DATAMATRIX, DOTCODE,
GRIDMATRIX, HANXIN, MAXICODE, MICROPDF417, PDF417, QRCODE, RMQR, ULTRA
RMQR: fix ECI encoding (wrong bit length for indicator)
MICROQR: check versions M1 and M2 for allowed characters so as to give
better error messages
DOTCODE: some small optimizations
common.c: add is_chr(), segs_length(), segs_cpy()
CODEONE/CODE128/DOTCODE/GRIDMATRIX/HANXIN/MAXICODE/QRCODE/ULTRA: add
namespace prefixes to static funcs/data
includes: use Z_ prefix, unuse double underscore prefixes (guard defines)
manual.txt: compress some tables using double/treble column sets
2022-05-09 21:50:50 +03:00
# ifndef Z_PDF417_H
# define Z_PDF417_H
2008-07-14 01:15:55 +04:00
/* PDF417 error correction coefficients from Grand Zebu */
2021-10-31 00:00:31 +03:00
INTERNAL_DATA_EXTERN const unsigned short pdf_coefrs [ 1022 ] ;
2016-02-20 13:50:15 +03:00
2021-10-31 00:00:31 +03:00
INTERNAL_DATA_EXTERN const unsigned short pdf_bitpattern [ 2787 ] ;
2016-02-20 13:50:15 +03:00
2008-07-14 01:15:55 +04:00
/* MicroPDF417 coefficients from ISO/IEC 24728:2006 Annex F */
2021-10-31 00:00:31 +03:00
INTERNAL_DATA_EXTERN const unsigned short pdf_Microcoeffs [ 344 ] ;
2008-07-14 01:15:55 +04:00
/* rows, columns, error codewords, k-offset of valid MicroPDF417 sizes from ISO/IEC 24728:2006 */
2022-11-07 01:25:19 +03:00
INTERNAL_DATA_EXTERN const unsigned short pdf_MicroVariants [ 136 ] ;
2008-07-14 01:15:55 +04:00
/* following is Left RAP, Centre RAP, Right RAP and Start Cluster from ISO/IEC 24728:2006 tables 10, 11 and 12 */
2021-10-31 00:00:31 +03:00
INTERNAL_DATA_EXTERN const char pdf_RAPTable [ 136 ] ;
2008-07-14 01:15:55 +04:00
/* Left and Right Row Address Pattern from Table 2 */
2021-10-31 00:00:31 +03:00
INTERNAL_DATA_EXTERN const unsigned short pdf_rap_side [ 52 ] ;
2008-07-14 01:15:55 +04:00
/* Centre Row Address Pattern from Table 2 */
2021-10-31 00:00:31 +03:00
INTERNAL_DATA_EXTERN const unsigned short pdf_rap_centre [ 52 ] ;
2008-07-14 01:15:55 +04:00
2023-11-27 15:55:53 +03:00
INTERNAL void pdf_byteprocess ( short * chainemc , int * p_mclength , const unsigned char chaine [ ] , int start ,
2024-01-04 23:11:04 +03:00
const int length , const int lastmode ) ;
2020-11-01 21:32:55 +03:00
Add multiple segments support for AZTEC, CODEONE, DATAMATRIX, DOTCODE,
GRIDMATRIX, HANXIN, MAXICODE, MICROPDF417, PDF417, QRCODE, RMQR, ULTRA
RMQR: fix ECI encoding (wrong bit length for indicator)
MICROQR: check versions M1 and M2 for allowed characters so as to give
better error messages
DOTCODE: some small optimizations
common.c: add is_chr(), segs_length(), segs_cpy()
CODEONE/CODE128/DOTCODE/GRIDMATRIX/HANXIN/MAXICODE/QRCODE/ULTRA: add
namespace prefixes to static funcs/data
includes: use Z_ prefix, unuse double underscore prefixes (guard defines)
manual.txt: compress some tables using double/treble column sets
2022-05-09 21:50:50 +03:00
/* vim: set ts=4 sw=4 et : */
# endif /* Z_PDF417_H */