Commit graph

494 commits

Author SHA1 Message Date
srowen 807c1646b9 Added basic support for caller-specified character encoding
git-svn-id: https://zxing.googlecode.com/svn/trunk@836 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-01-31 00:40:04 +00:00
srowen 1e8155190d Add ALLOWED_LENGTHS hint, for now, in support of ITF
git-svn-id: https://zxing.googlecode.com/svn/trunk@834 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-01-30 17:29:27 +00:00
srowen 4d225d48e1 Fix a nagging inconvenience from my IDE in running tests, due to working directory issues
git-svn-id: https://zxing.googlecode.com/svn/trunk@832 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-01-28 19:03:25 +00:00
srowen bb373c5929 Oops, StringBuffer.append(StringBuffer) doesn't exist in J2ME
git-svn-id: https://zxing.googlecode.com/svn/trunk@831 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-01-27 23:24:23 +00:00
srowen f05302cc4c Actually, let the scanner read codes using structured append -- just ignore these segments and show whatever part of the overall message that this code encodes
git-svn-id: https://zxing.googlecode.com/svn/trunk@830 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-01-21 21:07:00 +00:00
srowen 6a5d483aa5 Issue 127: Add structured append mode and make it clear this is not supported
git-svn-id: https://zxing.googlecode.com/svn/trunk@828 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-01-20 23:15:09 +00:00
srowen 25bdb39ac1 Remove WTK dependency which added little and only made life hard for mac users
git-svn-id: https://zxing.googlecode.com/svn/trunk@825 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-01-15 21:03:37 +00:00
srowen 5efb6ef335 Separated rectangle detection from decoder for reuse
git-svn-id: https://zxing.googlecode.com/svn/trunk@824 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-01-14 10:44:46 +00:00
srowen 37fbeaa36a Small updates from code inspection
git-svn-id: https://zxing.googlecode.com/svn/trunk@823 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-01-10 17:01:34 +00:00
dswitkin 0a885aca56 Added 18 real world DataMatrix blackbox images, plus turned on rotation for the original set.
git-svn-id: https://zxing.googlecode.com/svn/trunk@815 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-01-06 21:11:55 +00:00
srowen d0bc7df5d4 On a tip from Sandy found an error in the QR code detector that would miss a third finder pattern in cases of about 135 degree rotation. This changes test results but is a net win.
git-svn-id: https://zxing.googlecode.com/svn/trunk@814 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-01-04 21:11:25 +00:00
srowen 9433c5955b Add more unit tests for client.result, and more small code tweaks.
git-svn-id: https://zxing.googlecode.com/svn/trunk@809 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-30 15:31:25 +00:00
dswitkin 3269c66e77 Moved one file back to the ITF directory because it should be readable.
git-svn-id: https://zxing.googlecode.com/svn/trunk@806 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-23 17:21:31 +00:00
kev.sully 12a283ebf9 ISSUE: http://code.google.com/p/zxing/issues/detail?id=110
Moved failing test cases to partial.

git-svn-id: https://zxing.googlecode.com/svn/trunk@805 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-23 12:11:14 +00:00
kev.sully c1ee018a50 ISSUE: http://code.google.com/p/zxing/issues/detail?id=110
Moved failing test cases to partial.

git-svn-id: https://zxing.googlecode.com/svn/trunk@804 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-23 12:10:30 +00:00
dswitkin 96b80c3550 Turned on ITF as a format you can request via hint. Also rejiggered the unit test framework to accept an optional hint so that the ITF unit test runs (and passes) without modifying the source.
git-svn-id: https://zxing.googlecode.com/svn/trunk@803 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-22 22:58:58 +00:00
kev.sully 0a3ddd33dc ISSUE: http://code.google.com/p/zxing/issues/detail?id=110
Added more test cases for ITF

git-svn-id: https://zxing.googlecode.com/svn/trunk@802 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-22 12:41:14 +00:00
kev.sully 5545bdb317 ISSUE: http://code.google.com/p/zxing/issues/detail?id=110
Added more test cases for ITF

