Merge to XFA: Use stdint.h types throughout PDFium.
[pdfium.git] / xfa / src / fxbarcode / BC_BinaryBitmap.cpp
1 // Copyright 2014 PDFium Authors. All rights reserved.\r
2 // Use of this source code is governed by a BSD-style license that can be\r
3 // found in the LICENSE file.\r
4 \r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
6 // Original code is licensed as follows:\r
7 /*\r
8  * Copyright 2009 ZXing authors\r
9  *\r
10  * Licensed under the Apache License, Version 2.0 (the "License");\r
11  * you may not use this file except in compliance with the License.\r
12  * You may obtain a copy of the License at\r
13  *\r
14  *      http://www.apache.org/licenses/LICENSE-2.0\r
15  *\r
16  * Unless required by applicable law or agreed to in writing, software\r
17  * distributed under the License is distributed on an "AS IS" BASIS,\r
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
19  * See the License for the specific language governing permissions and\r
20  * limitations under the License.\r
21  */\r
22 \r
23 #include "barcode.h"\r
24 #include "BC_Binarizer.h"\r
25 #include "BC_LuminanceSource.h"\r
26 #include "BC_BinaryBitmap.h"\r
27 #include "common/BC_CommonBitMatrix.h"\r
28 #include "common/BC_CommonBitArray.h"\r
29 CBC_BinaryBitmap::CBC_BinaryBitmap(CBC_Binarizer *binarizer): m_binarizer(binarizer), m_matrix(NULL)\r
30 {\r
31 }\r
32 CBC_BinaryBitmap::~CBC_BinaryBitmap()\r
33 {\r
34     if  (m_matrix != NULL) {\r
35         delete m_matrix;\r
36     }\r
37     m_matrix = NULL;\r
38 }\r
39 int32_t CBC_BinaryBitmap::GetHeight()\r
40 {\r
41     return m_binarizer->GetLuminanceSource()->GetHeight();\r
42 }\r
43 int32_t CBC_BinaryBitmap::GetWidth()\r
44 {\r
45     return m_binarizer->GetLuminanceSource()->GetWidth();\r
46 }\r
47 CBC_CommonBitMatrix *CBC_BinaryBitmap::GetMatrix(int32_t &e)\r
48 {\r
49     if (m_matrix == NULL) {\r
50         m_matrix = m_binarizer->GetBlackMatrix(e);\r
51         BC_EXCEPTION_CHECK_ReturnValue(e, NULL);\r
52     }\r
53     return m_matrix;\r
54 }\r
55 FX_BOOL CBC_BinaryBitmap::IsCropSupported()\r
56 {\r
57     return m_binarizer->GetLuminanceSource()->IsCropSupported();\r
58 }\r
59 FX_BOOL CBC_BinaryBitmap::IsRotateSupported()\r
60 {\r
61     return m_binarizer->GetLuminanceSource()->IsRotateSupported();\r
62 }\r
63 CBC_CommonBitArray *CBC_BinaryBitmap::GetBlackRow(int32_t y, CBC_CommonBitArray *row, int32_t &e)\r
64 {\r
65     CBC_CommonBitArray *temp = m_binarizer->GetBlackRow(y, row, e);\r
66     BC_EXCEPTION_CHECK_ReturnValue(e, NULL);\r
67     return temp;\r
68 }\r
69 CBC_CommonBitMatrix *CBC_BinaryBitmap::GetBlackMatrix(int32_t &e)\r
70 {\r
71     if (m_matrix == NULL) {\r
72         m_matrix = m_binarizer->GetBlackMatrix(e);\r
73         BC_EXCEPTION_CHECK_ReturnValue(e, NULL);\r
74     }\r
75     return m_matrix;\r
76 }\r