view mupdf-source/thirdparty/zxing-cpp/core/src/ReedSolomonEncoder.h @ 42:4621bd954a09

FIX: Need packaging at runtime to because of the parsing of mupdf_version into a tuple. In the merge it was removed erroneously.
author Franz Glasner <fzglas.hg@dom66.de>
date Sat, 11 Oct 2025 17:14:12 +0200
parents b50eed0cc0ef
children
line wrap: on
line source

/*
* Copyright 2016 Huy Cuong Nguyen
* Copyright 2016 ZXing authors
*/
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include "GenericGFPoly.h"

#include <list>
#include <vector>

namespace ZXing {

// public only for testing purposes
class ReedSolomonEncoder
{
public:
	explicit ReedSolomonEncoder(const GenericGF& field);

	void encode(std::vector<int>& message, int numECCodeWords);

private:
	const GenericGF* _field;
	std::list<GenericGFPoly> _cachedGenerators;

	const GenericGFPoly& buildGenerator(int degree);
};

/**
 * @brief ReedSolomonEncode replaces the last numECCodeWords code words in message with error correction code words
 */
inline void ReedSolomonEncode(const GenericGF& field, std::vector<int>& message, int numECCodeWords)
{
	ReedSolomonEncoder(field).encode(message, numECCodeWords);
}

} // namespace ZXing