// Copyright 2014 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com

#include "barcode.h"
#include "BC_Reader.h"
#include "BC_UtilCodingConvert.h"
#include "BC_BinaryBitmap.h"
#include "BC_LuminanceSource.h"
#include "BC_BufferedImageLuminanceSource.h"
#include "BC_Binarizer.h"
#include "BC_Writer.h"
#include "BC_Dimension.h"
#include "BC_UtilCodingConvert.h"
#include "BC_ResultPoint.h"
#include "BC_BinaryBitmap.h"
#include "BC_DecoderResult.h"
#include "BC_TwoDimWriter.h"
#include "common/BC_GlobalHistogramBinarizer.h"
#include "common/BC_CommonBitMatrix.h"
#include "common/reedsolomon/BC_ReedSolomonGF256.h"
#include "common/BC_CommonByteMatrix.h"
#include "common/BC_CommonBitMatrix.h"
#include "common/BC_CommonBitArray.h"
#include "common/BC_CommonBitMatrix.h"
#include "common/BC_CommonDecoderResult.h"
#include "datamatrix/BC_DataMatrixVersion.h"
#include "datamatrix/BC_DataMatrixReader.h"
#include "datamatrix/BC_Encoder.h"
#include "datamatrix/BC_DefaultPlacement.h"
#include "datamatrix/BC_SymbolShapeHint.h"
#include "datamatrix/BC_SymbolInfo.h"
#include "datamatrix/BC_DataMatrixSymbolInfo144.h"
#include "datamatrix/BC_ErrorCorrection.h"
#include "datamatrix/BC_EncoderContext.h"
#include "datamatrix/BC_C40Encoder.h"
#include "datamatrix/BC_TextEncoder.h"
#include "datamatrix/BC_X12Encoder.h"
#include "datamatrix/BC_EdifactEncoder.h"
#include "datamatrix/BC_Base256Encoder.h"
#include "datamatrix/BC_ASCIIEncoder.h"
#include "datamatrix/BC_HighLevelEncoder.h"
#include "datamatrix/BC_DataMatrixWriter.h"
#include "oned/BC_OneDReader.h"
#include "oned/BC_OnedCode128Reader.h"
#include "oned/BC_OnedCode39Reader.h"
#include "oned/BC_OneDimReader.h"
#include "oned/BC_OnedEAN13Reader.h"
#include "oned/BC_OnedEAN8Reader.h"
#include "oned/BC_OnedUPCAReader.h"
#include "oned/BC_OnedCodaBarReader.h"
#include "oned/BC_OneDimWriter.h"
#include "oned/BC_OnedCode128Writer.h"
#include "oned/BC_OnedCode39Writer.h"
#include "oned/BC_OnedEAN13Writer.h"
#include "oned/BC_OnedEAN8Writer.h"
#include "oned/BC_OnedUPCAWriter.h"
#include "pdf417/BC_PDF417DetectorResult.h"
#include "pdf417/BC_PDF417Compaction.h"
#include "pdf417/BC_PDF417HighLevelEncoder.h"
#include "pdf417/BC_PDF417Detector.h"
#include "pdf417/BC_PDF417DetectorResult.h"
#include "pdf417/BC_PDF417Codeword.h"
#include "pdf417/BC_PDF417Common.h"
#include "pdf417/BC_PDF417BarcodeValue.h"
#include "pdf417/BC_PDF417BarcodeMetadata.h"
#include "pdf417/BC_PDF417BoundingBox.h"
#include "pdf417/BC_PDF417DetectionResultColumn.h"
#include "pdf417/BC_PDF417DetectionResultRowIndicatorColumn.h"
#include "pdf417/BC_PDF417DetectionResult.h"
#include "pdf417/BC_PDF417DecodedBitStreamParser.h"
#include "pdf417/BC_PDF417CodewordDecoder.h"
#include "pdf417/BC_PDF417DecodedBitStreamParser.h"
#include "pdf417/BC_PDF417ECModulusPoly.h"
#include "pdf417/BC_PDF417ECModulusGF.h"
#include "pdf417/BC_PDF417ECErrorCorrection.h"
#include "pdf417/BC_PDF417DecodedBitStreamParser.h"
#include "pdf417/BC_PDF417ScanningDecoder.h"
#include "pdf417/BC_PDF417Reader.h"
#include "qrcode/BC_QRCodeReader.h"
#include "qrcode/BC_QRCodeWriter.h"
#include "qrcode/BC_QRCoderErrorCorrectionLevel.h"
#include "qrcode/BC_QRCoderMode.h"
#include "qrcode/BC_QRCoderVersion.h"
#include "qrcode/BC_QRDataMask.h"
#include "qrcode/BC_QRDecodedBitStreamParser.h"
void BC_Library_Init()
{
    CBC_QRCoderErrorCorrectionLevel::Initialize();
    CBC_QRCoderMode::Initialize();
    CBC_QRCoderVersion::Initialize();
    CBC_QRDataMask::Initialize();
    CBC_ReedSolomonGF256::Initialize();
    CBC_DataMatrixVersion::Initialize();
    CBC_SymbolInfo::Initialize();
    CBC_ErrorCorrection::Initialize();
    CBC_PDF417HighLevelEncoder::Initialize();
    int32_t e = 0;
    CBC_PDF417ECModulusGF::Initialize(e);
    CBC_DecodedBitStreamPaser::Initialize();
    CBC_PDF417CodewordDecoder::Initialize();
    CBC_PDF417ECErrorCorrection::Initialize(e);
    CBC_PDF417ScanningDecoder::Initialize();
}
void BC_Library_Destory()
{
    CBC_QRCoderErrorCorrectionLevel::Finalize();
    CBC_QRCoderMode::Finalize();
    CBC_QRCoderVersion::Finalize();
    CBC_QRDataMask::Finalize();
    CBC_ReedSolomonGF256::Finalize();
    CBC_DataMatrixVersion::Finalize();
    CBC_SymbolInfo::Finalize();
    CBC_ErrorCorrection::Finalize();
    CBC_PDF417HighLevelEncoder::Finalize();
    CBC_DecodedBitStreamPaser::Finalize();
    CBC_PDF417CodewordDecoder::Finalize();
    CBC_PDF417ECErrorCorrection::Finalize();
    CBC_PDF417ECModulusGF::Finalize();
    CBC_PDF417ScanningDecoder::Finalize();
}