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 7#ifndef _BC_QRCODERMODE_H_ 8#define _BC_QRCODERMODE_H_ 9class CBC_QRCoderVersion; 10class CBC_QRCoderMode { 11 private: 12 int32_t* m_characterCountBitsForVersions; 13 int32_t m_bits; 14 CFX_ByteString m_name; 15 CBC_QRCoderMode(int32_t* characterCountBitsForVersions, 16 int32_t x1, 17 int32_t x2, 18 int32_t x3, 19 int32_t bits, 20 CFX_ByteString name); 21 CBC_QRCoderMode(); 22 23 public: 24 static CBC_QRCoderMode* sBYTE; 25 static CBC_QRCoderMode* sNUMERIC; 26 static CBC_QRCoderMode* sALPHANUMERIC; 27 static CBC_QRCoderMode* sKANJI; 28 static CBC_QRCoderMode* sECI; 29 static CBC_QRCoderMode* sGBK; 30 static CBC_QRCoderMode* sTERMINATOR; 31 static CBC_QRCoderMode* sFNC1_FIRST_POSITION; 32 static CBC_QRCoderMode* sFNC1_SECOND_POSITION; 33 static CBC_QRCoderMode* sSTRUCTURED_APPEND; 34 virtual ~CBC_QRCoderMode(); 35 36 static void Initialize(); 37 static void Finalize(); 38 static CBC_QRCoderMode* ForBits(int32_t bits, int32_t& e); 39 int32_t GetCharacterCountBits(CBC_QRCoderVersion* version, int32_t& e); 40 int32_t GetBits(); 41 CFX_ByteString GetName(); 42 static void Destroy(); 43}; 44#endif 45