git-svn-id: https://zxing.googlecode.com/svn/trunk@801 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-22 12:40:37 +00:00
srowen d242b00126 More small changes from code inspection
git-svn-id: https://zxing.googlecode.com/svn/trunk@800 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-21 18:54:58 +00:00
srowen fa59c4e093 Correct exception handling in certain situations so that routine decoding failures do not produce IllegalArgumentException
git-svn-id: https://zxing.googlecode.com/svn/trunk@799 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-21 18:40:41 +00:00
dswitkin f50dcf6d27 Added golden results to all of our result parsing unit tests, uncovering and fixing a few subtle bugs in the process. I also expanded a few of them which were lean.
git-svn-id: https://zxing.googlecode.com/svn/trunk@796 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-19 20:20:54 +00:00
dswitkin 48480eba95 Fixed crash and bad parsing of an SMS with a question mark in the subject or message.
git-svn-id: https://zxing.googlecode.com/svn/trunk@794 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-19 15:00:20 +00:00
srowen 131cfe4c5c More reckless refactoring and code style tweaks -- mostly adding braces around conditional/loops, and using @Override
git-svn-id: https://zxing.googlecode.com/svn/trunk@784 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-11 23:34:49 +00:00
srowen 6c5b6849b7 Another attack on integrating encoder and decoder: Version is done. Attempted to rationalize encoding API to deal with strings, not bytes. More code style changes like removal of 'final' on locals and arguments.
git-svn-id: https://zxing.googlecode.com/svn/trunk@781 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-10 00:22:14 +00:00
dswitkin f265d0872f Made our parsing code handle uppercase prefixes for a variety of loosely-defined formats.
git-svn-id: https://zxing.googlecode.com/svn/trunk@779 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-08 23:08:23 +00:00
srowen 12420b443d Fix apparently-inconsequential typo in QR code encoder test case
git-svn-id: https://zxing.googlecode.com/svn/trunk@778 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-05 16:46:53 +00:00
dswitkin 3ef2b0b618 Fixed a bug in geo coordinate display, where we were always tacking on "deg N" and "deg E", which doesn't make sense. Really, N/S/E/W needs to be determined by sign, and the sign removed for W and S. However, since none of that can be translated easily, I removed it, and we now just print lat, long which is an acceptable standard.
I also bumped the Android client to v2.4 final.

git-svn-id: https://zxing.googlecode.com/svn/trunk@776 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-03 16:14:56 +00:00
srowen c74735c1b4 Unify handling of Mode too
git-svn-id: https://zxing.googlecode.com/svn/trunk@771 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-02 01:30:57 +00:00
srowen 784673a241 Unify handling of EC level between encoder and decoder
git-svn-id: https://zxing.googlecode.com/svn/trunk@770 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-02 01:00:18 +00:00
srowen 416193ff9a Big rename of variables and method to have more standard Java names
git-svn-id: https://zxing.googlecode.com/svn/trunk@769 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-02 00:31:10 +00:00
srowen 10a90bfecf Some formatting changes, and a few tiny optimizations
git-svn-id: https://zxing.googlecode.com/svn/trunk@768 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-02 00:10:46 +00:00
srowen 36e9361184 Some formatting changes, and a few tiny optimizations
git-svn-id: https://zxing.googlecode.com/svn/trunk@767 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-01 21:36:58 +00:00
dswitkin c3564411fb Added a new QR Code unit test of real world photos of t-shirts. These are notoriously difficult because the barcodes don't lie completely flat. We're able to decode 33/48 which is better than I thought, although most of the images which fail look within reach.
git-svn-id: https://zxing.googlecode.com/svn/trunk@764 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-26 16:39:34 +00:00
dswitkin 98b34ae187 Made Java naming changes to BitVector.
git-svn-id: https://zxing.googlecode.com/svn/trunk@757 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-21 17:06:52 +00:00
kev.sully afdc4508b7 ISSUE: http://code.google.com/p/zxing/issues/detail?id=110
Changes to fix high nbr of false positives.
- Removed requirement that the barcode fills the viewfinder
- Extended the check on the lenght of decoded barcode - now only 6, 10 and 14 digit barcodes are supported.

git-svn-id: https://zxing.googlecode.com/svn/trunk@756 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-21 16:40:40 +00:00
kev.sully 85506667a7 ISSUE: http://code.google.com/p/zxing/issues/detail?id=110
Changes to fix high nbr of false positives.
- Fixed up the quiet zone checks.
- Validate that the barcode fills the viewfinder
- Check that decoded barcode is min 6 digits


git-svn-id: https://zxing.googlecode.com/svn/trunk@755 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-21 11:25:45 +00:00
kev.sully 1e9123b0af ISSUE: http://code.google.com/p/zxing/issues/detail?id=110
Commented out references to ITFReader until it is validated as production ready.

git-svn-id: https://zxing.googlecode.com/svn/trunk@754 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-21 09:40:13 +00:00
dswitkin 87e0ba7523 Removed some logging from the QR encoder. Nothing in core should be printf'ing - we can always inspect these with a debugger if needed. Also removed the temporary README about this package not compiling.
git-svn-id: https://zxing.googlecode.com/svn/trunk@753 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-20 22:43:20 +00:00
dswitkin 0f648cd1be Ported and rewrote the Renderer unit test to test QRCodeWriter. We encode several barcodes looking for good behavior, and several others which are compared pixel by pixel to golden results stored in PNGs. I'm happy to say we nail the three images Satoru created to the dot!
Along the way, I added support for encoder hints, and no longer hardcode the error correction level.

