/* * UPCAReader.cpp * ZXing * * Copyright 2010 ZXing authors All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "UPCAReader.h" #include namespace zxing { namespace oned { UPCAReader::UPCAReader() : ean13Reader() { } Ref UPCAReader::decodeRow(int rowNumber, Ref row) { return maybeReturnResult(ean13Reader.decodeRow(rowNumber, row)); } Ref UPCAReader::decodeRow(int rowNumber, Ref row, int startGuardBegin, int startGuardEnd) { return maybeReturnResult(ean13Reader.decodeRow(rowNumber, row, startGuardBegin, startGuardEnd)); } Ref UPCAReader::decode(Ref image, DecodeHints hints) { return maybeReturnResult(ean13Reader.decode(image, hints)); } int UPCAReader::decodeMiddle(Ref row, int startGuardBegin, int startGuardEnd, std::string& resultString) { return ean13Reader.decodeMiddle(row, startGuardBegin, startGuardEnd, resultString); } Ref UPCAReader::maybeReturnResult(Ref result) { if (result.empty()) { return result; } const std::string& text = (result->getText())->getText(); if (text[0] == '0') { Ref resultString(new String(text.substr(1))); Ref res(new Result(resultString, result->getRawBytes(), result->getResultPoints(), BarcodeFormat_UPC_A)); return res; } return Ref(); } BarcodeFormat UPCAReader::getBarcodeFormat(){ return BarcodeFormat_UPC_A; } } }