1 // Copyright 2015 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 CORE_SRC_FXCODEC_JBIG2_JBIG2_SDDPROC_H_
8 #define CORE_SRC_FXCODEC_JBIG2_JBIG2_SDDPROC_H_
9 
10 #include <vector>
11 
12 #include "JBig2_ArithDecoder.h"
13 #include "core/include/fxcrt/fx_system.h"
14 
15 class CJBig2_BitStream;
16 class CJBig2_HuffmanTable;
17 class CJBig2_Image;
18 class CJBig2_SymbolDict;
19 class IFX_Pause;
20 
21 class CJBig2_SDDProc {
22  public:
23   CJBig2_SymbolDict* decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
24                                   std::vector<JBig2ArithCtx>* gbContext,
25                                   std::vector<JBig2ArithCtx>* grContext);
26 
27   CJBig2_SymbolDict* decode_Huffman(CJBig2_BitStream* pStream,
28                                     std::vector<JBig2ArithCtx>* gbContext,
29                                     std::vector<JBig2ArithCtx>* grContext,
30                                     IFX_Pause* pPause);
31 
32  public:
33   FX_BOOL SDHUFF;
34   FX_BOOL SDREFAGG;
35   FX_DWORD SDNUMINSYMS;
36   CJBig2_Image** SDINSYMS;
37   FX_DWORD SDNUMNEWSYMS;
38   FX_DWORD SDNUMEXSYMS;
39   CJBig2_HuffmanTable* SDHUFFDH;
40   CJBig2_HuffmanTable* SDHUFFDW;
41   CJBig2_HuffmanTable* SDHUFFBMSIZE;
42   CJBig2_HuffmanTable* SDHUFFAGGINST;
43   uint8_t SDTEMPLATE;
44   int8_t SDAT[8];
45   FX_BOOL SDRTEMPLATE;
46   int8_t SDRAT[4];
47 };
48 
49 #endif  // CORE_SRC_FXCODEC_JBIG2_JBIG2_SDDPROC_H_
50