1ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Copyright 2014 PDFium Authors. All rights reserved. 2ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be 3ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// found in the LICENSE file. 4ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 5ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Original code is licensed as follows: 7ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann/* 8ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * Copyright 2007 ZXing authors 9ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * 10ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * Licensed under the Apache License, Version 2.0 (the "License"); 11ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * you may not use this file except in compliance with the License. 12ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * You may obtain a copy of the License at 13ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * 14ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * http://www.apache.org/licenses/LICENSE-2.0 15ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * 16ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * Unless required by applicable law or agreed to in writing, software 17ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * distributed under the License is distributed on an "AS IS" BASIS, 18ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * See the License for the specific language governing permissions and 20ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * limitations under the License. 21ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann */ 22ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 23ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "xfa/src/fxbarcode/barcode.h" 24ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "BC_QRCoderECB.h" 25ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "BC_QRCoderECBlocks.h" 26ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCBC_QRCoderECBlocks::CBC_QRCoderECBlocks(int32_t ecCodeWordsPerBlock, 27ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CBC_QRCoderECB* ecBlocks) { 28ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_ecCodeWordsPerBlock = ecCodeWordsPerBlock; 29ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_ecBlocks.Add(ecBlocks); 30ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 31ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCBC_QRCoderECBlocks::CBC_QRCoderECBlocks(int32_t ecCodeWordsPerBlock, 32ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CBC_QRCoderECB* ecBlocks1, 33ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CBC_QRCoderECB* ecBlocks2) { 34ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_ecCodeWordsPerBlock = ecCodeWordsPerBlock; 35ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_ecBlocks.Add(ecBlocks1); 36ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_ecBlocks.Add(ecBlocks2); 37ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 38ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCBC_QRCoderECBlocks::~CBC_QRCoderECBlocks() { 39ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann for (int32_t i = 0; i < m_ecBlocks.GetSize(); i++) { 40ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann delete ((CBC_QRCoderECB*)(m_ecBlocks[i])); 41ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 42ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_ecBlocks.RemoveAll(); 43ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 44ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannint32_t CBC_QRCoderECBlocks::GetECCodeWordsPerBlock() { 45ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_ecCodeWordsPerBlock; 46ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 47ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannint32_t CBC_QRCoderECBlocks::GetNumBlocks() { 48ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t total = 0; 49ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann for (int32_t i = 0; i < m_ecBlocks.GetSize(); i++) { 50ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann total += ((CBC_QRCoderECB*)(m_ecBlocks[i]))->GetCount(); 51ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 52ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return total; 53ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 54ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannint32_t CBC_QRCoderECBlocks::GetTotalECCodeWords() { 55ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_ecCodeWordsPerBlock * GetNumBlocks(); 56ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 57ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCFX_PtrArray* CBC_QRCoderECBlocks::GetECBlocks() { 58ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return &m_ecBlocks; 59ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 60