git-svn-id: https://zxing.googlecode.com/svn/trunk@752 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-20 22:39:31 +00:00
kev.sully dab0c22347 ISSUE: http://code.google.com/p/zxing/issues/detail?id=110
Renamed test cases dir to itf-1 (removed 14 specific reference)

git-svn-id: https://zxing.googlecode.com/svn/trunk@749 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-20 17:34:23 +00:00
kev.sully 7eb787da2e ISSUE: http://code.google.com/p/zxing/issues/detail?id=110
Renamed test cases dir to itf-1 (removed 14 specific reference)

git-svn-id: https://zxing.googlecode.com/svn/trunk@748 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-20 17:33:20 +00:00
kev.sully 8723de9917 ISSUE: http://code.google.com/p/zxing/issues/detail?id=110
Added more test cases for ITF.

git-svn-id: https://zxing.googlecode.com/svn/trunk@747 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-20 17:29:22 +00:00
kev.sully e851b8d293 ISSUE: http://code.google.com/p/zxing/issues/detail?id=110
Added more test cases for ITF.

git-svn-id: https://zxing.googlecode.com/svn/trunk@746 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-20 17:28:52 +00:00
kev.sully b0ef487b31 ISSUE: http://code.google.com/p/zxing/issues/detail?id=110
Renamed ITF14Reader to ITFReader. ITFReader now reads arbitrary number of digits. Added a QuietZone check. Removed checksum validation. Added more test cases.

git-svn-id: https://zxing.googlecode.com/svn/trunk@745 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-20 17:27:12 +00:00
kev.sully 233ae565fe ISSUE: http://code.google.com/p/zxing/issues/detail?id=110
Renamed ITF14Reader to ITFReader. ITFReader now reads arbitrary number of digits. Added a QuietZone check. Removed checksum validation. Added more test cases.

git-svn-id: https://zxing.googlecode.com/svn/trunk@744 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-20 17:26:34 +00:00
srowen 4928f6bd07 git-svn-id: https://zxing.googlecode.com/svn/trunk@743 59b500cc-1b3d-0410-9834-0bbf25fbcc57 2008-11-20 17:10:44 +00:00
dswitkin a8d732d084 Ported over the BitVector bug fix and new unit test from Satoru.
git-svn-id: https://zxing.googlecode.com/svn/trunk@742 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-20 17:08:30 +00:00
srowen 56f194794b Added ITF-14 decoder from Kevin. Not enabled yet as we need to think a bit about how to handle this first. Also, the unit tests aren't passing for me but are for Kevin so I have commented them for the moment.
git-svn-id: https://zxing.googlecode.com/svn/trunk@741 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-20 14:07:19 +00:00
srowen 65be5295c8 Remove Debug and switch to eceptions in Encoder / Writer API
git-svn-id: https://zxing.googlecode.com/svn/trunk@740 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-20 12:26:20 +00:00
dswitkin 8a018c8af8 Changed the Writer interface to provide contents as a String instead of a byte array.
git-svn-id: https://zxing.googlecode.com/svn/trunk@738 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-19 20:12:38 +00:00
dswitkin e7dfffc3d0 Fixed more unit tests.
git-svn-id: https://zxing.googlecode.com/svn/trunk@737 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-19 19:16:16 +00:00
dswitkin a13d3ca04d Fixed testIsValidKanjiSequence(). Looks like the data arrays got copied over wrong from the C++ hex strings.
git-svn-id: https://zxing.googlecode.com/svn/trunk@736 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-19 18:55:28 +00:00
dswitkin bbfd2639d3 Deleted a big honking polynomial table that was unused, and a related class.
git-svn-id: https://zxing.googlecode.com/svn/trunk@735 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-19 18:50:51 +00:00
dswitkin fb840a56ca Did some optimization and cleanup.
git-svn-id: https://zxing.googlecode.com/svn/trunk@734 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-19 18:35:10 +00:00
dswitkin a9b0be8b93 Added the quiet zone to the QRCodeWriter.
git-svn-id: https://zxing.googlecode.com/svn/trunk@733 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-19 16:39:59 +00:00
dswitkin 549771b3de Fixed testInterleaveWithECBytes().
git-svn-id: https://zxing.googlecode.com/svn/trunk@732 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-19 16:04:48 +00:00
dswitkin dbe7f8aa85 Fixed two more tests.
git-svn-id: https://zxing.googlecode.com/svn/trunk@731 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-19 15:51:44 +00:00
srowen 0a1a550a0f Corrected logic to handle case where remainder polynomial has leading 0 coefficients.
git-svn-id: https://zxing.googlecode.com/svn/trunk@730 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-19 12:39:18 +00:00
ccmysen a16d3ba6ef Changes to the matrix and debug classes to make some tests pass.
I'm not super happy about making LOG_INFO a noop, but I don't know the general
solution off hand.

