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_REEDSOLOMONDECODER_H_
8 #define _BC_REEDSOLOMONDECODER_H_
9 class CBC_ReedSolomonGF256;
10 class CBC_ReedSolomonGF256Poly;
11 class CBC_ReedSolomonDecoder {
12  private:
13   CBC_ReedSolomonGF256* m_field;
14 
15  public:
16   CBC_ReedSolomonDecoder(CBC_ReedSolomonGF256* field);
17   virtual ~CBC_ReedSolomonDecoder();
18   void Decode(CFX_Int32Array* received, int32_t twoS, int32_t& e);
19   CFX_PtrArray* RunEuclideanAlgorithm(CBC_ReedSolomonGF256Poly* a,
20                                       CBC_ReedSolomonGF256Poly* b,
21                                       int32_t R,
22                                       int32_t& e);
23   CFX_Int32Array* FindErrorLocations(CBC_ReedSolomonGF256Poly* errorLocator,
24                                      int32_t& e);
25   CFX_Int32Array* FindErrorMagnitudes(CBC_ReedSolomonGF256Poly* errorEvaluator,
26                                       CFX_Int32Array* errorLocations,
27                                       FX_BOOL dataMatrix,
28                                       int32_t& e);
29 };
30 #endif
31