qrscanner 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (480) hide show
  1. data/CHANGELOG +2 -0
  2. data/Manifest +478 -0
  3. data/README +41 -0
  4. data/Rakefile +9 -0
  5. data/bin/qrscanner +9 -0
  6. data/ext/qrscanner/extconf.rb +70 -0
  7. data/ext/qrscanner/qrscanner.c +32 -0
  8. data/ext/qrscanner/zxing/README +43 -0
  9. data/ext/qrscanner/zxing/SConscript +55 -0
  10. data/ext/qrscanner/zxing/SConstruct +7 -0
  11. data/ext/qrscanner/zxing/astyle-options +12 -0
  12. data/ext/qrscanner/zxing/blackboxtest.sh +45 -0
  13. data/ext/qrscanner/zxing/core/src/zxing/BarcodeFormat.cpp +38 -0
  14. data/ext/qrscanner/zxing/core/src/zxing/BarcodeFormat.h +42 -0
  15. data/ext/qrscanner/zxing/core/src/zxing/Binarizer.cpp +36 -0
  16. data/ext/qrscanner/zxing/core/src/zxing/Binarizer.h +46 -0
  17. data/ext/qrscanner/zxing/core/src/zxing/BinaryBitmap.cpp +67 -0
  18. data/ext/qrscanner/zxing/core/src/zxing/BinaryBitmap.h +57 -0
  19. data/ext/qrscanner/zxing/core/src/zxing/DecodeHints.cpp +111 -0
  20. data/ext/qrscanner/zxing/core/src/zxing/DecodeHints.h +69 -0
  21. data/ext/qrscanner/zxing/core/src/zxing/Exception.cpp +25 -0
  22. data/ext/qrscanner/zxing/core/src/zxing/Exception.h +39 -0
  23. data/ext/qrscanner/zxing/core/src/zxing/LuminanceSource.cpp +47 -0
  24. data/ext/qrscanner/zxing/core/src/zxing/LuminanceSource.h +49 -0
  25. data/ext/qrscanner/zxing/core/src/zxing/MultiFormatReader.cpp +102 -0
  26. data/ext/qrscanner/zxing/core/src/zxing/MultiFormatReader.h +49 -0
  27. data/ext/qrscanner/zxing/core/src/zxing/Reader.cpp +31 -0
  28. data/ext/qrscanner/zxing/core/src/zxing/Reader.h +40 -0
  29. data/ext/qrscanner/zxing/core/src/zxing/ReaderException.cpp +32 -0
  30. data/ext/qrscanner/zxing/core/src/zxing/ReaderException.h +34 -0
  31. data/ext/qrscanner/zxing/core/src/zxing/Result.cpp +59 -0
  32. data/ext/qrscanner/zxing/core/src/zxing/Result.h +53 -0
  33. data/ext/qrscanner/zxing/core/src/zxing/ResultPoint.cpp +27 -0
  34. data/ext/qrscanner/zxing/core/src/zxing/ResultPoint.h +39 -0
  35. data/ext/qrscanner/zxing/core/src/zxing/ResultPointCallback.cpp +26 -0
  36. data/ext/qrscanner/zxing/core/src/zxing/ResultPointCallback.h +39 -0
  37. data/ext/qrscanner/zxing/core/src/zxing/common/Array.cpp +22 -0
  38. data/ext/qrscanner/zxing/core/src/zxing/common/Array.h +207 -0
  39. data/ext/qrscanner/zxing/core/src/zxing/common/BitArray.cpp +129 -0
  40. data/ext/qrscanner/zxing/core/src/zxing/common/BitArray.h +55 -0
  41. data/ext/qrscanner/zxing/core/src/zxing/common/BitMatrix.cpp +178 -0
  42. data/ext/qrscanner/zxing/core/src/zxing/common/BitMatrix.h +65 -0
  43. data/ext/qrscanner/zxing/core/src/zxing/common/BitSource.cpp +75 -0
  44. data/ext/qrscanner/zxing/core/src/zxing/common/BitSource.h +67 -0
  45. data/ext/qrscanner/zxing/core/src/zxing/common/Counted.cpp +32 -0
  46. data/ext/qrscanner/zxing/core/src/zxing/common/Counted.h +205 -0
  47. data/ext/qrscanner/zxing/core/src/zxing/common/DecoderResult.cpp +37 -0
  48. data/ext/qrscanner/zxing/core/src/zxing/common/DecoderResult.h +43 -0
  49. data/ext/qrscanner/zxing/core/src/zxing/common/DetectorResult.cpp +41 -0
  50. data/ext/qrscanner/zxing/core/src/zxing/common/DetectorResult.h +46 -0
  51. data/ext/qrscanner/zxing/core/src/zxing/common/EdgeDetector.cpp +191 -0
  52. data/ext/qrscanner/zxing/core/src/zxing/common/EdgeDetector.h +38 -0
  53. data/ext/qrscanner/zxing/core/src/zxing/common/GlobalHistogramBinarizer.cpp +209 -0
  54. data/ext/qrscanner/zxing/core/src/zxing/common/GlobalHistogramBinarizer.h +47 -0
  55. data/ext/qrscanner/zxing/core/src/zxing/common/GreyscaleLuminanceSource.cpp +70 -0
  56. data/ext/qrscanner/zxing/core/src/zxing/common/GreyscaleLuminanceSource.h +62 -0
  57. data/ext/qrscanner/zxing/core/src/zxing/common/GreyscaleRotatedLuminanceSource.cpp +65 -0
  58. data/ext/qrscanner/zxing/core/src/zxing/common/GreyscaleRotatedLuminanceSource.h +60 -0
  59. data/ext/qrscanner/zxing/core/src/zxing/common/GridSampler.cpp +101 -0
  60. data/ext/qrscanner/zxing/core/src/zxing/common/GridSampler.h +43 -0
  61. data/ext/qrscanner/zxing/core/src/zxing/common/HybridBinarizer.cpp +168 -0
  62. data/ext/qrscanner/zxing/core/src/zxing/common/HybridBinarizer.h +55 -0
  63. data/ext/qrscanner/zxing/core/src/zxing/common/IllegalArgumentException.cpp +31 -0
  64. data/ext/qrscanner/zxing/core/src/zxing/common/IllegalArgumentException.h +33 -0
  65. data/ext/qrscanner/zxing/core/src/zxing/common/PerspectiveTransform.cpp +107 -0
  66. data/ext/qrscanner/zxing/core/src/zxing/common/PerspectiveTransform.h +49 -0
  67. data/ext/qrscanner/zxing/core/src/zxing/common/Point.h +47 -0
  68. data/ext/qrscanner/zxing/core/src/zxing/common/Str.cpp +38 -0
  69. data/ext/qrscanner/zxing/core/src/zxing/common/Str.h +40 -0
  70. data/ext/qrscanner/zxing/core/src/zxing/common/reedsolomon/GF256.cpp +136 -0
  71. data/ext/qrscanner/zxing/core/src/zxing/common/reedsolomon/GF256.h +68 -0
  72. data/ext/qrscanner/zxing/core/src/zxing/common/reedsolomon/GF256Poly.cpp +198 -0
  73. data/ext/qrscanner/zxing/core/src/zxing/common/reedsolomon/GF256Poly.h +53 -0
  74. data/ext/qrscanner/zxing/core/src/zxing/common/reedsolomon/ReedSolomonDecoder.cpp +193 -0
  75. data/ext/qrscanner/zxing/core/src/zxing/common/reedsolomon/ReedSolomonDecoder.h +46 -0
  76. data/ext/qrscanner/zxing/core/src/zxing/common/reedsolomon/ReedSolomonException.cpp +30 -0
  77. data/ext/qrscanner/zxing/core/src/zxing/common/reedsolomon/ReedSolomonException.h +33 -0
  78. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/DataMatrixReader.cpp +82 -0
  79. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/DataMatrixReader.h +45 -0
  80. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/Version.cpp +199 -0
  81. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/Version.h +87 -0
  82. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/decoder/BitMatrixParser.cpp +364 -0
  83. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/decoder/BitMatrixParser.h +59 -0
  84. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/decoder/DataBlock.cpp +113 -0
  85. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/decoder/DataBlock.h +49 -0
  86. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/decoder/DecodedBitStreamParser.cpp +404 -0
  87. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/decoder/DecodedBitStreamParser.h +103 -0
  88. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/decoder/Decoder.cpp +96 -0
  89. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/decoder/Decoder.h +50 -0
  90. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/detector/CornerPoint.cpp +54 -0
  91. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/detector/CornerPoint.h +47 -0
  92. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/detector/Detector.cpp +315 -0
  93. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/detector/Detector.h +79 -0
  94. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/detector/MonochromeRectangleDetector.cpp +172 -0
  95. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/detector/MonochromeRectangleDetector.h +61 -0
  96. data/ext/qrscanner/zxing/core/src/zxing/oned/Code128Reader.cpp +490 -0
  97. data/ext/qrscanner/zxing/core/src/zxing/oned/Code128Reader.h +63 -0
  98. data/ext/qrscanner/zxing/core/src/zxing/oned/Code39Reader.cpp +352 -0
  99. data/ext/qrscanner/zxing/core/src/zxing/oned/Code39Reader.h +58 -0
  100. data/ext/qrscanner/zxing/core/src/zxing/oned/EAN13Reader.cpp +95 -0
  101. data/ext/qrscanner/zxing/core/src/zxing/oned/EAN13Reader.h +44 -0
  102. data/ext/qrscanner/zxing/core/src/zxing/oned/EAN8Reader.cpp +73 -0
  103. data/ext/qrscanner/zxing/core/src/zxing/oned/EAN8Reader.h +41 -0
  104. data/ext/qrscanner/zxing/core/src/zxing/oned/ITFReader.cpp +363 -0
  105. data/ext/qrscanner/zxing/core/src/zxing/oned/ITFReader.h +56 -0
  106. data/ext/qrscanner/zxing/core/src/zxing/oned/MultiFormatOneDReader.cpp +66 -0
  107. data/ext/qrscanner/zxing/core/src/zxing/oned/MultiFormatOneDReader.h +38 -0
  108. data/ext/qrscanner/zxing/core/src/zxing/oned/MultiFormatUPCEANReader.cpp +87 -0
  109. data/ext/qrscanner/zxing/core/src/zxing/oned/MultiFormatUPCEANReader.h +38 -0
  110. data/ext/qrscanner/zxing/core/src/zxing/oned/OneDReader.cpp +206 -0
  111. data/ext/qrscanner/zxing/core/src/zxing/oned/OneDReader.h +50 -0
  112. data/ext/qrscanner/zxing/core/src/zxing/oned/OneDResultPoint.cpp +36 -0
  113. data/ext/qrscanner/zxing/core/src/zxing/oned/OneDResultPoint.h +40 -0
  114. data/ext/qrscanner/zxing/core/src/zxing/oned/UPCAReader.cpp +65 -0
  115. data/ext/qrscanner/zxing/core/src/zxing/oned/UPCAReader.h +49 -0
  116. data/ext/qrscanner/zxing/core/src/zxing/oned/UPCEANReader.cpp +311 -0
  117. data/ext/qrscanner/zxing/core/src/zxing/oned/UPCEANReader.h +77 -0
  118. data/ext/qrscanner/zxing/core/src/zxing/oned/UPCEReader.cpp +143 -0
  119. data/ext/qrscanner/zxing/core/src/zxing/oned/UPCEReader.h +47 -0
  120. data/ext/qrscanner/zxing/core/src/zxing/qrcode/ErrorCorrectionLevel.cpp +49 -0
  121. data/ext/qrscanner/zxing/core/src/zxing/qrcode/ErrorCorrectionLevel.h +46 -0
  122. data/ext/qrscanner/zxing/core/src/zxing/qrcode/FormatInformation.cpp +108 -0
  123. data/ext/qrscanner/zxing/core/src/zxing/qrcode/FormatInformation.h +54 -0
  124. data/ext/qrscanner/zxing/core/src/zxing/qrcode/QRCodeReader.cpp +82 -0
  125. data/ext/qrscanner/zxing/core/src/zxing/qrcode/QRCodeReader.h +43 -0
  126. data/ext/qrscanner/zxing/core/src/zxing/qrcode/Version.cpp +557 -0
  127. data/ext/qrscanner/zxing/core/src/zxing/qrcode/Version.h +85 -0
  128. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/BitMatrixParser.cpp +191 -0
  129. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/BitMatrixParser.h +56 -0
  130. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/DataBlock.cpp +118 -0
  131. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/DataBlock.h +50 -0
  132. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/DataMask.cpp +159 -0
  133. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/DataMask.h +50 -0
  134. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/DecodedBitStreamParser.cpp +353 -0
  135. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/DecodedBitStreamParser.h +59 -0
  136. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/Decoder.cpp +103 -0
  137. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/Decoder.h +47 -0
  138. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/Mode.cpp +73 -0
  139. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/Mode.h +50 -0
  140. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/AlignmentPattern.cpp +46 -0
  141. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/AlignmentPattern.h +45 -0
  142. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/AlignmentPatternFinder.cpp +209 -0
  143. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/AlignmentPatternFinder.h +68 -0
  144. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/Detector.cpp +286 -0
  145. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/Detector.h +64 -0
  146. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/FinderPattern.cpp +58 -0
  147. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/FinderPattern.h +48 -0
  148. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/FinderPatternFinder.cpp +540 -0
  149. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/FinderPatternFinder.h +69 -0
  150. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/FinderPatternInfo.cpp +41 -0
  151. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/FinderPatternInfo.h +47 -0
  152. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/QREdgeDetector.cpp +169 -0
  153. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/QREdgeDetector.h +48 -0
  154. data/ext/qrscanner/zxing/core/tests/src/TestRunner.cpp +30 -0
  155. data/ext/qrscanner/zxing/core/tests/src/common/BitArrayTest.cpp +96 -0
  156. data/ext/qrscanner/zxing/core/tests/src/common/BitArrayTest.h +50 -0
  157. data/ext/qrscanner/zxing/core/tests/src/common/BitMatrixTest.cpp +107 -0
  158. data/ext/qrscanner/zxing/core/tests/src/common/BitMatrixTest.h +55 -0
  159. data/ext/qrscanner/zxing/core/tests/src/common/BitSourceTest.cpp +49 -0
  160. data/ext/qrscanner/zxing/core/tests/src/common/BitSourceTest.h +42 -0
  161. data/ext/qrscanner/zxing/core/tests/src/common/BlackPointEstimatorTest.cpp +47 -0
  162. data/ext/qrscanner/zxing/core/tests/src/common/BlackPointEstimatorTest.h +45 -0
  163. data/ext/qrscanner/zxing/core/tests/src/common/CountedTest.cpp +54 -0
  164. data/ext/qrscanner/zxing/core/tests/src/common/CountedTest.h +46 -0
  165. data/ext/qrscanner/zxing/core/tests/src/common/PerspectiveTransformTest.cpp +69 -0
  166. data/ext/qrscanner/zxing/core/tests/src/common/PerspectiveTransformTest.h +47 -0
  167. data/ext/qrscanner/zxing/core/tests/src/common/reedsolomon/ReedSolomonTest.cpp +130 -0
  168. data/ext/qrscanner/zxing/core/tests/src/common/reedsolomon/ReedSolomonTest.h +62 -0
  169. data/ext/qrscanner/zxing/core/tests/src/qrcode/ErrorCorrectionLevelTest.cpp +47 -0
  170. data/ext/qrscanner/zxing/core/tests/src/qrcode/ErrorCorrectionLevelTest.h +45 -0
  171. data/ext/qrscanner/zxing/core/tests/src/qrcode/FormatInformationTest.cpp +70 -0
  172. data/ext/qrscanner/zxing/core/tests/src/qrcode/FormatInformationTest.h +47 -0
  173. data/ext/qrscanner/zxing/core/tests/src/qrcode/VersionTest.cpp +88 -0
  174. data/ext/qrscanner/zxing/core/tests/src/qrcode/VersionTest.h +49 -0
  175. data/ext/qrscanner/zxing/core/tests/src/qrcode/decoder/DataMaskTest.cpp +134 -0
  176. data/ext/qrscanner/zxing/core/tests/src/qrcode/decoder/DataMaskTest.h +91 -0
  177. data/ext/qrscanner/zxing/core/tests/src/qrcode/decoder/ModeTest.cpp +52 -0
  178. data/ext/qrscanner/zxing/core/tests/src/qrcode/decoder/ModeTest.h +47 -0
  179. data/ext/qrscanner/zxing/format +2 -0
  180. data/ext/qrscanner/zxing/magick/src/MagickBitmapSource.cpp +99 -0
  181. data/ext/qrscanner/zxing/magick/src/MagickBitmapSource.h +49 -0
  182. data/ext/qrscanner/zxing/magick/src/example.cpp +83 -0
  183. data/ext/qrscanner/zxing/magick/src/main.cpp +241 -0
  184. data/ext/qrscanner/zxing/magick/src/qrscanner.cpp +188 -0
  185. data/ext/qrscanner/zxing/osx.xcodeproj/project.pbxproj +1045 -0
  186. data/ext/qrscanner/zxing/scons/scons-LICENSE +25 -0
  187. data/ext/qrscanner/zxing/scons/scons-README +204 -0
  188. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Action.py +1241 -0
  189. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Action.pyc +0 -0
  190. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Builder.py +877 -0
  191. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Builder.pyc +0 -0
  192. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/CacheDir.py +216 -0
  193. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/CacheDir.pyc +0 -0
  194. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Conftest.py +793 -0
  195. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Conftest.pyc +0 -0
  196. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Debug.py +220 -0
  197. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Debug.pyc +0 -0
  198. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Defaults.py +480 -0
  199. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Defaults.pyc +0 -0
  200. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Environment.py +2318 -0
  201. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Environment.pyc +0 -0
  202. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Errors.py +205 -0
  203. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Errors.pyc +0 -0
  204. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Executor.py +633 -0
  205. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Executor.pyc +0 -0
  206. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Job.py +435 -0
  207. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Job.pyc +0 -0
  208. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Memoize.py +244 -0
  209. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Memoize.pyc +0 -0
  210. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Node/Alias.py +152 -0
  211. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Node/Alias.pyc +0 -0
  212. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Node/FS.py +3142 -0
  213. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Node/FS.pyc +0 -0
  214. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Node/Python.py +128 -0
  215. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Node/Python.pyc +0 -0
  216. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Node/__init__.py +1328 -0
  217. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Node/__init__.pyc +0 -0
  218. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/BoolOption.py +50 -0
  219. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/BoolOption.pyc +0 -0
  220. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/EnumOption.py +50 -0
  221. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/EnumOption.pyc +0 -0
  222. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/ListOption.py +50 -0
  223. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/ListOption.pyc +0 -0
  224. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/PackageOption.py +50 -0
  225. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/PackageOption.pyc +0 -0
  226. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/PathOption.py +76 -0
  227. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/PathOption.pyc +0 -0
  228. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/__init__.py +67 -0
  229. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/__init__.pyc +0 -0
  230. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/PathList.py +231 -0
  231. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/PathList.pyc +0 -0
  232. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/__init__.py +241 -0
  233. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/__init__.pyc +0 -0
  234. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/aix.py +69 -0
  235. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/cygwin.py +55 -0
  236. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/darwin.py +46 -0
  237. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/hpux.py +46 -0
  238. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/irix.py +44 -0
  239. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/os2.py +58 -0
  240. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/posix.py +263 -0
  241. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/posix.pyc +0 -0
  242. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/sunos.py +50 -0
  243. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/win32.py +385 -0
  244. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/SConf.py +1030 -0
  245. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/SConf.pyc +0 -0
  246. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/SConsign.py +383 -0
  247. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/SConsign.pyc +0 -0
  248. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/C.py +132 -0
  249. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/C.pyc +0 -0
  250. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/D.py +73 -0
  251. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/D.pyc +0 -0
  252. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/Dir.py +109 -0
  253. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/Dir.pyc +0 -0
  254. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/Fortran.py +316 -0
  255. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/Fortran.pyc +0 -0
  256. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/IDL.py +48 -0
  257. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/LaTeX.py +362 -0
  258. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/LaTeX.pyc +0 -0
  259. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/Prog.py +101 -0
  260. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/Prog.pyc +0 -0
  261. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/RC.py +55 -0
  262. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/__init__.py +413 -0
  263. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/__init__.pyc +0 -0
  264. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/Interactive.py +384 -0
  265. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/Interactive.pyc +0 -0
  266. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/Main.py +1334 -0
  267. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/Main.pyc +0 -0
  268. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/SConsOptions.py +939 -0
  269. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/SConsOptions.pyc +0 -0
  270. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/SConscript.py +640 -0
  271. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/SConscript.pyc +0 -0
  272. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/__init__.py +412 -0
  273. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/__init__.pyc +0 -0
  274. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Sig.py +63 -0
  275. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Subst.py +904 -0
  276. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Subst.pyc +0 -0
  277. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Taskmaster.py +1017 -0
  278. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Taskmaster.pyc +0 -0
  279. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/386asm.py +61 -0
  280. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/BitKeeper.py +67 -0
  281. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/BitKeeper.pyc +0 -0
  282. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/CVS.py +73 -0
  283. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/CVS.pyc +0 -0
  284. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/FortranCommon.py +246 -0
  285. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/FortranCommon.pyc +0 -0
  286. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/JavaCommon.py +323 -0
  287. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/JavaCommon.pyc +0 -0
  288. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/MSCommon/__init__.py +56 -0
  289. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/MSCommon/arch.py +61 -0
  290. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/MSCommon/common.py +240 -0
  291. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/MSCommon/netframework.py +82 -0
  292. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/MSCommon/sdk.py +391 -0
  293. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/MSCommon/vc.py +456 -0
  294. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/MSCommon/vs.py +499 -0
  295. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/Perforce.py +103 -0
  296. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/Perforce.pyc +0 -0
  297. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/PharLapCommon.py +137 -0
  298. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/PharLapCommon.pyc +0 -0
  299. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/RCS.py +64 -0
  300. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/RCS.pyc +0 -0
  301. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/SCCS.py +64 -0
  302. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/SCCS.pyc +0 -0
  303. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/Subversion.py +71 -0
  304. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/__init__.py +681 -0
  305. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/__init__.pyc +0 -0
  306. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/aixc++.py +82 -0
  307. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/aixcc.py +74 -0
  308. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/aixf77.py +80 -0
  309. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/aixlink.py +76 -0
  310. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/applelink.py +71 -0
  311. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ar.py +63 -0
  312. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ar.pyc +0 -0
  313. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/as.py +78 -0
  314. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/as.pyc +0 -0
  315. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/bcc32.py +81 -0
  316. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/c++.py +99 -0
  317. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/c++.pyc +0 -0
  318. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/cc.py +102 -0
  319. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/cc.pyc +0 -0
  320. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/cvf.py +58 -0
  321. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/default.py +50 -0
  322. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/default.pyc +0 -0
  323. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/dmd.py +223 -0
  324. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/dmd.pyc +0 -0
  325. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/dvi.py +64 -0
  326. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/dvipdf.py +124 -0
  327. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/dvipdf.pyc +0 -0
  328. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/dvips.py +94 -0
  329. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/dvips.pyc +0 -0
  330. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/f77.py +62 -0
  331. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/f77.pyc +0 -0
  332. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/f90.py +62 -0
  333. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/f90.pyc +0 -0
  334. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/f95.py +63 -0
  335. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/f95.pyc +0 -0
  336. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/filesystem.py +98 -0
  337. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/filesystem.pyc +0 -0
  338. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/fortran.py +62 -0
  339. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/fortran.pyc +0 -0
  340. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/g++.py +90 -0
  341. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/g++.pyc +0 -0
  342. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/g77.py +73 -0
  343. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/g77.pyc +0 -0
  344. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gas.py +53 -0
  345. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gas.pyc +0 -0
  346. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gcc.py +80 -0
  347. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gcc.pyc +0 -0
  348. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gfortran.py +64 -0
  349. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gfortran.pyc +0 -0
  350. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gnulink.py +63 -0
  351. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gnulink.pyc +0 -0
  352. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gs.py +81 -0
  353. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gs.pyc +0 -0
  354. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/hpc++.py +84 -0
  355. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/hpcc.py +53 -0
  356. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/hplink.py +77 -0
  357. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/icc.py +59 -0
  358. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/icl.py +52 -0
  359. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ifl.py +72 -0
  360. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ifl.pyc +0 -0
  361. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ifort.py +88 -0
  362. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ifort.pyc +0 -0
  363. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ilink.py +59 -0
  364. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ilink32.py +60 -0
  365. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/install.py +229 -0
  366. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/install.pyc +0 -0
  367. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/intelc.py +482 -0
  368. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ipkg.py +67 -0
  369. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/jar.py +110 -0
  370. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/jar.pyc +0 -0
  371. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/javac.py +230 -0
  372. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/javac.pyc +0 -0
  373. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/javah.py +137 -0
  374. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/javah.pyc +0 -0
  375. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/latex.py +79 -0
  376. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/latex.pyc +0 -0
  377. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/lex.py +97 -0
  378. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/lex.pyc +0 -0
  379. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/link.py +121 -0
  380. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/link.pyc +0 -0
  381. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/linkloc.py +112 -0
  382. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/m4.py +63 -0
  383. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/m4.pyc +0 -0
  384. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/masm.py +77 -0
  385. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/midl.py +88 -0
  386. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/mingw.py +158 -0
  387. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/mslib.py +64 -0
  388. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/mslink.py +266 -0
  389. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/mssdk.py +50 -0
  390. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/msvc.py +268 -0
  391. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/msvs.py +1388 -0
  392. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/mwcc.py +207 -0
  393. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/mwld.py +107 -0
  394. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/nasm.py +72 -0
  395. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/__init__.py +312 -0
  396. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/ipk.py +185 -0
  397. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/msi.py +527 -0
  398. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/rpm.py +365 -0
  399. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/src_tarbz2.py +43 -0
  400. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/src_targz.py +43 -0
  401. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/src_zip.py +43 -0
  402. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/tarbz2.py +44 -0
  403. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/targz.py +44 -0
  404. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/zip.py +44 -0
  405. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/pdf.py +78 -0
  406. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/pdf.pyc +0 -0
  407. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/pdflatex.py +83 -0
  408. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/pdflatex.pyc +0 -0
  409. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/pdftex.py +108 -0
  410. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/pdftex.pyc +0 -0
  411. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/qt.py +336 -0
  412. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/rmic.py +120 -0
  413. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/rmic.pyc +0 -0
  414. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/rpcgen.py +70 -0
  415. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/rpcgen.pyc +0 -0
  416. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/rpm.py +132 -0
  417. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/rpm.pyc +0 -0
  418. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sgiar.py +68 -0
  419. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sgic++.py +58 -0
  420. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sgicc.py +53 -0
  421. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sgilink.py +63 -0
  422. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sunar.py +67 -0
  423. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sunc++.py +142 -0
  424. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/suncc.py +58 -0
  425. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sunf77.py +63 -0
  426. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sunf90.py +64 -0
  427. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sunf95.py +64 -0
  428. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sunlink.py +77 -0
  429. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/swig.py +182 -0
  430. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/swig.pyc +0 -0
  431. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/tar.py +73 -0
  432. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/tar.pyc +0 -0
  433. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/tex.py +807 -0
  434. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/tex.pyc +0 -0
  435. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/textfile.py +175 -0
  436. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/tlib.py +53 -0
  437. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/wix.py +99 -0
  438. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/wix.pyc +0 -0
  439. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/yacc.py +130 -0
  440. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/yacc.pyc +0 -0
  441. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/zip.py +99 -0
  442. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/zip.pyc +0 -0
  443. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Util.py +1496 -0
  444. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Util.pyc +0 -0
  445. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/BoolVariable.py +89 -0
  446. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/BoolVariable.pyc +0 -0
  447. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/EnumVariable.py +103 -0
  448. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/EnumVariable.pyc +0 -0
  449. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/ListVariable.py +135 -0
  450. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/ListVariable.pyc +0 -0
  451. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/PackageVariable.py +106 -0
  452. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/PackageVariable.pyc +0 -0
  453. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/PathVariable.py +147 -0
  454. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/PathVariable.pyc +0 -0
  455. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/__init__.py +312 -0
  456. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/__init__.pyc +0 -0
  457. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Warnings.py +246 -0
  458. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Warnings.pyc +0 -0
  459. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/__init__.py +49 -0
  460. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/__init__.pyc +0 -0
  461. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/__init__.py +237 -0
  462. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/__init__.pyc +0 -0
  463. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/_scons_builtins.py +150 -0
  464. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/_scons_builtins.pyc +0 -0
  465. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/_scons_collections.py +45 -0
  466. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/_scons_dbm.py +45 -0
  467. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/_scons_hashlib.py +76 -0
  468. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/_scons_io.py +45 -0
  469. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/_scons_sets.py +563 -0
  470. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/_scons_subprocess.py +1281 -0
  471. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/cpp.py +589 -0
  472. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/cpp.pyc +0 -0
  473. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/dblite.py +251 -0
  474. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/dblite.pyc +0 -0
  475. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/exitfuncs.py +77 -0
  476. data/ext/qrscanner/zxing/scons/scons-time.py +1544 -0
  477. data/ext/qrscanner/zxing/scons/scons.py +196 -0
  478. data/ext/qrscanner/zxing/scons/sconsign.py +513 -0
  479. data/qrscanner.gemspec +33 -0
  480. metadata +1023 -0