In any case, MatrixUtilTestCase and MaskUtilTestCase both pass now.


git-svn-id: https://zxing.googlecode.com/svn/trunk@729 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-19 09:26:54 +00:00
dswitkin 581464ad21 Fixed a bunch more tests, and commented out all of the Renderer tests for now so everything compiles.
Sean, try commenting out testEncode(). It'll let you run a bit further to see a genuine problem that testInterleaveWithECBytes() finds.

git-svn-id: https://zxing.googlecode.com/svn/trunk@728 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-19 01:58:31 +00:00
dswitkin bafe58d06e Moved ByteArray up to core/common now that it has no dependencies on qrcode/encoder.
git-svn-id: https://zxing.googlecode.com/svn/trunk@727 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 23:01:42 +00:00
dswitkin c95fe48a76 Made several good fixes to and because of the unit tests. Turns out the EC array was never being set to the right size. I've now established that the Reed Solomon code is generating one fewer coefficient than the layer above it asked for.
git-svn-id: https://zxing.googlecode.com/svn/trunk@726 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 22:54:04 +00:00
dswitkin b5dbec4469 Created a WriterException class and updated a bunch of documentation.
git-svn-id: https://zxing.googlecode.com/svn/trunk@725 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 21:46:24 +00:00
dswitkin 1357c87441 Made some incremental progress on the Encoder unit test. I think we've now hit the first real bug in the code.
git-svn-id: https://zxing.googlecode.com/svn/trunk@724 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 21:34:17 +00:00
srowen 4883f8cd11 Finally submit tiny change to comments here
git-svn-id: https://zxing.googlecode.com/svn/trunk@722 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 21:18:10 +00:00
srowen 604a10e8e5 Replace IllegalStateException; still want to make it WriterException
git-svn-id: https://zxing.googlecode.com/svn/trunk@721 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 21:15:30 +00:00
dswitkin 919958c40f Made a small change to allow discovery of multiple email addresses within a Docomo MECARD.
git-svn-id: https://zxing.googlecode.com/svn/trunk@720 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 19:44:25 +00:00
ccmysen 559c79e1cc Adding in the rest of the qrcode test cases.
Most of them seem to be having run errors right now, but most of the major
syntax errors are now gone. The main missing feature right now is the use of
the GaloisField polynomial and a working Renderer class.



git-svn-id: https://zxing.googlecode.com/svn/trunk@719 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 18:56:19 +00:00
ccmysen e14607e785 Add testdata for the qrcode encoder tests (mainly part of the renderer testcase).
git-svn-id: https://zxing.googlecode.com/svn/trunk@718 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 18:17:22 +00:00
dswitkin 83758391f7 My BitVector implementation was totally buggy. I rewrote a lot of it and ported the test case, which now passes.
Now I'm tracking down an assertion in Encoder.InterleaveWithECBytes().

git-svn-id: https://zxing.googlecode.com/svn/trunk@717 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 15:34:45 +00:00
dswitkin 8175e2cc25 Created the base Writer object for all barcode encoding, then wrote a QR Code version. A Writer encodes a series of raw bytes into a 2D greyscale bitmap, represented by a ByteArray. This seems like a better container than MonochromeBitmapSource, because we may want shades of grey when encoding future formats. The next step is to hook this up to the Android client.
git-svn-id: https://zxing.googlecode.com/svn/trunk@716 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-17 22:10:45 +00:00
dswitkin 8d79ad7085 Fixed the build.
git-svn-id: https://zxing.googlecode.com/svn/trunk@715 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-17 20:49:10 +00:00
srowen e9a29fb098 move to singleton ReaderException for a bit more performance
git-svn-id: https://zxing.googlecode.com/svn/trunk@714 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-17 17:56:31 +00:00
srowen be59e299dc Add a bit of a hack to better detect UTF-8 in the wild, versus ISO88591
git-svn-id: https://zxing.googlecode.com/svn/trunk@712 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-16 12:46:18 +00:00
srowen 4fcdac3ae7 Change assert to an exception since this facility would not be available in J2ME. I vote for removing use of Debug anyway.
git-svn-id: https://zxing.googlecode.com/svn/trunk@711 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-16 12:03:11 +00:00
srowen 247e7c95bb Now uses new Reed Solomon encoder code
git-svn-id: https://zxing.googlecode.com/svn/trunk@709 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-15 20:23:32 +00:00
srowen c5d81d76d1 Add to result the raw, but parsed, bytes of byte segments in 2D barcodes
git-svn-id: https://zxing.googlecode.com/svn/trunk@708 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-15 13:50:18 +00:00
srowen ce341d92aa Bug fix to unrandomization routine from sanfordsquires
git-svn-id: https://zxing.googlecode.com/svn/trunk@707 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-15 12:58:36 +00:00
srowen 62d9959a3c Remove my old email address from files. Might as well save spammers the trouble.
git-svn-id: https://zxing.googlecode.com/svn/trunk@706 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-15 00:07:25 +00:00
dswitkin aea12b5286 Wrote a new ByteArray class to replace StringPiece and fixed all uses of it. Also converted all uses of stl::string (which was being used as vector<unsigned char>) to ByteArray. Everything in the Encoder but the Reed Solomon related code compiles now.
ByteArray could certainly move up to the common package, although it currently has a dependency on BitVector. We'll have to figure out what to do with the latter first.

