From 1f1a363d9dbf8e5fe51471a91b80a60bf7337971 Mon Sep 17 00:00:00 2001 From: codemasher Date: Sun, 22 Nov 2020 00:35:58 +0100 Subject: [PATCH] :bath: extract Mode --- src/Common/Mode.php | 7 +++++++ src/Data/QRData.php | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Common/Mode.php b/src/Common/Mode.php index c53b4f348..d36e84beb 100644 --- a/src/Common/Mode.php +++ b/src/Common/Mode.php @@ -85,4 +85,11 @@ class Mode{ throw new QRCodeException(sprintf('invalid version number: %d', $version)); } + /** + * returns the array of length bits for the given mode + */ + public static function getLengthBitsForMode(int $mode):array{ + return self::LENGTH_BITS[$mode]; + } + } diff --git a/src/Data/QRData.php b/src/Data/QRData.php index 3e9726fe0..a3972b1ec 100644 --- a/src/Data/QRData.php +++ b/src/Data/QRData.php @@ -222,7 +222,7 @@ class QRData{ foreach($this->dataSegments as $segment){ // data length in bits of the current segment +4 bits for each mode descriptor - $length += ($segment->getLengthInBits() + Mode::LENGTH_BITS[$segment->getDataMode()][0] + 4); + $length += ($segment->getLengthInBits() + Mode::getLengthBitsForMode($segment->getDataMode())[0] + 4); if(!$segment instanceof ECI){ // mode length bits margin to the next breakpoint