@@ -0,0 +1,54 @@
1
+ #ifndef __FORMAT_INFORMATION_H__
2
+ #define __FORMAT_INFORMATION_H__
3
+
4
+ /*
5
+ * FormatInformation.h
6
+ * zxing
7
+ *
8
+ * Copyright 2010 ZXing authors All rights reserved.
9
+ *
10
+ * Licensed under the Apache License, Version 2.0 (the "License");
11
+ * you may not use this file except in compliance with the License.
12
+ * You may obtain a copy of the License at
13
+ *
14
+ * http://www.apache.org/licenses/LICENSE-2.0
15
+ *
16
+ * Unless required by applicable law or agreed to in writing, software
17
+ * distributed under the License is distributed on an "AS IS" BASIS,
18
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ * See the License for the specific language governing permissions and
20
+ * limitations under the License.
21
+ */
22
+
23
+ #include <zxing/qrcode/ErrorCorrectionLevel.h>
24
+ #include <zxing/common/Counted.h>
25
+ #include <iostream>
26
+
27
+ namespace zxing {
28
+ namespace qrcode {
29
+
30
+ class FormatInformation : public Counted {
31
+ private:
32
+ static int FORMAT_INFO_MASK_QR;
33
+ static int FORMAT_INFO_DECODE_LOOKUP[][2];
34
+ static int N_FORMAT_INFO_DECODE_LOOKUPS;
35
+ static int BITS_SET_IN_HALF_BYTE[];
36
+
37
+ ErrorCorrectionLevel &errorCorrectionLevel_;
38
+ unsigned char dataMask_;
39
+
40
+ FormatInformation(int formatInfo);
41
+
42
+ public:
43
+ static int numBitsDiffering(unsigned int a, unsigned int b);
44
+ static Ref<FormatInformation> decodeFormatInformation(int rawFormatInfo);
45
+ static Ref<FormatInformation> doDecodeFormatInformation(int rawFormatInfo);
46
+ ErrorCorrectionLevel &getErrorCorrectionLevel();
47
+ unsigned char getDataMask();
48
+ friend bool operator==(const FormatInformation &a, const FormatInformation &b);
49
+ friend std::ostream& operator<<(std::ostream& out, const FormatInformation& fi);
50
+ };
51
+ }
52
+ }
53
+
54
+ #endif // __FORMAT_INFORMATION_H__
@@ -0,0 +1,82 @@
1
+ /*
2
+ * QRCodeReader.cpp
3
+ * zxing
4
+ *
5
+ * Created by Christian Brunschen on 20/05/2008.
6
+ * Copyright 2008 ZXing authors All rights reserved.
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ */
20
+
21
+ #include <zxing/qrcode/QRCodeReader.h>
22
+ #include <zxing/qrcode/detector/Detector.h>
23
+
24
+ #include <iostream>
25
+
26
+ namespace zxing {
27
+ namespace qrcode {
28
+
29
+ using namespace std;
30
+
31
+ QRCodeReader::QRCodeReader() :decoder_() {
32
+ }
33
+ //TODO: see if any of the other files in the qrcode tree need tryHarder
34
+ Ref<Result> QRCodeReader::decode(Ref<BinaryBitmap> image, DecodeHints hints) {
35
+ #ifdef DEBUG
36
+ cout << "decoding image " << image.object_ << ":\n" << flush;
37
+ #endif
38
+
39
+ Detector detector(image->getBlackMatrix());
40
+
41
+
42
+ #ifdef DEBUG
43
+ cout << "(1) created detector " << &detector << "\n" << flush;
44
+ #endif
45
+
46
+ Ref<DetectorResult> detectorResult(detector.detect(hints));
47
+ #ifdef DEBUG
48
+ cout << "(2) detected, have detectorResult " << detectorResult.object_ << "\n" << flush;
49
+ #endif
50
+
51
+ std::vector<Ref<ResultPoint> > points(detectorResult->getPoints());
52
+
53
+
54
+ #ifdef DEBUG
55
+ cout << "(3) extracted points " << &points << "\n" << flush;
56
+ cout << "found " << points->size() << " points:\n";
57
+ for (size_t i = 0; i < points->size(); i++) {
58
+ cout << " " << points[i]->getX() << "," << points[i]->getY() << "\n";
59
+ }
60
+ cout << "bits:\n";
61
+ cout << *(detectorResult->getBits()) << "\n";
62
+ #endif
63
+
64
+ Ref<DecoderResult> decoderResult(decoder_.decode(detectorResult->getBits()));
65
+ #ifdef DEBUG
66
+ cout << "(4) decoded, have decoderResult " << decoderResult.object_ << "\n" << flush;
67
+ #endif
68
+
69
+ Ref<Result> result(
70
+ new Result(decoderResult->getText(), decoderResult->getRawBytes(), points, BarcodeFormat_QR_CODE));
71
+ #ifdef DEBUG
72
+ cout << "(5) created result " << result.object_ << ", returning\n" << flush;
73
+ #endif
74
+
75
+ return result;
76
+ }
77
+
78
+ QRCodeReader::~QRCodeReader() {
79
+ }
80
+
81
+ }
82
+ }
@@ -0,0 +1,43 @@
1
+ #ifndef __QR_CODE_READER_H__
2
+ #define __QR_CODE_READER_H__
3
+
4
+ /*
5
+ * QRCodeReader.h
6
+ * zxing
7
+ *
8
+ * Copyright 2010 ZXing authors All rights reserved.
9
+ *
10
+ * Licensed under the Apache License, Version 2.0 (the "License");
11
+ * you may not use this file except in compliance with the License.
12
+ * You may obtain a copy of the License at
13
+ *
14
+ * http://www.apache.org/licenses/LICENSE-2.0
15
+ *
16
+ * Unless required by applicable law or agreed to in writing, software
17
+ * distributed under the License is distributed on an "AS IS" BASIS,
18
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ * See the License for the specific language governing permissions and
20
+ * limitations under the License.
21
+ */
22
+
23
+ #include <zxing/Reader.h>
24
+ #include <zxing/qrcode/decoder/Decoder.h>
25
+ #include <zxing/DecodeHints.h>
26
+
27
+ namespace zxing {
28
+ namespace qrcode {
29
+
30
+ class QRCodeReader : public Reader {
31
+ private:
32
+ Decoder decoder_;
33
+
34
+ public:
35
+ QRCodeReader();
36
+ virtual Ref<Result> decode(Ref<BinaryBitmap> image, DecodeHints hints);
37
+ virtual ~QRCodeReader();
38
+
39
+ };
40
+ }
41
+ }
42
+
43
+ #endif // __QR_CODE_READER_H__
@@ -0,0 +1,557 @@
1
+ /*
2
+ * Version.cpp
3
+ * zxing
4
+ *
5
+ * Created by Christian Brunschen on 14/05/2008.
6
+ * Copyright 2008 ZXing authors All rights reserved.
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ */
20
+
21
+ #include <zxing/qrcode/Version.h>
22
+ #include <zxing/qrcode/FormatInformation.h>
23
+ #include <limits>
24
+ #include <iostream>
25
+ #include <cstdarg>
26
+
27
+ namespace zxing {
28
+ namespace qrcode {
29
+ using namespace std;
30
+
31
+ ECB::ECB(int count, int dataCodewords) :
32
+ count_(count), dataCodewords_(dataCodewords) {
33
+ }
34
+
35
+ int ECB::getCount() {
36
+ return count_;
37
+ }
38
+
39
+ int ECB::getDataCodewords() {
40
+ return dataCodewords_;
41
+ }
42
+
43
+ ECBlocks::ECBlocks(int ecCodewords, ECB *ecBlocks) :
44
+ ecCodewords_(ecCodewords), ecBlocks_(1, ecBlocks) {
45
+ }
46
+
47
+ ECBlocks::ECBlocks(int ecCodewords, ECB *ecBlocks1, ECB *ecBlocks2) :
48
+ ecCodewords_(ecCodewords), ecBlocks_(1, ecBlocks1) {
49
+ ecBlocks_.push_back(ecBlocks2);
50
+ }
51
+
52
+ int ECBlocks::getECCodewords() {
53
+ return ecCodewords_;
54
+ }
55
+
56
+ std::vector<ECB*>& ECBlocks::getECBlocks() {
57
+ return ecBlocks_;
58
+ }
59
+
60
+ ECBlocks::~ECBlocks() {
61
+ for (size_t i = 0; i < ecBlocks_.size(); i++) {
62
+ delete ecBlocks_[i];
63
+ }
64
+ }
65
+
66
+ unsigned int Version::VERSION_DECODE_INFO[] = { 0x07C94, 0x085BC, 0x09A99, 0x0A4D3, 0x0BBF6, 0x0C762, 0x0D847, 0x0E60D,
67
+ 0x0F928, 0x10B78, 0x1145D, 0x12A17, 0x13532, 0x149A6, 0x15683, 0x168C9, 0x177EC, 0x18EC4, 0x191E1, 0x1AFAB,
68
+ 0x1B08E, 0x1CC1A, 0x1D33F, 0x1ED75, 0x1F250, 0x209D5, 0x216F0, 0x228BA, 0x2379F, 0x24B0B, 0x2542E, 0x26A64,
69
+ 0x27541, 0x28C69
70
+ };
71
+ int Version::N_VERSION_DECODE_INFOS = 34;
72
+ vector<Ref<Version> > Version::VERSIONS;
73
+ static int N_VERSIONS = Version::buildVersions();
74
+
75
+ int Version::getVersionNumber() {
76
+ return versionNumber_;
77
+ }
78
+
79
+ vector<int> &Version::getAlignmentPatternCenters() {
80
+ return alignmentPatternCenters_;
81
+ }
82
+
83
+ int Version::getTotalCodewords() {
84
+ return totalCodewords_;
85
+ }
86
+
87
+ int Version::getDimensionForVersion() {
88
+ return 17 + 4 * versionNumber_;
89
+ }
90
+
91
+ ECBlocks& Version::getECBlocksForLevel(ErrorCorrectionLevel &ecLevel) {
92
+ return *ecBlocks_[ecLevel.ordinal()];
93
+ }
94
+
95
+ Version *Version::getProvisionalVersionForDimension(int dimension) {
96
+ if (dimension % 4 != 1) {
97
+ throw ReaderException("Dimension must be 1 mod 4");
98
+ }
99
+ return Version::getVersionForNumber((dimension - 17) >> 2);
100
+ }
101
+
102
+ Version *Version::getVersionForNumber(int versionNumber) {
103
+ if (versionNumber < 1 || versionNumber > N_VERSIONS) {
104
+ throw ReaderException("versionNumber must be between 1 and 40");
105
+ }
106
+
107
+ return VERSIONS[versionNumber - 1];
108
+ }
109
+
110
+ Version::Version(int versionNumber, vector<int> *alignmentPatternCenters, ECBlocks *ecBlocks1, ECBlocks *ecBlocks2,
111
+ ECBlocks *ecBlocks3, ECBlocks *ecBlocks4) :
112
+ versionNumber_(versionNumber), alignmentPatternCenters_(*alignmentPatternCenters), ecBlocks_(4), totalCodewords_(0) {
113
+ ecBlocks_[0] = ecBlocks1;
114
+ ecBlocks_[1] = ecBlocks2;
115
+ ecBlocks_[2] = ecBlocks3;
116
+ ecBlocks_[3] = ecBlocks4;
117
+
118
+ int total = 0;
119
+ int ecCodewords = ecBlocks1->getECCodewords();
120
+ vector<ECB*> &ecbArray = ecBlocks1->getECBlocks();
121
+ for (size_t i = 0; i < ecbArray.size(); i++) {
122
+ ECB *ecBlock = ecbArray[i];
123
+ total += ecBlock->getCount() * (ecBlock->getDataCodewords() + ecCodewords);
124
+ }
125
+ totalCodewords_ = total;
126
+ }
127
+
128
+ Version::~Version() {
129
+ delete &alignmentPatternCenters_;
130
+ for (size_t i = 0; i < ecBlocks_.size(); i++) {
131
+ delete ecBlocks_[i];
132
+ }
133
+ }
134
+
135
+ Version *Version::decodeVersionInformation(unsigned int versionBits) {
136
+ int bestDifference = numeric_limits<int>::max();
137
+ size_t bestVersion = 0;
138
+ for (int i = 0; i < N_VERSION_DECODE_INFOS; i++) {
139
+ unsigned targetVersion = VERSION_DECODE_INFO[i];
140
+ // Do the version info bits match exactly? done.
141
+ if (targetVersion == versionBits) {
142
+ return getVersionForNumber(i + 7);
143
+ }
144
+ // Otherwise see if this is the closest to a real version info bit
145
+ // string we have seen so far
146
+ int bitsDifference = FormatInformation::numBitsDiffering(versionBits, targetVersion);
147
+ if (bitsDifference < bestDifference) {
148
+ bestVersion = i + 7;
149
+ bestDifference = bitsDifference;
150
+ }
151
+ }
152
+ // We can tolerate up to 3 bits of error since no two version info codewords will
153
+ // differ in less than 4 bits.
154
+ if (bestDifference <= 3) {
155
+ return getVersionForNumber(bestVersion);
156
+ }
157
+ // If we didn't find a close enough match, fail
158
+ return 0;
159
+ }
160
+
161
+ Ref<BitMatrix> Version::buildFunctionPattern() {
162
+ int dimension = getDimensionForVersion();
163
+ Ref<BitMatrix> functionPattern(new BitMatrix(dimension));
164
+
165
+
166
+ // Top left finder pattern + separator + format
167
+ functionPattern->setRegion(0, 0, 9, 9);
168
+ // Top right finder pattern + separator + format
169
+ functionPattern->setRegion(dimension - 8, 0, 8, 9);
170
+ // Bottom left finder pattern + separator + format
171
+ functionPattern->setRegion(0, dimension - 8, 9, 8);
172
+
173
+
174
+ // Alignment patterns
175
+ size_t max = alignmentPatternCenters_.size();
176
+ for (size_t x = 0; x < max; x++) {
177
+ int i = alignmentPatternCenters_[x] - 2;
178
+ for (size_t y = 0; y < max; y++) {
179
+ if ((x == 0 && (y == 0 || y == max - 1)) || (x == max - 1 && y == 0)) {
180
+ // No alignment patterns near the three finder patterns
181
+ continue;
182
+ }
183
+ functionPattern->setRegion(alignmentPatternCenters_[y] - 2, i, 5, 5);
184
+ }
185
+ }
186
+
187
+ // Vertical timing pattern
188
+ functionPattern->setRegion(6, 9, 1, dimension - 17);
189
+ // Horizontal timing pattern
190
+ functionPattern->setRegion(9, 6, dimension - 17, 1);
191
+
192
+ if (versionNumber_ > 6) {
193
+ // Version info, top right
194
+ functionPattern->setRegion(dimension - 11, 0, 3, 6);
195
+ // Version info, bottom left
196
+ functionPattern->setRegion(0, dimension - 11, 6, 3);
197
+ }
198
+
199
+
200
+ //#ifdef DEBUG
201
+ // cout << "version " << versionNumber_ << " built function pattern:\n";
202
+ // cout << *functionPattern;
203
+ //#endif
204
+
205
+ return functionPattern;
206
+ }
207
+
208
+ static vector<int> *intArray(size_t n...) {
209
+ va_list ap;
210
+ va_start(ap, n);
211
+ vector<int> *result = new vector<int>(n);
212
+ for (size_t i = 0; i < n; i++) {
213
+ (*result)[i] = va_arg(ap, int);
214
+ }
215
+ va_end(ap);
216
+ return result;
217
+ }
218
+
219
+ int Version::buildVersions() {
220
+ VERSIONS.push_back(Ref<Version>(new Version(1, intArray(0),
221
+ new ECBlocks(7, new ECB(1, 19)),
222
+ new ECBlocks(10, new ECB(1, 16)),
223
+ new ECBlocks(13, new ECB(1, 13)),
224
+ new ECBlocks(17, new ECB(1, 9)))));
225
+ VERSIONS.push_back(Ref<Version>(new Version(2, intArray(2, 6, 18),
226
+ new ECBlocks(10, new ECB(1, 34)),
227
+ new ECBlocks(16, new ECB(1, 28)),
228
+ new ECBlocks(22, new ECB(1, 22)),
229
+ new ECBlocks(28, new ECB(1, 16)))));
230
+ VERSIONS.push_back(Ref<Version>(new Version(3, intArray(2, 6, 22),
231
+ new ECBlocks(15, new ECB(1, 55)),
232
+ new ECBlocks(26, new ECB(1, 44)),
233
+ new ECBlocks(18, new ECB(2, 17)),
234
+ new ECBlocks(22, new ECB(2, 13)))));
235
+ VERSIONS.push_back(Ref<Version>(new Version(4, intArray(2, 6, 26),
236
+ new ECBlocks(20, new ECB(1, 80)),
237
+ new ECBlocks(18, new ECB(2, 32)),
238
+ new ECBlocks(26, new ECB(2, 24)),
239
+ new ECBlocks(16, new ECB(4, 9)))));
240
+ VERSIONS.push_back(Ref<Version>(new Version(5, intArray(2, 6, 30),
241
+ new ECBlocks(26, new ECB(1, 108)),
242
+ new ECBlocks(24, new ECB(2, 43)),
243
+ new ECBlocks(18, new ECB(2, 15),
244
+ new ECB(2, 16)),
245
+ new ECBlocks(22, new ECB(2, 11),
246
+ new ECB(2, 12)))));
247
+ VERSIONS.push_back(Ref<Version>(new Version(6, intArray(2, 6, 34),
248
+ new ECBlocks(18, new ECB(2, 68)),
249
+ new ECBlocks(16, new ECB(4, 27)),
250
+ new ECBlocks(24, new ECB(4, 19)),
251
+ new ECBlocks(28, new ECB(4, 15)))));
252
+ VERSIONS.push_back(Ref<Version>(new Version(7, intArray(3, 6, 22, 38),
253
+ new ECBlocks(20, new ECB(2, 78)),
254
+ new ECBlocks(18, new ECB(4, 31)),
255
+ new ECBlocks(18, new ECB(2, 14),
256
+ new ECB(4, 15)),
257
+ new ECBlocks(26, new ECB(4, 13),
258
+ new ECB(1, 14)))));
259
+ VERSIONS.push_back(Ref<Version>(new Version(8, intArray(3, 6, 24, 42),
260
+ new ECBlocks(24, new ECB(2, 97)),
261
+ new ECBlocks(22, new ECB(2, 38),
262
+ new ECB(2, 39)),
263
+ new ECBlocks(22, new ECB(4, 18),
264
+ new ECB(2, 19)),
265
+ new ECBlocks(26, new ECB(4, 14),
266
+ new ECB(2, 15)))));
267
+ VERSIONS.push_back(Ref<Version>(new Version(9, intArray(3, 6, 26, 46),
268
+ new ECBlocks(30, new ECB(2, 116)),
269
+ new ECBlocks(22, new ECB(3, 36),
270
+ new ECB(2, 37)),
271
+ new ECBlocks(20, new ECB(4, 16),
272
+ new ECB(4, 17)),
273
+ new ECBlocks(24, new ECB(4, 12),
274
+ new ECB(4, 13)))));
275
+ VERSIONS.push_back(Ref<Version>(new Version(10, intArray(3, 6, 28, 50),
276
+ new ECBlocks(18, new ECB(2, 68),
277
+ new ECB(2, 69)),
278
+ new ECBlocks(26, new ECB(4, 43),
279
+ new ECB(1, 44)),
280
+ new ECBlocks(24, new ECB(6, 19),
281
+ new ECB(2, 20)),
282
+ new ECBlocks(28, new ECB(6, 15),
283
+ new ECB(2, 16)))));
284
+ VERSIONS.push_back(Ref<Version>(new Version(11, intArray(3, 6, 30, 54),
285
+ new ECBlocks(20, new ECB(4, 81)),
286
+ new ECBlocks(30, new ECB(1, 50),
287
+ new ECB(4, 51)),
288
+ new ECBlocks(28, new ECB(4, 22),
289
+ new ECB(4, 23)),
290
+ new ECBlocks(24, new ECB(3, 12),
291
+ new ECB(8, 13)))));
292
+ VERSIONS.push_back(Ref<Version>(new Version(12, intArray(3, 6, 32, 58),
293
+ new ECBlocks(24, new ECB(2, 92),
294
+ new ECB(2, 93)),
295
+ new ECBlocks(22, new ECB(6, 36),
296
+ new ECB(2, 37)),
297
+ new ECBlocks(26, new ECB(4, 20),
298
+ new ECB(6, 21)),
299
+ new ECBlocks(28, new ECB(7, 14),
300
+ new ECB(4, 15)))));
301
+ VERSIONS.push_back(Ref<Version>(new Version(13, intArray(3, 6, 34, 62),
302
+ new ECBlocks(26, new ECB(4, 107)),
303
+ new ECBlocks(22, new ECB(8, 37),
304
+ new ECB(1, 38)),
305
+ new ECBlocks(24, new ECB(8, 20),
306
+ new ECB(4, 21)),
307
+ new ECBlocks(22, new ECB(12, 11),
308
+ new ECB(4, 12)))));
309
+ VERSIONS.push_back(Ref<Version>(new Version(14, intArray(4, 6, 26, 46, 66),
310
+ new ECBlocks(30, new ECB(3, 115),
311
+ new ECB(1, 116)),
312
+ new ECBlocks(24, new ECB(4, 40),
313
+ new ECB(5, 41)),
314
+ new ECBlocks(20, new ECB(11, 16),
315
+ new ECB(5, 17)),
316
+ new ECBlocks(24, new ECB(11, 12),
317
+ new ECB(5, 13)))));
318
+ VERSIONS.push_back(Ref<Version>(new Version(15, intArray(4, 6, 26, 48, 70),
319
+ new ECBlocks(22, new ECB(5, 87),
320
+ new ECB(1, 88)),
321
+ new ECBlocks(24, new ECB(5, 41),
322
+ new ECB(5, 42)),
323
+ new ECBlocks(30, new ECB(5, 24),
324
+ new ECB(7, 25)),
325
+ new ECBlocks(24, new ECB(11, 12),
326
+ new ECB(7, 13)))));
327
+ VERSIONS.push_back(Ref<Version>(new Version(16, intArray(4, 6, 26, 50, 74),
328
+ new ECBlocks(24, new ECB(5, 98),
329
+ new ECB(1, 99)),
330
+ new ECBlocks(28, new ECB(7, 45),
331
+ new ECB(3, 46)),
332
+ new ECBlocks(24, new ECB(15, 19),
333
+ new ECB(2, 20)),
334
+ new ECBlocks(30, new ECB(3, 15),
335
+ new ECB(13, 16)))));
336
+ VERSIONS.push_back(Ref<Version>(new Version(17, intArray(4, 6, 30, 54, 78),
337
+ new ECBlocks(28, new ECB(1, 107),
338
+ new ECB(5, 108)),
339
+ new ECBlocks(28, new ECB(10, 46),
340
+ new ECB(1, 47)),
341
+ new ECBlocks(28, new ECB(1, 22),
342
+ new ECB(15, 23)),
343
+ new ECBlocks(28, new ECB(2, 14),
344
+ new ECB(17, 15)))));
345
+ VERSIONS.push_back(Ref<Version>(new Version(18, intArray(4, 6, 30, 56, 82),
346
+ new ECBlocks(30, new ECB(5, 120),
347
+ new ECB(1, 121)),
348
+ new ECBlocks(26, new ECB(9, 43),
349
+ new ECB(4, 44)),
350
+ new ECBlocks(28, new ECB(17, 22),
351
+ new ECB(1, 23)),
352
+ new ECBlocks(28, new ECB(2, 14),
353
+ new ECB(19, 15)))));
354
+ VERSIONS.push_back(Ref<Version>(new Version(19, intArray(4, 6, 30, 58, 86),
355
+ new ECBlocks(28, new ECB(3, 113),
356
+ new ECB(4, 114)),
357
+ new ECBlocks(26, new ECB(3, 44),
358
+ new ECB(11, 45)),
359
+ new ECBlocks(26, new ECB(17, 21),
360
+ new ECB(4, 22)),
361
+ new ECBlocks(26, new ECB(9, 13),
362
+ new ECB(16, 14)))));
363
+ VERSIONS.push_back(Ref<Version>(new Version(20, intArray(4, 6, 34, 62, 90),
364
+ new ECBlocks(28, new ECB(3, 107),
365
+ new ECB(5, 108)),
366
+ new ECBlocks(26, new ECB(3, 41),
367
+ new ECB(13, 42)),
368
+ new ECBlocks(30, new ECB(15, 24),
369
+ new ECB(5, 25)),
370
+ new ECBlocks(28, new ECB(15, 15),
371
+ new ECB(10, 16)))));
372
+ VERSIONS.push_back(Ref<Version>(new Version(21, intArray(5, 6, 28, 50, 72, 94),
373
+ new ECBlocks(28, new ECB(4, 116),
374
+ new ECB(4, 117)),
375
+ new ECBlocks(26, new ECB(17, 42)),
376
+ new ECBlocks(28, new ECB(17, 22),
377
+ new ECB(6, 23)),
378
+ new ECBlocks(30, new ECB(19, 16),
379
+ new ECB(6, 17)))));
380
+ VERSIONS.push_back(Ref<Version>(new Version(22, intArray(5, 6, 26, 50, 74, 98),
381
+ new ECBlocks(28, new ECB(2, 111),
382
+ new ECB(7, 112)),
383
+ new ECBlocks(28, new ECB(17, 46)),
384
+ new ECBlocks(30, new ECB(7, 24),
385
+ new ECB(16, 25)),
386
+ new ECBlocks(24, new ECB(34, 13)))));
387
+ VERSIONS.push_back(Ref<Version>(new Version(23, intArray(5, 6, 30, 54, 78, 102),
388
+ new ECBlocks(30, new ECB(4, 121),
389
+ new ECB(5, 122)),
390
+ new ECBlocks(28, new ECB(4, 47),
391
+ new ECB(14, 48)),
392
+ new ECBlocks(30, new ECB(11, 24),
393
+ new ECB(14, 25)),
394
+ new ECBlocks(30, new ECB(16, 15),
395
+ new ECB(14, 16)))));
396
+ VERSIONS.push_back(Ref<Version>(new Version(24, intArray(5, 6, 28, 54, 80, 106),
397
+ new ECBlocks(30, new ECB(6, 117),
398
+ new ECB(4, 118)),
399
+ new ECBlocks(28, new ECB(6, 45),
400
+ new ECB(14, 46)),
401
+ new ECBlocks(30, new ECB(11, 24),
402
+ new ECB(16, 25)),
403
+ new ECBlocks(30, new ECB(30, 16),
404
+ new ECB(2, 17)))));
405
+ VERSIONS.push_back(Ref<Version>(new Version(25, intArray(5, 6, 32, 58, 84, 110),
406
+ new ECBlocks(26, new ECB(8, 106),
407
+ new ECB(4, 107)),
408
+ new ECBlocks(28, new ECB(8, 47),
409
+ new ECB(13, 48)),
410
+ new ECBlocks(30, new ECB(7, 24),
411
+ new ECB(22, 25)),
412
+ new ECBlocks(30, new ECB(22, 15),
413
+ new ECB(13, 16)))));
414
+ VERSIONS.push_back(Ref<Version>(new Version(26, intArray(5, 6, 30, 58, 86, 114),
415
+ new ECBlocks(28, new ECB(10, 114),
416
+ new ECB(2, 115)),
417
+ new ECBlocks(28, new ECB(19, 46),
418
+ new ECB(4, 47)),
419
+ new ECBlocks(28, new ECB(28, 22),
420
+ new ECB(6, 23)),
421
+ new ECBlocks(30, new ECB(33, 16),
422
+ new ECB(4, 17)))));
423
+ VERSIONS.push_back(Ref<Version>(new Version(27, intArray(5, 6, 34, 62, 90, 118),
424
+ new ECBlocks(30, new ECB(8, 122),
425
+ new ECB(4, 123)),
426
+ new ECBlocks(28, new ECB(22, 45),
427
+ new ECB(3, 46)),
428
+ new ECBlocks(30, new ECB(8, 23),
429
+ new ECB(26, 24)),
430
+ new ECBlocks(30, new ECB(12, 15),
431
+ new ECB(28, 16)))));
432
+ VERSIONS.push_back(Ref<Version>(new Version(28, intArray(6, 6, 26, 50, 74, 98, 122),
433
+ new ECBlocks(30, new ECB(3, 117),
434
+ new ECB(10, 118)),
435
+ new ECBlocks(28, new ECB(3, 45),
436
+ new ECB(23, 46)),
437
+ new ECBlocks(30, new ECB(4, 24),
438
+ new ECB(31, 25)),
439
+ new ECBlocks(30, new ECB(11, 15),
440
+ new ECB(31, 16)))));
441
+ VERSIONS.push_back(Ref<Version>(new Version(29, intArray(6, 6, 30, 54, 78, 102, 126),
442
+ new ECBlocks(30, new ECB(7, 116),
443
+ new ECB(7, 117)),
444
+ new ECBlocks(28, new ECB(21, 45),
445
+ new ECB(7, 46)),
446
+ new ECBlocks(30, new ECB(1, 23),
447
+ new ECB(37, 24)),
448
+ new ECBlocks(30, new ECB(19, 15),
449
+ new ECB(26, 16)))));
450
+ VERSIONS.push_back(Ref<Version>(new Version(30, intArray(6, 6, 26, 52, 78, 104, 130),
451
+ new ECBlocks(30, new ECB(5, 115),
452
+ new ECB(10, 116)),
453
+ new ECBlocks(28, new ECB(19, 47),
454
+ new ECB(10, 48)),
455
+ new ECBlocks(30, new ECB(15, 24),
456
+ new ECB(25, 25)),
457
+ new ECBlocks(30, new ECB(23, 15),
458
+ new ECB(25, 16)))));
459
+ VERSIONS.push_back(Ref<Version>(new Version(31, intArray(6, 6, 30, 56, 82, 108, 134),
460
+ new ECBlocks(30, new ECB(13, 115),
461
+ new ECB(3, 116)),
462
+ new ECBlocks(28, new ECB(2, 46),
463
+ new ECB(29, 47)),
464
+ new ECBlocks(30, new ECB(42, 24),
465
+ new ECB(1, 25)),
466
+ new ECBlocks(30, new ECB(23, 15),
467
+ new ECB(28, 16)))));
468
+ VERSIONS.push_back(Ref<Version>(new Version(32, intArray(6, 6, 34, 60, 86, 112, 138),
469
+ new ECBlocks(30, new ECB(17, 115)),
470
+ new ECBlocks(28, new ECB(10, 46),
471
+ new ECB(23, 47)),
472
+ new ECBlocks(30, new ECB(10, 24),
473
+ new ECB(35, 25)),
474
+ new ECBlocks(30, new ECB(19, 15),
475
+ new ECB(35, 16)))));
476
+ VERSIONS.push_back(Ref<Version>(new Version(33, intArray(6, 6, 30, 58, 86, 114, 142),
477
+ new ECBlocks(30, new ECB(17, 115),
478
+ new ECB(1, 116)),
479
+ new ECBlocks(28, new ECB(14, 46),
480
+ new ECB(21, 47)),
481
+ new ECBlocks(30, new ECB(29, 24),
482
+ new ECB(19, 25)),
483
+ new ECBlocks(30, new ECB(11, 15),
484
+ new ECB(46, 16)))));
485
+ VERSIONS.push_back(Ref<Version>(new Version(34, intArray(6, 6, 34, 62, 90, 118, 146),
486
+ new ECBlocks(30, new ECB(13, 115),
487
+ new ECB(6, 116)),
488
+ new ECBlocks(28, new ECB(14, 46),
489
+ new ECB(23, 47)),
490
+ new ECBlocks(30, new ECB(44, 24),
491
+ new ECB(7, 25)),
492
+ new ECBlocks(30, new ECB(59, 16),
493
+ new ECB(1, 17)))));
494
+ VERSIONS.push_back(Ref<Version>(new Version(35, intArray(7, 6, 30, 54, 78,
495
+ 102, 126, 150),
496
+ new ECBlocks(30, new ECB(12, 121),
497
+ new ECB(7, 122)),
498
+ new ECBlocks(28, new ECB(12, 47),
499
+ new ECB(26, 48)),
500
+ new ECBlocks(30, new ECB(39, 24),
501
+ new ECB(14, 25)),
502
+ new ECBlocks(30, new ECB(22, 15),
503
+ new ECB(41, 16)))));
504
+ VERSIONS.push_back(Ref<Version>(new Version(36, intArray(7, 6, 24, 50, 76,
505
+ 102, 128, 154),
506
+ new ECBlocks(30, new ECB(6, 121),
507
+ new ECB(14, 122)),
508
+ new ECBlocks(28, new ECB(6, 47),
509
+ new ECB(34, 48)),
510
+ new ECBlocks(30, new ECB(46, 24),
511
+ new ECB(10, 25)),
512
+ new ECBlocks(30, new ECB(2, 15),
513
+ new ECB(64, 16)))));
514
+ VERSIONS.push_back(Ref<Version>(new Version(37, intArray(7, 6, 28, 54, 80,
515
+ 106, 132, 158),
516
+ new ECBlocks(30, new ECB(17, 122),
517
+ new ECB(4, 123)),
518
+ new ECBlocks(28, new ECB(29, 46),
519
+ new ECB(14, 47)),
520
+ new ECBlocks(30, new ECB(49, 24),
521
+ new ECB(10, 25)),
522
+ new ECBlocks(30, new ECB(24, 15),
523
+ new ECB(46, 16)))));
524
+ VERSIONS.push_back(Ref<Version>(new Version(38, intArray(7, 6, 32, 58, 84,
525
+ 110, 136, 162),
526
+ new ECBlocks(30, new ECB(4, 122),
527
+ new ECB(18, 123)),
528
+ new ECBlocks(28, new ECB(13, 46),
529
+ new ECB(32, 47)),
530
+ new ECBlocks(30, new ECB(48, 24),
531
+ new ECB(14, 25)),
532
+ new ECBlocks(30, new ECB(42, 15),
533
+ new ECB(32, 16)))));
534
+ VERSIONS.push_back(Ref<Version>(new Version(39, intArray(7, 6, 26, 54, 82,
535
+ 110, 138, 166),
536
+ new ECBlocks(30, new ECB(20, 117),
537
+ new ECB(4, 118)),
538
+ new ECBlocks(28, new ECB(40, 47),
539
+ new ECB(7, 48)),
540
+ new ECBlocks(30, new ECB(43, 24),
541
+ new ECB(22, 25)),
542
+ new ECBlocks(30, new ECB(10, 15),
543
+ new ECB(67, 16)))));
544
+ VERSIONS.push_back(Ref<Version>(new Version(40, intArray(7, 6, 30, 58, 86,
545
+ 114, 142, 170),
546
+ new ECBlocks(30, new ECB(19, 118),
547
+ new ECB(6, 119)),
548
+ new ECBlocks(28, new ECB(18, 47),
549
+ new ECB(31, 48)),
550
+ new ECBlocks(30, new ECB(34, 24),
551
+ new ECB(34, 25)),
552
+ new ECBlocks(30, new ECB(20, 15),
553
+ new ECB(61, 16)))));
554
+ return VERSIONS.size();
555
+ }
556
+ }
557
+ }