This is the first set of changes I've made which are error prone. They involved a lot of pointer conversion, signed/unsigned semantics, etc. These diffs may have clues for later bugs.

git-svn-id: https://zxing.googlecode.com/svn/trunk@705 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-14 21:51:26 +00:00
dswitkin fabdd40edf Huge progress on the Encoder. I'm down to StringPiece errors (that class hasn't been replaced yet) and a few nasty methods, which call into Reed Solomon (not done yet).
git-svn-id: https://zxing.googlecode.com/svn/trunk@704 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-14 18:43:54 +00:00
srowen f80cd1ff51 More enhancements to Reed-Solomon tests
git-svn-id: https://zxing.googlecode.com/svn/trunk@703 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-14 18:34:19 +00:00
dswitkin b625c6f7e5 Got MatrixUtil to compile, and refactored some methods out of it, and into Matrix where they belong.
git-svn-id: https://zxing.googlecode.com/svn/trunk@702 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-14 16:21:05 +00:00
dswitkin 97ffa36734 Did a bunch of comments cleanup.
git-svn-id: https://zxing.googlecode.com/svn/trunk@701 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-14 15:40:38 +00:00
srowen 7cae0d4cc9 Added Reed-Solomon encoder, suitable for QR Code encoding
git-svn-id: https://zxing.googlecode.com/svn/trunk@699 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-14 12:40:55 +00:00
dswitkin 5dba28fc86 Wrote a reasonable implementation of BitVector which now compiles.
git-svn-id: https://zxing.googlecode.com/svn/trunk@698 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-13 21:59:08 +00:00
dswitkin 6f4898c68f Wrote a Matrix class and fixed all uses of it, as well as other small fixes like StringBuffer. MaskUtil and QRCode now compile with no errors.
git-svn-id: https://zxing.googlecode.com/svn/trunk@697 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-13 21:18:56 +00:00
srowen 8666ac2f8f Comment out QR code encoder package for the moment
git-svn-id: https://zxing.googlecode.com/svn/trunk@696 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-13 19:08:25 +00:00
dswitkin 60f3af2607 Converted the Mode and ECLevel enums in QRCode.java.
git-svn-id: https://zxing.googlecode.com/svn/trunk@695 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-13 17:12:53 +00:00
dswitkin f50305895d Began porting the QR Code encoder from ChartServer to Java/ZXing. Some important comments are flagged with JAVAPORT. I've done the following so far:
- Created Java files with our headers, packages, etc.
- Converted includes to imports, or commented out the unresolved dependencies
- Merged all the .h and .cpp contents into Java classes
- Fixed most of the formatting
- Did all the simple transformations (bool, NULL, const, struct, string, ::, ->)
- Created a Debug class to handle all the asserts and logging
- Fixed about half of the static arrays
- Removed some pthread cruft

IMPORTANT:

- Please do not start hacking this code up as I'm going to keep making large changes to it. In particular, we need to leave the trailing underscores on member variables for now. Once everything is compiling with no errors, we can revisit stylistic issues.
- There will be a number of similar classes within the encoder and in the rest of ZXing. We should refactor those later (BitVector and BitArray come to mind). In the mean time, I want to get everything working and the tests passing before we do that.

