rhodes 2.4.1 → 3.0.0.beta.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.
- data/CHANGELOG +7 -0
- data/Rakefile +7 -36
- data/doc/build.txt +48 -22
- data/doc/device-caps.txt +130 -1
- data/doc/rhom.txt +9 -3
- data/doc/test-log-debug.txt +5 -2
- data/lib/extensions/barcode/ext/barcode/platform/android/Rakefile +40 -20
- data/lib/extensions/barcode/ext/barcode/platform/android/ZXing_Info/AUTHORS +58 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/ZXing_Info/CHANGES +266 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/ZXing_Info/COPYING +201 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/ZXing_Info/README +11 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/ext_build.files +173 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/jni/src/barcode.cpp +34 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/BarcodeFormat.java +103 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/Binarizer.java +80 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/BinaryBitmap.java +128 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/ChecksumException.java +37 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/DecodeHintType.java +79 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/EncodeHintType.java +39 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/FormatException.java +38 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/LuminanceSource.java +113 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/MultiFormatReader.java +166 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/MultiFormatWriter.java +65 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/NotFoundException.java +37 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/Reader.java +64 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/ReaderException.java +98 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/Result.java +143 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/ResultMetadataType.java +109 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/ResultPoint.java +127 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/ResultPointCallback.java +29 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/Writer.java +54 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/WriterException.java +35 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/AbstractDoCoMoResultParser.java +39 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/AddressBookAUResultParser.java +73 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/AddressBookDoCoMoResultParser.java +85 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/AddressBookParsedResult.java +122 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/BizcardResultParser.java +94 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/BookmarkDoCoMoResultParser.java +46 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/CalendarParsedResult.java +134 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/EmailAddressParsedResult.java +61 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/EmailAddressResultParser.java +64 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/EmailDoCoMoResultParser.java +87 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ExpandedProductParsedResult.java +195 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ExpandedProductResultParser.java +199 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/GeoParsedResult.java +132 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/GeoResultParser.java +77 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ISBNParsedResult.java +39 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ISBNResultParser.java +54 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ParsedResult.java +73 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ParsedResultType.java +53 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ProductParsedResult.java +49 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ProductResultParser.java +66 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ResultParser.java +319 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/SMSMMSResultParser.java +107 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/SMSParsedResult.java +104 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/SMSTOMMSTOResultParser.java +57 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/TelParsedResult.java +54 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/TelResultParser.java +44 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/TextParsedResult.java +48 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/URIParsedResult.java +113 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/URIResultParser.java +87 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/URLTOResultParser.java +47 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/VCardResultParser.java +346 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/VEventResultParser.java +54 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/WifiParsedResult.java +53 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/WifiResultParser.java +50 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/optional/AbstractNDEFResultParser.java +45 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/optional/NDEFRecord.java +87 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/optional/NDEFSmartPosterParsedResult.java +63 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/optional/NDEFSmartPosterResultParser.java +81 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/optional/NDEFTextResultParser.java +57 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/optional/NDEFURIResultParser.java +95 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/BitArray.java +247 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/BitMatrix.java +226 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/BitSource.java +97 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/CharacterSetECI.java +110 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/Collections.java +53 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/Comparator.java +27 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/DecoderResult.java +63 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/DefaultGridSampler.java +81 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/DetectorResult.java +46 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/ECI.java +52 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/GlobalHistogramBinarizer.java +196 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/GridSampler.java +171 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/HybridBinarizer.java +185 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/PerspectiveTransform.java +148 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/StringUtils.java +191 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/detector/MonochromeRectangleDetector.java +209 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/detector/WhiteRectangleDetector.java +316 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/reedsolomon/GF256.java +139 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/reedsolomon/GF256Poly.java +263 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/reedsolomon/ReedSolomonDecoder.java +194 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/reedsolomon/ReedSolomonEncoder.java +75 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/reedsolomon/ReedSolomonException.java +31 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/datamatrix/DataMatrixReader.java +161 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/datamatrix/decoder/BitMatrixParser.java +446 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/datamatrix/decoder/DataBlock.java +118 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/datamatrix/decoder/DecodedBitStreamParser.java +462 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/datamatrix/decoder/Decoder.java +134 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/datamatrix/decoder/Version.java +242 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/datamatrix/detector/Detector.java +348 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/multi/ByQuadrantReader.java +96 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/multi/GenericMultipleBarcodeReader.java +156 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/multi/MultipleBarcodeReader.java +37 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/multi/qrcode/QRCodeMultiReader.java +80 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/multi/qrcode/detector/MultiDetector.java +72 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/multi/qrcode/detector/MultiFinderPatternFinder.java +324 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/CodaBarReader.java +263 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/Code128Reader.java +473 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/Code128Writer.java +73 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/Code39Reader.java +333 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/Code39Writer.java +82 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/Code93Reader.java +273 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/EAN13Reader.java +135 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/EAN13Writer.java +81 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/EAN8Reader.java +72 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/EAN8Writer.java +76 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/EANManufacturerOrgSupport.java +170 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/ITFReader.java +348 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/ITFWriter.java +68 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/MultiFormatOneDReader.java +109 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/MultiFormatUPCEANReader.java +113 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/OneDReader.java +297 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/UPCAReader.java +75 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/UPCEANExtensionSupport.java +186 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/UPCEANReader.java +355 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/UPCEANWriter.java +104 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/UPCEReader.java +153 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/AbstractRSSReader.java +110 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/DataCharacter.java +37 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/FinderPattern.java +48 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/Pair.java +41 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/RSS14Reader.java +494 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/RSSUtils.java +155 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/BitArrayBuilder.java +85 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/ExpandedPair.java +68 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/RSSExpandedReader.java +578 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI013103decoder.java +47 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder.java +55 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder.java +66 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder.java +76 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder.java +106 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI013x0xDecoder.java +56 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs.java +56 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI01decoder.java +81 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI01weightDecoder.java +58 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.java +85 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoder.java +48 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/BlockParsedResult.java +60 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/CurrentParsingState.java +69 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/DecodedChar.java +52 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/DecodedInformation.java +63 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/DecodedNumeric.java +79 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/DecodedObject.java +44 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/FieldParser.java +285 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.java +414 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/pdf417/PDF417Reader.java +79 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/pdf417/decoder/BitMatrixParser.java +1163 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/pdf417/decoder/DecodedBitStreamParser.java +629 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/pdf417/decoder/Decoder.java +150 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/pdf417/detector/Detector.java +498 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/QRCodeReader.java +166 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/QRCodeWriter.java +108 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/BitMatrixParser.java +203 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/DataBlock.java +123 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/DataMask.java +155 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/DecodedBitStreamParser.java +261 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/Decoder.java +148 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/ErrorCorrectionLevel.java +86 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/FormatInformation.java +171 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/Mode.java +112 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/Version.java +586 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/detector/AlignmentPattern.java +48 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/detector/AlignmentPatternFinder.java +279 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/detector/Detector.java +400 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/detector/FinderPattern.java +63 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/detector/FinderPatternFinder.java +585 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/detector/FinderPatternInfo.java +49 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/encoder/BlockPair.java +37 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/encoder/ByteMatrix.java +97 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/encoder/Encoder.java +557 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/encoder/MaskUtil.java +217 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/encoder/MatrixUtil.java +524 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/encoder/QRCode.java +239 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/rhomobile/barcode/Barcode.java +63 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/rhomobile/barcode/RhoLuminanceSource.java +75 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/Barcode.xcodeproj/project.pbxproj +74 -318
- data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/barcode.m +70 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/COPYING +27 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarCaptureReader.h +105 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarHelpController.h +60 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarImage.h +69 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarImageScanner.h +51 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderController.h +142 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderView.h +118 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderViewController.h +100 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarSDK.h +33 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarSymbol.h +71 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar.h +1476 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Decoder.h +201 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Exception.h +187 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Image.h +321 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/ImageScanner.h +130 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Processor.h +223 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Scanner.h +162 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Symbol.h +529 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Video.h +170 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Window.h +136 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/LICENSE +504 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/README +59 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Resources/zbar-back.png +0 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Resources/zbar-help.html +88 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Resources/zbar-helpicons.png +0 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Resources/zbar-samples.png +0 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/libzbar.a +0 -0
- data/lib/extensions/debugger/debugger.rb +215 -67
- data/lib/extensions/nfc/ext/nfc/platform/android/AndroidManifest.xml +1 -1
- data/lib/extensions/nfc/ext/nfc/platform/android/src/com/nfc/Nfc.java +14 -2
- data/lib/extensions/timeout/timeout.rb +114 -0
- data/lib/framework/rho/render.rb +14 -16
- data/lib/framework/rho/rho.rb +38 -14
- data/lib/framework/rho/rhoapplication.rb +1 -1
- data/lib/framework/rho/rhocontroller.rb +3 -3
- data/lib/framework/rho/rhofsconnector.rb +18 -6
- data/lib/framework/rho/rhoviewhelpers.rb +1 -1
- data/lib/framework/rhoappmanifest.rb +44 -0
- data/lib/framework/rhodes.rb +1 -1
- data/lib/framework/rhoframework.rb +31 -11
- data/lib/framework/rholang/localization_simplified.rb +10 -6
- data/lib/framework/rhom/rhom_object_factory.rb +3 -3
- data/lib/framework/version.rb +1 -1
- data/lib/rhodes.rb +1 -1
- data/platform/android/Rhodes/AndroidManifest.xml +2 -2
- data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_RhodesApplication.h +32 -8
- data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_RhodesService.h +21 -21
- data/platform/android/Rhodes/jni/src/rhocryptimpl.cpp +1 -0
- data/platform/android/Rhodes/jni/src/rhodes.cpp +21 -9
- data/platform/android/Rhodes/jni/src/sslimpl.cpp +1 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/BaseActivity.java +7 -6
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/PushReceiver.java +19 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoCryptImpl.java +2 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +24 -15
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesApplication.java +39 -47
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +113 -106
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/alert/Alert.java +11 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/alert/StatusNotification.java +49 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/socket/SSLImpl.java +5 -1
- data/platform/android/build/RhodesSRC_build.files +1 -0
- data/platform/android/build/android.rake +93 -6
- data/platform/bb/RubyVM/src/com/rho/RhodesApp.java +5 -4
- data/platform/bb/RubyVM/src/com/rho/file/RhoFile.java +10 -0
- data/platform/bb/RubyVM/src/com/rho/sync/SyncEngine.java +16 -15
- data/platform/bb/RubyVM/src/com/rho/sync/SyncNotify.java +2 -2
- data/platform/bb/RubyVM/src/com/rho/sync/SyncSource.java +21 -19
- data/platform/bb/rhodes/src/com/rho/BrowserAdapter5.java +2 -2
- data/platform/bb/rhodes/src/com/rho/rubyext/System.java +6 -1
- data/platform/bb/rhodes/src/com/rho/rubyext/WebView.java +10 -3
- data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +21 -1
- data/platform/iphone/Classes/SimpleMainView.m +5 -5
- data/platform/iphone/Info.plist +1 -1
- data/platform/iphone/rbuild/iphone.rake +30 -1
- data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +12 -0
- data/platform/shared/SyncClient/SyncClient.cpp +136 -20
- data/platform/shared/SyncClient/SyncClient.h +17 -0
- data/platform/shared/common/AppMenu.cpp +6 -1
- data/platform/shared/common/RhoConf.cpp +13 -1
- data/platform/shared/common/RhoConf.h +3 -1
- data/platform/shared/common/RhoDefs.h +10 -0
- data/platform/shared/common/RhoFile.cpp +15 -0
- data/platform/shared/common/RhoFile.h +1 -0
- data/platform/shared/common/RhodesApp.cpp +16 -3
- data/platform/shared/common/RhodesApp.h +1 -0
- data/platform/shared/common/RhodesAppBase.cpp +102 -62
- data/platform/shared/common/RhodesAppBase.h +7 -1
- data/platform/shared/curl/lib/rhossl.c +1 -0
- data/platform/shared/db/DBAdapter.cpp +14 -2
- data/platform/shared/logging/RhoLogConf.cpp +21 -0
- data/platform/shared/logging/RhoLogConf.h +11 -0
- data/platform/shared/logging/RhoLogSink.cpp +24 -0
- data/platform/shared/logging/RhoLogSink.h +20 -1
- data/platform/shared/net/HttpServer.cpp +8 -6
- data/platform/shared/net/RawSocket.cpp +130 -0
- data/platform/shared/net/RawSocket.h +74 -0
- data/platform/shared/ruby/ext/rho/rhoruby.c +37 -1
- data/platform/shared/ruby/ext/rho/rhosupport.c +74 -21
- data/platform/shared/ruby/ext/sqlite3_api/sqlite3_api_wrap.c +9 -1
- data/platform/shared/ruby/vm_eval.c +4 -3
- data/platform/shared/sync/SyncEngine.cpp +11 -12
- data/platform/shared/sync/SyncEngine.h +2 -2
- data/platform/shared/sync/SyncNotify.cpp +41 -13
- data/platform/shared/sync/SyncNotify.h +20 -3
- data/platform/shared/sync/SyncSource.cpp +21 -19
- data/platform/shared/sync/SyncThread.cpp +11 -1
- data/platform/shared/sync/SyncThread.h +3 -0
- data/platform/shared/test/test_helper.cpp +7 -0
- data/platform/win32/RhoSimulator/QtCore4.dll +0 -0
- data/platform/win32/RhoSimulator/QtGui4.dll +0 -0
- data/platform/win32/RhoSimulator/QtNetwork4.dll +0 -0
- data/platform/win32/RhoSimulator/QtWebKit4.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qgif4.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qjpeg4.dll +0 -0
- data/platform/win32/RhoSimulator/rhosimulator.exe +0 -0
- data/platform/wm/RhoLib/RhoLib.vcproj +762 -14
- data/platform/wm/build/wm.rake +87 -10
- data/platform/wm/rhodes.sln +155 -72
- data/platform/wm/rhodes/MainWindow.cpp +5 -2
- data/platform/wm/rhodes/MainWindow.h +9 -1
- data/platform/wm/rhodes/RhoNativeViewManager.cpp +4 -0
- data/platform/wm/rhodes/Rhodes.cpp +60 -6
- data/platform/wm/rhodes/emulator/ExternalWebView.cpp +20 -0
- data/platform/wm/rhodes/emulator/ExternalWebView.h +23 -0
- data/platform/wm/rhodes/emulator/ExternalWebView.ui +46 -0
- data/platform/wm/rhodes/emulator/MainWindowCallback.h +18 -0
- data/platform/wm/rhodes/emulator/MainWindowProxy.cpp +268 -0
- data/platform/wm/rhodes/emulator/MainWindowProxy.h +34 -0
- data/platform/wm/rhodes/emulator/MainWindowQt.cpp +345 -0
- data/platform/wm/rhodes/emulator/MainWindowQt.h +118 -0
- data/platform/wm/rhodes/emulator/NativeToolbarQt.cpp +57 -0
- data/platform/wm/rhodes/emulator/NativeToolbarQt.h +52 -0
- data/platform/wm/rhodes/emulator/QtMainWindow.cpp +219 -0
- data/platform/wm/rhodes/emulator/QtMainWindow.h +62 -0
- data/platform/wm/rhodes/emulator/QtMainWindow.ui +122 -0
- data/platform/wm/rhodes/{RhoCryptImpl.cpp → rho/common/RhoCryptImpl.cpp} +0 -0
- data/platform/wm/rhodes/{RhoCryptImpl.h → rho/common/RhoCryptImpl.h} +0 -0
- data/platform/wm/rhodes/rho/rubyext/NativeToolbar.cpp +2 -86
- data/platform/wm/rhodes/rho/rubyext/NativeToolbarExt.cpp +87 -0
- data/platform/wm/rhodes/rho/rubyext/NativeToolbarExt.h +6 -0
- data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +60 -0
- data/platform/wm/rhodes/rhodes.vcproj +4025 -365
- data/platform/wm/rhodes/signature/Signature.cpp +29 -13
- data/platform/wm/rubylib/rubylib.vcproj +1167 -195
- data/platform/wm/shttpd/shttpd.vcproj +4 -4
- data/platform/wm/sqlite3/sqlite3.vcproj +441 -13
- data/platform/wm/syncengine/syncengine.vcproj +443 -15
- data/platform/wm/tcmalloc/tcmalloc.vcproj +0 -154
- data/platform/wm/tools/detool/LogServer.cpp +150 -0
- data/platform/wm/tools/detool/LogServer.h +23 -0
- data/platform/wm/tools/detool/detool.cpp +42 -4
- data/platform/wm/tools/detool/detool.vcproj +10 -1
- data/platform/wp7/IronRuby/Bin/Silverlight3Release/IronRuby.Libraries.dll +0 -0
- data/platform/wp7/IronRuby/Bin/Silverlight3Release/IronRuby.dll +0 -0
- data/platform/wp7/IronRuby/Bin/Silverlight3Release/Microsoft.Dynamic.dll +0 -0
- data/platform/wp7/IronRuby/Bin/Silverlight3Release/Microsoft.Scripting.Core.dll +0 -0
- data/platform/wp7/IronRuby/Bin/Silverlight3Release/Microsoft.Scripting.dll +0 -0
- data/platform/wp7/RhoAppRunner/Program.cs +20 -3
- data/platform/wp7/RhoLogServer/Program.cs +22 -0
- data/platform/wp7/RhoLogServer/Properties/AssemblyInfo.cs +36 -0
- data/platform/wp7/RhoLogServer/RhoLogServer.csproj +65 -0
- data/platform/wp7/RhoLogServer/SocketServer.cs +210 -0
- data/platform/wp7/RhoRubyExtGen/RhoAsyncHttp.cs +6 -0
- data/platform/wp7/RhoRubyLib/Initializers.Generated.cs +3 -2
- data/platform/wp7/RhoRubyLib/RhoRuby.cs +82 -0
- data/platform/wp7/RhoRubyLib/RhoRubyLib.csproj +7 -5
- data/platform/wp7/RhoRubyLib/WP_PlatformAdaptationLayer.cs +1 -1
- data/platform/wp7/RhoRubyLib/common/RhoParams.cs +1 -1
- data/platform/wp7/RhoRubyLib/common/ThreadQueue.cs +4 -1
- data/platform/wp7/RhoRubyLib/db/DBAdapter.cs +2 -2
- data/platform/wp7/RhoRubyLib/logging/IRhoLogSink.cs +1 -1
- data/platform/wp7/RhoRubyLib/logging/RhoEmptyLogger.cs +30 -0
- data/platform/wp7/RhoRubyLib/logging/RhoLogConf.cs +10 -0
- data/platform/wp7/RhoRubyLib/logging/RhoLogFileSink.cs +6 -1
- data/platform/wp7/RhoRubyLib/logging/RhoLogServerSink.cs +56 -0
- data/platform/wp7/RhoRubyLib/logging/RhoLogger.cs +24 -11
- data/platform/wp7/RhoRubyLib/net/AsyncHttp.cs +57 -14
- data/platform/wp7/RhoRubyLib/net/NetRequest.cs +32 -9
- data/platform/wp7/RhoRubyLib/rubyext/RhoAsyncHttp.cs +7 -0
- data/platform/wp7/RhoRubyLib/rubyext/RhoKernelOps.cs +6 -0
- data/platform/wp7/RhoRubyLib/sync/SyncEngine.cs +20 -16
- data/platform/wp7/RhoRubyLib/sync/SyncNotify.cs +2 -2
- data/platform/wp7/RhoRubyLib/sync/SyncSource.cs +138 -40
- data/platform/wp7/WPApplication/rho/apps/app/layout.erb +3 -1
- data/platform/wp7/build/wp.rake +151 -12
- data/platform/wp7/rhodes.sln +10 -0
- data/platform/wp7/rhodes/App.xaml.cs +6 -0
- data/platform/wp7/rhodes/MainPage.xaml +3 -0
- data/platform/wp7/rhodes/MainPage.xaml.cs +19 -0
- data/platform/wp7/rhodes/Rhodes.csproj +4 -2
- data/rakefile.rb +7 -36
- data/res/build-tools/RhoAppRunner.exe +0 -0
- data/res/build-tools/RhoLogServer.exe +0 -0
- data/res/build-tools/detool.exe +0 -0
- data/res/build-tools/wp7explorer.exe +0 -0
- data/res/generators/templates/application/app/layout.erb +3 -1
- data/res/generators/templates/application/public/jqtouch/jqtouch.js +1 -1
- data/rhodes.gemspec +1 -1
- data/spec/framework_spec/app/layout.erb +1 -1
- data/spec/framework_spec/build.yml +1 -0
- data/spec/perfomance_spec/app/layout.erb +3 -0
- data/spec/phone_spec/app/Account_s/account_s.rb +4 -1
- data/spec/phone_spec/app/spec/rhom_object_spec.rb +30 -1
- data/spec/phone_spec/app/spec_runner.rb +1 -1
- data/spec/phone_spec/build.yml +4 -1
- metadata +262 -10
- data/platform/wp7/IronRuby/Languages/Ruby/Ruby/Builtins/ConsoleStream.cs +0 -107
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2010 ZXing authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
package com.google.zxing.oned;
|
|
18
|
+
|
|
19
|
+
import java.util.Hashtable;
|
|
20
|
+
import com.google.zxing.BarcodeFormat;
|
|
21
|
+
import com.google.zxing.WriterException;
|
|
22
|
+
import com.google.zxing.common.BitMatrix;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* This object renders a CODE128 code as a {@link BitMatrix}.
|
|
26
|
+
*
|
|
27
|
+
* @author erik.barbara@gmail.com (Erik Barbara)
|
|
28
|
+
*/
|
|
29
|
+
public final class Code128Writer extends UPCEANWriter {
|
|
30
|
+
|
|
31
|
+
public BitMatrix encode(String contents,
|
|
32
|
+
BarcodeFormat format,
|
|
33
|
+
int width,
|
|
34
|
+
int height,
|
|
35
|
+
Hashtable hints) throws WriterException {
|
|
36
|
+
if (format != BarcodeFormat.CODE_128) {
|
|
37
|
+
throw new IllegalArgumentException("Can only encode CODE_128, but got " + format);
|
|
38
|
+
}
|
|
39
|
+
return super.encode(contents, format, width, height, hints);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
public byte[] encode(String contents) {
|
|
43
|
+
int length = contents.length();
|
|
44
|
+
if (length > 80) {
|
|
45
|
+
throw new IllegalArgumentException(
|
|
46
|
+
"Requested contents should be less than 80 digits long, but got " + length);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
int codeWidth = 11 + 11 + 13; //start plus check plus stop character
|
|
50
|
+
//get total code width for this barcode
|
|
51
|
+
for (int i = 0; i < length; i++) {
|
|
52
|
+
int[] patterns = Code128Reader.CODE_PATTERNS[contents.charAt(i) - ' '];
|
|
53
|
+
for (int j = 0; j < patterns.length; j++) {
|
|
54
|
+
codeWidth += patterns[j];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
byte[] result = new byte[codeWidth];
|
|
58
|
+
int pos = appendPattern(result, 0, Code128Reader.CODE_PATTERNS[104], 1);
|
|
59
|
+
int check = 104;
|
|
60
|
+
//append next character to bytematrix
|
|
61
|
+
for(int i = 0; i < length; i++) {
|
|
62
|
+
check += (contents.charAt(i) - ' ') * (i + 1);
|
|
63
|
+
pos += appendPattern(result, pos, Code128Reader.CODE_PATTERNS[contents.charAt(i) - ' '],1);
|
|
64
|
+
}
|
|
65
|
+
//compute checksum and append it along with end character and quiet space
|
|
66
|
+
check %= 103;
|
|
67
|
+
pos += appendPattern(result,pos,Code128Reader.CODE_PATTERNS[check],1);
|
|
68
|
+
pos += appendPattern(result,pos,Code128Reader.CODE_PATTERNS[106],1);
|
|
69
|
+
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
}
|
data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/Code39Reader.java
ADDED
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2008 ZXing authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
package com.google.zxing.oned;
|
|
18
|
+
|
|
19
|
+
import com.google.zxing.BarcodeFormat;
|
|
20
|
+
import com.google.zxing.ChecksumException;
|
|
21
|
+
import com.google.zxing.FormatException;
|
|
22
|
+
import com.google.zxing.NotFoundException;
|
|
23
|
+
import com.google.zxing.Result;
|
|
24
|
+
import com.google.zxing.ResultPoint;
|
|
25
|
+
import com.google.zxing.common.BitArray;
|
|
26
|
+
|
|
27
|
+
import java.util.Hashtable;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* <p>Decodes Code 39 barcodes. This does not support "Full ASCII Code 39" yet.</p>
|
|
31
|
+
*
|
|
32
|
+
* @author Sean Owen
|
|
33
|
+
* @see Code93Reader
|
|
34
|
+
*/
|
|
35
|
+
public final class Code39Reader extends OneDReader {
|
|
36
|
+
|
|
37
|
+
static final String ALPHABET_STRING = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%";
|
|
38
|
+
private static final char[] ALPHABET = ALPHABET_STRING.toCharArray();
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* These represent the encodings of characters, as patterns of wide and narrow bars.
|
|
42
|
+
* The 9 least-significant bits of each int correspond to the pattern of wide and narrow,
|
|
43
|
+
* with 1s representing "wide" and 0s representing narrow.
|
|
44
|
+
*/
|
|
45
|
+
static final int[] CHARACTER_ENCODINGS = {
|
|
46
|
+
0x034, 0x121, 0x061, 0x160, 0x031, 0x130, 0x070, 0x025, 0x124, 0x064, // 0-9
|
|
47
|
+
0x109, 0x049, 0x148, 0x019, 0x118, 0x058, 0x00D, 0x10C, 0x04C, 0x01C, // A-J
|
|
48
|
+
0x103, 0x043, 0x142, 0x013, 0x112, 0x052, 0x007, 0x106, 0x046, 0x016, // K-T
|
|
49
|
+
0x181, 0x0C1, 0x1C0, 0x091, 0x190, 0x0D0, 0x085, 0x184, 0x0C4, 0x094, // U-*
|
|
50
|
+
0x0A8, 0x0A2, 0x08A, 0x02A // $-%
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
private static final int ASTERISK_ENCODING = CHARACTER_ENCODINGS[39];
|
|
54
|
+
|
|
55
|
+
private final boolean usingCheckDigit;
|
|
56
|
+
private final boolean extendedMode;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Creates a reader that assumes all encoded data is data, and does not treat the final
|
|
60
|
+
* character as a check digit. It will not decoded "extended Code 39" sequences.
|
|
61
|
+
*/
|
|
62
|
+
public Code39Reader() {
|
|
63
|
+
usingCheckDigit = false;
|
|
64
|
+
extendedMode = false;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Creates a reader that can be configured to check the last character as a check digit.
|
|
69
|
+
* It will not decoded "extended Code 39" sequences.
|
|
70
|
+
*
|
|
71
|
+
* @param usingCheckDigit if true, treat the last data character as a check digit, not
|
|
72
|
+
* data, and verify that the checksum passes.
|
|
73
|
+
*/
|
|
74
|
+
public Code39Reader(boolean usingCheckDigit) {
|
|
75
|
+
this.usingCheckDigit = usingCheckDigit;
|
|
76
|
+
this.extendedMode = false;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Creates a reader that can be configured to check the last character as a check digit,
|
|
81
|
+
* or optionally attempt to decode "extended Code 39" sequences that are used to encode
|
|
82
|
+
* the full ASCII character set.
|
|
83
|
+
*
|
|
84
|
+
* @param usingCheckDigit if true, treat the last data character as a check digit, not
|
|
85
|
+
* data, and verify that the checksum passes.
|
|
86
|
+
* @param extendedMode if true, will attempt to decode extended Code 39 sequences in the
|
|
87
|
+
* text.
|
|
88
|
+
*/
|
|
89
|
+
public Code39Reader(boolean usingCheckDigit, boolean extendedMode) {
|
|
90
|
+
this.usingCheckDigit = usingCheckDigit;
|
|
91
|
+
this.extendedMode = extendedMode;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
public Result decodeRow(int rowNumber, BitArray row, Hashtable hints)
|
|
95
|
+
throws NotFoundException, ChecksumException, FormatException {
|
|
96
|
+
|
|
97
|
+
int[] start = findAsteriskPattern(row);
|
|
98
|
+
int nextStart = start[1];
|
|
99
|
+
int end = row.getSize();
|
|
100
|
+
|
|
101
|
+
// Read off white space
|
|
102
|
+
while (nextStart < end && !row.get(nextStart)) {
|
|
103
|
+
nextStart++;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
StringBuffer result = new StringBuffer(20);
|
|
107
|
+
int[] counters = new int[9];
|
|
108
|
+
char decodedChar;
|
|
109
|
+
int lastStart;
|
|
110
|
+
do {
|
|
111
|
+
recordPattern(row, nextStart, counters);
|
|
112
|
+
int pattern = toNarrowWidePattern(counters);
|
|
113
|
+
if (pattern < 0) {
|
|
114
|
+
throw NotFoundException.getNotFoundInstance();
|
|
115
|
+
}
|
|
116
|
+
decodedChar = patternToChar(pattern);
|
|
117
|
+
result.append(decodedChar);
|
|
118
|
+
lastStart = nextStart;
|
|
119
|
+
for (int i = 0; i < counters.length; i++) {
|
|
120
|
+
nextStart += counters[i];
|
|
121
|
+
}
|
|
122
|
+
// Read off white space
|
|
123
|
+
while (nextStart < end && !row.get(nextStart)) {
|
|
124
|
+
nextStart++;
|
|
125
|
+
}
|
|
126
|
+
} while (decodedChar != '*');
|
|
127
|
+
result.deleteCharAt(result.length() - 1); // remove asterisk
|
|
128
|
+
|
|
129
|
+
// Look for whitespace after pattern:
|
|
130
|
+
int lastPatternSize = 0;
|
|
131
|
+
for (int i = 0; i < counters.length; i++) {
|
|
132
|
+
lastPatternSize += counters[i];
|
|
133
|
+
}
|
|
134
|
+
int whiteSpaceAfterEnd = nextStart - lastStart - lastPatternSize;
|
|
135
|
+
// If 50% of last pattern size, following last pattern, is not whitespace, fail
|
|
136
|
+
// (but if it's whitespace to the very end of the image, that's OK)
|
|
137
|
+
if (nextStart != end && whiteSpaceAfterEnd / 2 < lastPatternSize) {
|
|
138
|
+
throw NotFoundException.getNotFoundInstance();
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
if (usingCheckDigit) {
|
|
142
|
+
int max = result.length() - 1;
|
|
143
|
+
int total = 0;
|
|
144
|
+
for (int i = 0; i < max; i++) {
|
|
145
|
+
total += ALPHABET_STRING.indexOf(result.charAt(i));
|
|
146
|
+
}
|
|
147
|
+
if (result.charAt(max) != ALPHABET[total % 43]) {
|
|
148
|
+
throw ChecksumException.getChecksumInstance();
|
|
149
|
+
}
|
|
150
|
+
result.deleteCharAt(max);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (result.length() == 0) {
|
|
154
|
+
// Almost surely a false positive
|
|
155
|
+
throw NotFoundException.getNotFoundInstance();
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
String resultString;
|
|
159
|
+
if (extendedMode) {
|
|
160
|
+
resultString = decodeExtended(result);
|
|
161
|
+
} else {
|
|
162
|
+
resultString = result.toString();
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
float left = (float) (start[1] + start[0]) / 2.0f;
|
|
166
|
+
float right = (float) (nextStart + lastStart) / 2.0f;
|
|
167
|
+
return new Result(
|
|
168
|
+
resultString,
|
|
169
|
+
null,
|
|
170
|
+
new ResultPoint[]{
|
|
171
|
+
new ResultPoint(left, (float) rowNumber),
|
|
172
|
+
new ResultPoint(right, (float) rowNumber)},
|
|
173
|
+
BarcodeFormat.CODE_39);
|
|
174
|
+
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
private static int[] findAsteriskPattern(BitArray row) throws NotFoundException {
|
|
178
|
+
int width = row.getSize();
|
|
179
|
+
int rowOffset = 0;
|
|
180
|
+
while (rowOffset < width) {
|
|
181
|
+
if (row.get(rowOffset)) {
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
rowOffset++;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
int counterPosition = 0;
|
|
188
|
+
int[] counters = new int[9];
|
|
189
|
+
int patternStart = rowOffset;
|
|
190
|
+
boolean isWhite = false;
|
|
191
|
+
int patternLength = counters.length;
|
|
192
|
+
|
|
193
|
+
for (int i = rowOffset; i < width; i++) {
|
|
194
|
+
boolean pixel = row.get(i);
|
|
195
|
+
if (pixel ^ isWhite) {
|
|
196
|
+
counters[counterPosition]++;
|
|
197
|
+
} else {
|
|
198
|
+
if (counterPosition == patternLength - 1) {
|
|
199
|
+
if (toNarrowWidePattern(counters) == ASTERISK_ENCODING) {
|
|
200
|
+
// Look for whitespace before start pattern, >= 50% of width of start pattern
|
|
201
|
+
if (row.isRange(Math.max(0, patternStart - (i - patternStart) / 2), patternStart, false)) {
|
|
202
|
+
return new int[]{patternStart, i};
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
patternStart += counters[0] + counters[1];
|
|
206
|
+
for (int y = 2; y < patternLength; y++) {
|
|
207
|
+
counters[y - 2] = counters[y];
|
|
208
|
+
}
|
|
209
|
+
counters[patternLength - 2] = 0;
|
|
210
|
+
counters[patternLength - 1] = 0;
|
|
211
|
+
counterPosition--;
|
|
212
|
+
} else {
|
|
213
|
+
counterPosition++;
|
|
214
|
+
}
|
|
215
|
+
counters[counterPosition] = 1;
|
|
216
|
+
isWhite = !isWhite;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
throw NotFoundException.getNotFoundInstance();
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
// For efficiency, returns -1 on failure. Not throwing here saved as many as 700 exceptions
|
|
223
|
+
// per image when using some of our blackbox images.
|
|
224
|
+
private static int toNarrowWidePattern(int[] counters) {
|
|
225
|
+
int numCounters = counters.length;
|
|
226
|
+
int maxNarrowCounter = 0;
|
|
227
|
+
int wideCounters;
|
|
228
|
+
do {
|
|
229
|
+
int minCounter = Integer.MAX_VALUE;
|
|
230
|
+
for (int i = 0; i < numCounters; i++) {
|
|
231
|
+
int counter = counters[i];
|
|
232
|
+
if (counter < minCounter && counter > maxNarrowCounter) {
|
|
233
|
+
minCounter = counter;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
maxNarrowCounter = minCounter;
|
|
237
|
+
wideCounters = 0;
|
|
238
|
+
int totalWideCountersWidth = 0;
|
|
239
|
+
int pattern = 0;
|
|
240
|
+
for (int i = 0; i < numCounters; i++) {
|
|
241
|
+
int counter = counters[i];
|
|
242
|
+
if (counters[i] > maxNarrowCounter) {
|
|
243
|
+
pattern |= 1 << (numCounters - 1 - i);
|
|
244
|
+
wideCounters++;
|
|
245
|
+
totalWideCountersWidth += counter;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (wideCounters == 3) {
|
|
249
|
+
// Found 3 wide counters, but are they close enough in width?
|
|
250
|
+
// We can perform a cheap, conservative check to see if any individual
|
|
251
|
+
// counter is more than 1.5 times the average:
|
|
252
|
+
for (int i = 0; i < numCounters && wideCounters > 0; i++) {
|
|
253
|
+
int counter = counters[i];
|
|
254
|
+
if (counters[i] > maxNarrowCounter) {
|
|
255
|
+
wideCounters--;
|
|
256
|
+
// totalWideCountersWidth = 3 * average, so this checks if counter >= 3/2 * average
|
|
257
|
+
if ((counter << 1) >= totalWideCountersWidth) {
|
|
258
|
+
return -1;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
return pattern;
|
|
263
|
+
}
|
|
264
|
+
} while (wideCounters > 3);
|
|
265
|
+
return -1;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
private static char patternToChar(int pattern) throws NotFoundException {
|
|
269
|
+
for (int i = 0; i < CHARACTER_ENCODINGS.length; i++) {
|
|
270
|
+
if (CHARACTER_ENCODINGS[i] == pattern) {
|
|
271
|
+
return ALPHABET[i];
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
throw NotFoundException.getNotFoundInstance();
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
private static String decodeExtended(StringBuffer encoded) throws FormatException {
|
|
278
|
+
int length = encoded.length();
|
|
279
|
+
StringBuffer decoded = new StringBuffer(length);
|
|
280
|
+
for (int i = 0; i < length; i++) {
|
|
281
|
+
char c = encoded.charAt(i);
|
|
282
|
+
if (c == '+' || c == '$' || c == '%' || c == '/') {
|
|
283
|
+
char next = encoded.charAt(i + 1);
|
|
284
|
+
char decodedChar = '\0';
|
|
285
|
+
switch (c) {
|
|
286
|
+
case '+':
|
|
287
|
+
// +A to +Z map to a to z
|
|
288
|
+
if (next >= 'A' && next <= 'Z') {
|
|
289
|
+
decodedChar = (char) (next + 32);
|
|
290
|
+
} else {
|
|
291
|
+
throw FormatException.getFormatInstance();
|
|
292
|
+
}
|
|
293
|
+
break;
|
|
294
|
+
case '$':
|
|
295
|
+
// $A to $Z map to control codes SH to SB
|
|
296
|
+
if (next >= 'A' && next <= 'Z') {
|
|
297
|
+
decodedChar = (char) (next - 64);
|
|
298
|
+
} else {
|
|
299
|
+
throw FormatException.getFormatInstance();
|
|
300
|
+
}
|
|
301
|
+
break;
|
|
302
|
+
case '%':
|
|
303
|
+
// %A to %E map to control codes ESC to US
|
|
304
|
+
if (next >= 'A' && next <= 'E') {
|
|
305
|
+
decodedChar = (char) (next - 38);
|
|
306
|
+
} else if (next >= 'F' && next <= 'W') {
|
|
307
|
+
decodedChar = (char) (next - 11);
|
|
308
|
+
} else {
|
|
309
|
+
throw FormatException.getFormatInstance();
|
|
310
|
+
}
|
|
311
|
+
break;
|
|
312
|
+
case '/':
|
|
313
|
+
// /A to /O map to ! to , and /Z maps to :
|
|
314
|
+
if (next >= 'A' && next <= 'O') {
|
|
315
|
+
decodedChar = (char) (next - 32);
|
|
316
|
+
} else if (next == 'Z') {
|
|
317
|
+
decodedChar = ':';
|
|
318
|
+
} else {
|
|
319
|
+
throw FormatException.getFormatInstance();
|
|
320
|
+
}
|
|
321
|
+
break;
|
|
322
|
+
}
|
|
323
|
+
decoded.append(decodedChar);
|
|
324
|
+
// bump up i again since we read two characters
|
|
325
|
+
i++;
|
|
326
|
+
} else {
|
|
327
|
+
decoded.append(c);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
return decoded.toString();
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
}
|
data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/Code39Writer.java
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2010 ZXing authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
package com.google.zxing.oned;
|
|
18
|
+
|
|
19
|
+
import java.util.Hashtable;
|
|
20
|
+
import com.google.zxing.BarcodeFormat;
|
|
21
|
+
import com.google.zxing.WriterException;
|
|
22
|
+
import com.google.zxing.common.BitMatrix;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* This object renders a CODE39 code as a {@link BitMatrix}.
|
|
26
|
+
*
|
|
27
|
+
* @author erik.barbara@gmail.com (Erik Barbara)
|
|
28
|
+
*/
|
|
29
|
+
public final class Code39Writer extends UPCEANWriter {
|
|
30
|
+
|
|
31
|
+
public BitMatrix encode(String contents,
|
|
32
|
+
BarcodeFormat format,
|
|
33
|
+
int width,
|
|
34
|
+
int height,
|
|
35
|
+
Hashtable hints) throws WriterException {
|
|
36
|
+
if (format != BarcodeFormat.CODE_39) {
|
|
37
|
+
throw new IllegalArgumentException("Can only encode CODE_39, but got " + format);
|
|
38
|
+
}
|
|
39
|
+
return super.encode(contents, format, width, height, hints);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
public byte[] encode(String contents) {
|
|
43
|
+
int length = contents.length();
|
|
44
|
+
if (length > 80) {
|
|
45
|
+
throw new IllegalArgumentException(
|
|
46
|
+
"Requested contents should be less than 80 digits long, but got " + length);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
int[] widths = new int[9];
|
|
50
|
+
int codeWidth = 24 + 1 + length;
|
|
51
|
+
for (int i = 0; i < length; i++) {
|
|
52
|
+
int indexInString = Code39Reader.ALPHABET_STRING.indexOf(contents.charAt(i));
|
|
53
|
+
toIntArray(Code39Reader.CHARACTER_ENCODINGS[indexInString], widths);
|
|
54
|
+
for(int j = 0; j < widths.length; j++) {
|
|
55
|
+
codeWidth += widths[j];
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
byte[] result = new byte[codeWidth];
|
|
59
|
+
toIntArray(Code39Reader.CHARACTER_ENCODINGS[39], widths);
|
|
60
|
+
int pos = appendPattern(result, 0, widths, 1);
|
|
61
|
+
int[] narrowWhite = {1};
|
|
62
|
+
pos += appendPattern(result, pos, narrowWhite, 0);
|
|
63
|
+
//append next character to bytematrix
|
|
64
|
+
for(int i = length-1; i >= 0; i--) {
|
|
65
|
+
int indexInString = Code39Reader.ALPHABET_STRING.indexOf(contents.charAt(i));
|
|
66
|
+
toIntArray(Code39Reader.CHARACTER_ENCODINGS[indexInString], widths);
|
|
67
|
+
pos += appendPattern(result, pos, widths, 1);
|
|
68
|
+
pos += appendPattern(result, pos, narrowWhite, 0);
|
|
69
|
+
}
|
|
70
|
+
toIntArray(Code39Reader.CHARACTER_ENCODINGS[39], widths);
|
|
71
|
+
pos += appendPattern(result, pos, widths, 1);
|
|
72
|
+
return result;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
private static void toIntArray(int a, int[] toReturn) {
|
|
76
|
+
for (int i = 0; i < 9; i++) {
|
|
77
|
+
int temp = a & (1 << i);
|
|
78
|
+
toReturn[i] = (temp == 0) ? 1 : 2;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
}
|