1ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Copyright 2014 PDFium Authors. All rights reserved.
2ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be
3ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// found in the LICENSE file.
4ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
5ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
7ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#ifndef _BC_QRDATAMASK_H_
8ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define _BC_QRDATAMASK_H_
9ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CBC_CommonBitMatrix;
10ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CBC_QRDataMask {
11ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public:
12ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static CFX_PtrArray* DATA_MASKS;
13ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  CBC_QRDataMask();
14ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  virtual ~CBC_QRDataMask();
15ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Initialize();
16ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Finalize();
17ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  virtual FX_BOOL IsMasked(int32_t i, int32_t j) = 0;
18ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  void UnmaskBitMatirx(CBC_CommonBitMatrix* bits, int32_t dimension);
19ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static CBC_QRDataMask* ForReference(int32_t reference, int32_t& e);
20ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static int32_t BuildDataMasks();
21ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Destroy();
22ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann};
23ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#endif
24