git-svn-id: https://zxing.googlecode.com/svn/trunk@694 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-13 16:14:44 +00:00
dswitkin cd0ff37fdb Made a small change to the KDDI AU parsing code to handle pronunciation (aka Furigana) specifically.
git-svn-id: https://zxing.googlecode.com/svn/trunk@692 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-12 16:21:19 +00:00
srowen 977c2e38ca Updates from sanfordsquires to fix RS decoding for Datamatrix
git-svn-id: https://zxing.googlecode.com/svn/trunk@689 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-12 13:47:45 +00:00
srowen d56fb38427 Updates from sanfordsquires to fix RS decoding for Datamatrix
git-svn-id: https://zxing.googlecode.com/svn/trunk@688 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-12 12:59:47 +00:00
dswitkin e9a6e8e906 Added support for Furigana using the SOUND field in MECARD. AddressBookParsedResult now has a pronunciation field to represent this. I'm not aware of whether this is supported in other formats like VCARD, so they all pass null for now.
git-svn-id: https://zxing.googlecode.com/svn/trunk@686 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-11 16:31:27 +00:00
srowen ae46d12d21 Partially addressed Reed-Solomon decoding issue for Datamatrix, but not entirely. Still some small issue that prevents correcting as many errors as possible.
git-svn-id: https://zxing.googlecode.com/svn/trunk@680 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-09 16:22:43 +00:00
srowen 04f17f67a6 Made new array fields final
git-svn-id: https://zxing.googlecode.com/svn/trunk@679 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-09 16:20:15 +00:00
srowen 5f817c69b6 Address a small but clear bug in detector logic
git-svn-id: https://zxing.googlecode.com/svn/trunk@678 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-08 14:27:08 +00:00
srowen 41a386f04c Attempt to make encoding detection slightly more accurate -- rule out Shift_JIS in a few more cases
git-svn-id: https://zxing.googlecode.com/svn/trunk@677 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-08 14:25:36 +00:00
srowen 56644b1af2 Small additional error check in decoder
git-svn-id: https://zxing.googlecode.com/svn/trunk@674 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-06 19:14:48 +00:00
dswitkin c4a28fa4a7 Made some temporary changes to make throwing ReaderExceptions more efficient. Long term, we need to delete this class and change the decoders to return errors instead of throwing.
git-svn-id: https://zxing.googlecode.com/svn/trunk@669 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-05 19:16:27 +00:00
srowen e6e3472471 Renamed UPC result type to Product, and introduced an idea of 'product ID' and 'normalized product ID' to account for UPC-E, where the actual visible ID is different from what we may want to search for as a key. Updated clients to use this too.
git-svn-id: https://zxing.googlecode.com/svn/trunk@668 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-04 12:08:19 +00:00
dswitkin 1dc71920e9 Another round of optimization, focused on reusing arrays and small objects.
git-svn-id: https://zxing.googlecode.com/svn/trunk@665 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-02 16:07:36 +00:00
srowen 14e22bd443 Revamp the character encoding detection to use a more complicated but still crude algorithm that detects more Shift_JIS sequences correctly.
git-svn-id: https://zxing.googlecode.com/svn/trunk@664 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-02 12:22:33 +00:00
srowen 79d7b01e9e Updated qrcode-2 with corrected output for some Japanese-language results. Also standardized on UTF-8 encoding for test result files and enabled --dump_results for single-file case.
git-svn-id: https://zxing.googlecode.com/svn/trunk@663 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-02 11:06:20 +00:00
srowen 70732c334e Now more lenient in detecting Shift_JIS to detect more byte sequences as Shift_JIS
git-svn-id: https://zxing.googlecode.com/svn/trunk@662 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-02 10:30:09 +00:00
dswitkin a8b57c466d Discovered that our 1D Readers were being reallocated for every row scanned - yikes! I made them reusable across both rows and different scans. This saved 26 ms on the worst case rejection. We can now consistently reject any 240x240 image on Android in 150 ms or less, checking all 7 formats.
git-svn-id: https://zxing.googlecode.com/svn/trunk@661 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-01 02:31:05 +00:00
srowen 5a5987df88 Allow up to 3 superfluous bits at end of stream
git-svn-id: https://zxing.googlecode.com/svn/trunk@659 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-31 18:49:54 +00:00
dswitkin bf362ae853 Added 17 new, unusual QR Codes to the blackbox tests. We can decode the majority OK, but some of the contents are not agreeing with the golden results because of a text encoding issue.
git-svn-id: https://zxing.googlecode.com/svn/trunk@658 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-31 18:09:24 +00:00
dswitkin 8671371c59 Did a big refactoring on the MonochromeBitmapSource. I removed all the caching luminance calls and converted them to getting luminance data on demand. This saved another 33,000 function calls per rejected scan, good for another 15 ms savings. I also moved the luminance calls to BaseMonochromeBitmapSource and made them protected, to indicate that the decoders shouldn't use them.
Overall the recent optimizations took one rejected scan from 307 to 135 ms, which is definitely noticeable.

WARNING: I am not able to build the Bug or J2ME clients, but I believe they are correct.

