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