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_
9class CBC_ReedSolomonGF256;
10class CBC_ReedSolomonGF256Poly;
11class 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