git-svn-id: https://zxing.googlecode.com/svn/trunk@656 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-30 18:44:10 +00:00
dswitkin bef3c75048 Fixed a crash in calendar parsing when encountering an illegal VEVENT without newlines.
git-svn-id: https://zxing.googlecode.com/svn/trunk@655 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-30 16:35:26 +00:00
dswitkin 4f7b7d573d Made the data members of BitArray public so they will be inlined. This saves about 60,000 function calls per rejected scan. We can make these private again once we figure out the ProGuard problems with -allowaccessmodification.
git-svn-id: https://zxing.googlecode.com/svn/trunk@653 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-29 21:16:46 +00:00
dswitkin 77f41cce22 Added another target for building a debug key signed Android client, and removed the old optimized target from core.
git-svn-id: https://zxing.googlecode.com/svn/trunk@650 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-29 19:50:37 +00:00
srowen 6f6da9a04c moved ProGuard optimization into Android build file since it's the only way to fully optimize the final build product (inlining of key methods). Also always dump proguard results.
git-svn-id: https://zxing.googlecode.com/svn/trunk@649 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-29 15:42:22 +00:00
dswitkin d80cd07064 Made a change to the QR detector which cuts the worst case rejection time from 300 ms to 160 ms, with almost no penalty in decoding ability. Given that we're emphasizing continuous decoding, I feel it's much better to reject the occasional borderline image in half the time, and get on with the next scan.
git-svn-id: https://zxing.googlecode.com/svn/trunk@648 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-29 14:22:44 +00:00
srowen 78da6447b0 Inner class elements now not private since it is pointless and confuses Proguard
git-svn-id: https://zxing.googlecode.com/svn/trunk@647 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-28 15:59:51 +00:00
srowen 96f6428eea Add column caching to MonochromeBitmapSources and use it to improve Data Matrix speed
git-svn-id: https://zxing.googlecode.com/svn/trunk@631 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-22 08:43:56 +00:00
dswitkin f142a9478c Reordered the address book fields to something a little more standard/reasonable.
git-svn-id: https://zxing.googlecode.com/svn/trunk@623 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-17 20:21:29 +00:00
dswitkin 77d29c3d7a Added support for URL to MECARD and VCARD.
git-svn-id: https://zxing.googlecode.com/svn/trunk@622 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-17 16:12:10 +00:00
dswitkin 8cb804ec9e Made a change to 1D decoding which looks for 100% instead of 150% of the start and end patterns when searching for quiet zones, but in exchange for that reduction, we reject rows whose quiet zones would run off either edge of the image.
The result is complete elimination of all false positives in the new batch of 40 images I just checked in. Bettter than that, we come up with a net gain of 38 new barcodes decoded (counting rotation and try harder variations). We even get some of the reflective images that were impossible up to this point.

git-svn-id: https://zxing.googlecode.com/svn/trunk@620 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-15 19:47:34 +00:00
dswitkin edcf34f0c5 Created 40 new blackbox images which are partial shots of a very large QR code. In mobile mode we do OK, but in try harder we find bogus 1D results in almost half of these. I'm checking this in as a baseline, and will work on improving the situation in a subsequent change.
git-svn-id: https://zxing.googlecode.com/svn/trunk@618 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-14 22:08:48 +00:00
dswitkin c91f427a8b Added a bit of defensive programming in the AlignmentPattern code. There were real world examples where the width passed to AlignmentPatternFinder was zero, which causes BitArray to throw when built with a size of zero. I'm going a little bit farther and not searching extremely small areas either.
Sean, please review.

