1// Copyright 2014 PDFium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6// Original code is licensed as follows: 7/* 8 * Copyright 2013 ZXing authors 9 * 10 * Licensed under the Apache License, Version 2.0 (the "License"); 11 * you may not use this file except in compliance with the License. 12 * You may obtain a copy of the License at 13 * 14 * http://www.apache.org/licenses/LICENSE-2.0 15 * 16 * Unless required by applicable law or agreed to in writing, software 17 * distributed under the License is distributed on an "AS IS" BASIS, 18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19 * See the License for the specific language governing permissions and 20 * limitations under the License. 21 */ 22 23#include "xfa/src/fxbarcode/barcode.h" 24#include "BC_PDF417Codeword.h" 25int32_t CBC_Codeword::BARCODE_ROW_UNKNOWN = -1; 26CBC_Codeword::CBC_Codeword(int32_t startX, 27 int32_t endX, 28 int32_t bucket, 29 int32_t cvalue) { 30 m_startX = startX; 31 m_endX = endX; 32 m_bucket = bucket; 33 m_value = cvalue; 34 m_rowNumber = BARCODE_ROW_UNKNOWN; 35} 36CBC_Codeword::~CBC_Codeword() {} 37FX_BOOL CBC_Codeword::hasValidRowNumber() { 38 return isValidRowNumber(m_rowNumber); 39} 40FX_BOOL CBC_Codeword::isValidRowNumber(int32_t rowNumber) { 41 return m_rowNumber != BARCODE_ROW_UNKNOWN && 42 m_bucket == (m_rowNumber % 3) * 3; 43} 44void CBC_Codeword::setRowNumberAsRowIndicatorColumn() { 45 m_rowNumber = (m_value / 30) * 3 + m_bucket / 3; 46} 47int32_t CBC_Codeword::getWidth() { 48 return m_endX - m_startX; 49} 50int32_t CBC_Codeword::getStartX() { 51 return m_startX; 52} 53int32_t CBC_Codeword::getEndX() { 54 return m_endX; 55} 56int32_t CBC_Codeword::getBucket() { 57 return m_bucket; 58} 59int32_t CBC_Codeword::getValue() { 60 return m_value; 61} 62int32_t CBC_Codeword::getRowNumber() { 63 return m_rowNumber; 64} 65void CBC_Codeword::setRowNumber(int32_t rowNumber) { 66 m_rowNumber = rowNumber; 67} 68CFX_ByteString CBC_Codeword::toString() { 69 return m_rowNumber + (FX_CHAR)'|' + m_value; 70} 71