| OLD | NEW | 
|---|
|  | (Empty) | 
| 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 2008 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/BC_Reader.h" |  | 
| 24 #include "xfa/src/fxbarcode/BC_TwoDimWriter.h" |  | 
| 25 #include "xfa/src/fxbarcode/common/BC_CommonByteMatrix.h" |  | 
| 26 #include "xfa/src/fxbarcode/qrcode/BC_QRCodeReader.h" |  | 
| 27 #include "xfa/src/fxbarcode/qrcode/BC_QRCodeWriter.h" |  | 
| 28 #include "xfa/src/fxbarcode/qrcode/BC_QRCoder.h" |  | 
| 29 #include "xfa/src/fxbarcode/qrcode/BC_QRCoderEncoder.h" |  | 
| 30 #include "xfa/src/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.h" |  | 
| 31 |  | 
| 32 CBC_QRCodeWriter::CBC_QRCodeWriter() { |  | 
| 33   m_bFixedSize = TRUE; |  | 
| 34   m_iCorrectLevel = 1; |  | 
| 35   m_iVersion = 0; |  | 
| 36 } |  | 
| 37 CBC_QRCodeWriter::~CBC_QRCodeWriter() {} |  | 
| 38 void CBC_QRCodeWriter::ReleaseAll() { |  | 
| 39   CBC_QRCodeReader::ReleaseAll(); |  | 
| 40 } |  | 
| 41 FX_BOOL CBC_QRCodeWriter::SetVersion(int32_t version) { |  | 
| 42   if (version < 0 || version > 40) { |  | 
| 43     return FALSE; |  | 
| 44   } |  | 
| 45   m_iVersion = version; |  | 
| 46   return TRUE; |  | 
| 47 } |  | 
| 48 FX_BOOL CBC_QRCodeWriter::SetErrorCorrectionLevel(int32_t level) { |  | 
| 49   if (level < 0 || level > 3) { |  | 
| 50     return FALSE; |  | 
| 51   } |  | 
| 52   m_iCorrectLevel = level; |  | 
| 53   return TRUE; |  | 
| 54 } |  | 
| 55 uint8_t* CBC_QRCodeWriter::Encode(const CFX_WideString& contents, |  | 
| 56                                   int32_t ecLevel, |  | 
| 57                                   int32_t& outWidth, |  | 
| 58                                   int32_t& outHeight, |  | 
| 59                                   int32_t& e) { |  | 
| 60   CBC_QRCoderErrorCorrectionLevel* ec = NULL; |  | 
| 61   switch (ecLevel) { |  | 
| 62     case 0: |  | 
| 63       ec = CBC_QRCoderErrorCorrectionLevel::L; |  | 
| 64       break; |  | 
| 65     case 1: |  | 
| 66       ec = CBC_QRCoderErrorCorrectionLevel::M; |  | 
| 67       break; |  | 
| 68     case 2: |  | 
| 69       ec = CBC_QRCoderErrorCorrectionLevel::Q; |  | 
| 70       break; |  | 
| 71     case 3: |  | 
| 72       ec = CBC_QRCoderErrorCorrectionLevel::H; |  | 
| 73       break; |  | 
| 74     default: { |  | 
| 75       e = BCExceptionUnSupportEclevel; |  | 
| 76       BC_EXCEPTION_CHECK_ReturnValue(e, NULL); |  | 
| 77     } |  | 
| 78   } |  | 
| 79   CBC_QRCoder qr; |  | 
| 80   if (m_iVersion > 0 && m_iVersion < 41) { |  | 
| 81     CFX_ByteString byteStr = contents.UTF8Encode(); |  | 
| 82     CBC_QRCoderEncoder::Encode(byteStr, ec, &qr, e, m_iVersion); |  | 
| 83   } else { |  | 
| 84     CBC_QRCoderEncoder::Encode(contents, ec, &qr, e); |  | 
| 85   } |  | 
| 86   BC_EXCEPTION_CHECK_ReturnValue(e, NULL); |  | 
| 87   outWidth = qr.GetMatrixWidth(); |  | 
| 88   outHeight = qr.GetMatrixWidth(); |  | 
| 89   uint8_t* result = FX_Alloc2D(uint8_t, outWidth, outHeight); |  | 
| 90   FXSYS_memcpy(result, qr.GetMatrix()->GetArray(), outWidth * outHeight); |  | 
| 91   return result; |  | 
| 92 } |  | 
| 93 uint8_t* CBC_QRCodeWriter::Encode(const CFX_ByteString& contents, |  | 
| 94                                   BCFORMAT format, |  | 
| 95                                   int32_t& outWidth, |  | 
| 96                                   int32_t& outHeight, |  | 
| 97                                   int32_t hints, |  | 
| 98                                   int32_t& e) { |  | 
| 99   return NULL; |  | 
| 100 } |  | 
| 101 uint8_t* CBC_QRCodeWriter::Encode(const CFX_ByteString& contents, |  | 
| 102                                   BCFORMAT format, |  | 
| 103                                   int32_t& outWidth, |  | 
| 104                                   int32_t& outHeight, |  | 
| 105                                   int32_t& e) { |  | 
| 106   return NULL; |  | 
| 107 } |  | 
| OLD | NEW | 
|---|