git-svn-id: https://zxing.googlecode.com/svn/trunk@617 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-14 18:24:23 +00:00
dswitkin ef2f3f8ce0 Expanded calendar parsing to allow more date formats, added some unit tests for ISBN and VEVENTS, and fixed the EAN13-1 test which was failing by one image.
git-svn-id: https://zxing.googlecode.com/svn/trunk@616 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-14 15:56:03 +00:00
dswitkin 7fe2c1c60c Prevented ISBN parsing from happening twice.
git-svn-id: https://zxing.googlecode.com/svn/trunk@610 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-09 18:46:21 +00:00
srowen 83c01f0cee Camel-cased log_table, exp_table vars
git-svn-id: https://zxing.googlecode.com/svn/trunk@609 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-09 12:17:37 +00:00
mschulkind 76b4fa1910 Fixing a comment.
git-svn-id: https://zxing.googlecode.com/svn/trunk@607 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-08 20:52:58 +00:00
mschulkind af555d2409 Renaming two member variables so they no longer share names with their getters.
git-svn-id: https://zxing.googlecode.com/svn/trunk@606 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-08 20:42:04 +00:00
dswitkin 45677f2bb2 Made calendar event parsing more robust, and also reject non-calendar contents a little faster.
git-svn-id: https://zxing.googlecode.com/svn/trunk@604 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-08 15:37:38 +00:00
dswitkin 13c08aedaf Added 13 new blackbox images.
git-svn-id: https://zxing.googlecode.com/svn/trunk@603 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-07 18:57:15 +00:00
srowen 773409ed6a Add check for minimal whitespace before/after Code 128, Code 39; a few code tweaks as well
git-svn-id: https://zxing.googlecode.com/svn/trunk@601 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-07 09:53:53 +00:00
srowen 089df8eb7b Added redundant abstract method declarations to maybe work around problems on Nokias
git-svn-id: https://zxing.googlecode.com/svn/trunk@600 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-06 11:43:19 +00:00
srowen b0b0afc172 Added redundant abstract method declarations to maybe work around problems on Nokias
git-svn-id: https://zxing.googlecode.com/svn/trunk@599 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-04 14:46:15 +00:00
srowen 8c3b727bd4 Recent bug fix uncovered some bugs in test case -- fixing those
git-svn-id: https://zxing.googlecode.com/svn/trunk@594 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-01 16:17:03 +00:00
dswitkin 16bdeac581 Added two more UPC-A blackbox images submitted by the community.
git-svn-id: https://zxing.googlecode.com/svn/trunk@593 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-01 14:17:17 +00:00
dswitkin bacd1469af - Fixed a crash when parsing a particular VCard with a blank entry.
- Trimmed whitespace around many fields to sanitize the results (this is very useful upstream, for example we hyphenate phone numbers on Android but can't tolerate extra whitespace).
- Fixed a bug with 1D result points when scanning upside down - they needed to be mirrored to draw correctly.

git-svn-id: https://zxing.googlecode.com/svn/trunk@592 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-09-29 18:45:00 +00:00
srowen 6db50e0b79 Finally actually fix the Code-128 bug and add tests
git-svn-id: https://zxing.googlecode.com/svn/trunk@588 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-09-24 12:16:41 +00:00
srowen 78af16ca34 More UPC-A tests: interesting clear but low-res images that don't decode
git-svn-id: https://zxing.googlecode.com/svn/trunk@587 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-09-23 17:24:03 +00:00
srowen e2b141e1a3 Another fix -- account for CODE_STOP. Add some comments.
git-svn-id: https://zxing.googlecode.com/svn/trunk@585 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-09-22 09:08:57 +00:00
srowen b29b4d2070 Fix bug that would cut out part of result string if final checksum value happened to be the code for a non-printable character
git-svn-id: https://zxing.googlecode.com/svn/trunk@584 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-09-21 11:14:48 +00:00
dswitkin 1ab0f14f41 Made a couple utility methods public.
git-svn-id: https://zxing.googlecode.com/svn/trunk@582 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-09-19 01:10:25 +00:00
dswitkin d45123da9e Added an ISBN parsed result type courtesy of jbreiden.
git-svn-id: https://zxing.googlecode.com/svn/trunk@576 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-09-08 20:54:52 +00:00
srowen 67d139dadb git-svn-id: https://zxing.googlecode.com/svn/trunk@574 59b500cc-1b3d-0410-9834-0bbf25fbcc57 2008-09-01 00:33:53 +00:00
dswitkin f344098895 Added a new unit test of real world QR codes. We get 29/42 - pretty good, but room for improvement.
git-svn-id: https://zxing.googlecode.com/svn/trunk@571 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-08-25 17:44:23 +00:00
srowen 8b5d15cc5c URIParsedResult now has isPossiblyMaliciousURI() to check for username in host, which may be an attempt to mask the host of the URI
git-svn-id: https://zxing.googlecode.com/svn/trunk@570 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-08-21 04:33:42 +00:00
srowen 7dbc556789 Per dominik.wild, added support for "sms:number:body" format URIs
git-svn-id: https://zxing.googlecode.com/svn/trunk@565 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-08-15 16:35:47 +00:00
srowen 966c5a8e97 (Thanks to John White) Make UPC/EAN decoder less picky about white space bordering 1D code
git-svn-id: https://zxing.googlecode.com/svn/trunk@557 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-08-12 18:29:29 +00:00
dswitkin 3371fdb4d3 Added 55 EAN-13 real world test images. For mobile we get 49/55 of these, 55/55 with try harder.
git-svn-id: https://zxing.googlecode.com/svn/trunk@554 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-08-08 15:26:21 +00:00
srowen 6c309a7247 Parallelize black box tests
git-svn-id: https://zxing.googlecode.com/svn/trunk@552 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-08-06 20:26:05 +00:00
srowen 86ce6b77b7 Use unicode escapes to avoid apparent source file encoding issues here
git-svn-id: https://zxing.googlecode.com/svn/trunk@549 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-08-06 16:21:47 +00:00
srowen 7c6276d89b Reverted inadvertent Detector changes that broke unit tests. Fixed test target to definitely exclude non-TestCase classes from tests.
git-svn-id: https://zxing.googlecode.com/svn/trunk@548 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-08-06 16:07:46 +00:00
srowen 3a1d1f1850 Initial checkin of Data Matrix detector. Still needs work, and is not enabled by default.
git-svn-id: https://zxing.googlecode.com/svn/trunk@545 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-08-04 18:37:42 +00:00