210 lines
8.3 KiB
PHP
Executable File
210 lines
8.3 KiB
PHP
Executable File
<?php
|
|
/*
|
|
* PHP QR Code encoder
|
|
*
|
|
* Reed-Solomon error correction support
|
|
*
|
|
* Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q
|
|
* (libfec is released under the GNU Lesser General Public License.)
|
|
*
|
|
* Based on libqrencode C library distributed under LGPL 2.1
|
|
* Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
|
|
*
|
|
* PHP QR Code is distributed under LGPL 3
|
|
* Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 3 of the License, or any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
class QRrsItem {
|
|
|
|
public $mm; // Bits per symbol
|
|
public $nn; // Symbols per block (= (1<<mm)-1)
|
|
public $alpha_to = array(); // log lookup table
|
|
public $index_of = array(); // Antilog lookup table
|
|
public $genpoly = array(); // Generator polynomial
|
|
public $nroots; // Number of generator roots = number of parity symbols
|
|
public $fcr; // First consecutive root, index form
|
|
public $prim; // Primitive element, index form
|
|
public $iprim; // prim-th root of 1, index form
|
|
public $pad; // Padding bytes in shortened block
|
|
public $gfpoly;
|
|
|
|
//----------------------------------------------------------------------
|
|
public function modnn($x)
|
|
{
|
|
while ($x >= $this->nn) {
|
|
$x -= $this->nn;
|
|
$x = ($x >> $this->mm) + ($x & $this->nn);
|
|
}
|
|
|
|
return $x;
|
|
}
|
|
|