Lazarus
Programming => Packages and Libraries => Ported from Delphi/Kylix => Topic started by: DonAlfredo on June 30, 2018, 11:18:07 am
-
Just to inform you.
I have ported the ZXing library towards FPC and Lazarus.
https://github.com/LongDirtyAnimAlf/ZXing.Delphi
Included are working demo's for Windows and Lazarus.
https://github.com/LongDirtyAnimAlf/ZXing.Delphi/tree/v_3.0/Lazarus
Please note.
This library makes extended use of generics.
ZXing library and demo's have been tested with FPC trunk and Lazarus trunk only.
-
Thx to DonAlfredo for his work.
I have done a try one year ago, but it was not successfull. So i know how much work it is, and how tricky some generic routines are programmed.
-
You are welcome !
Porting was not that hard: the new Delphi compatible Generics made life much easier than before. Besides, the new source is still Delphi compatible !
I use this ZXing port for desktops together with an Android app that also scans qr-codes with the help of the native Java ZXing library.
All done with FPC and Lazarus and LAMW and Generics !!!
-
I have seen you work with v4l2. Some Cameras are only working with gstreamer.
Have you experience with gstreamer too ? I have not found any ported header, nor a project in Lazarus/Freepascal using this library for video and shooting still pictures.
-
Just to inform you.
I have ported the ZXing library towards FPC and Lazarus.
https://github.com/LongDirtyAnimAlf/ZXing.Delphi
Included are working demo's for Windows and Lazarus.
https://github.com/LongDirtyAnimAlf/ZXing.Delphi/tree/v_3.0/Lazarus
Please note.
This library makes extended use of generics.
ZXing library and demo's have been tested with FPC trunk and Lazarus trunk only.
Edit:
Binaries for testing: https://github.com/LongDirtyAnimAlf/ZXing.Delphi/releases/tag/v3.5a
splendid, that's all I can say.
Good Job.
One Less Library to make FPC Compatible. :D
Quick Question.
Is it possible for you to submit your changes as a pull request to the original repository.
it will make it less work to keep them in sync when the original repository makes an update.
Once again, well done and thanks.
-
Small update.
Done: unit tests have been added.
Todo: solve some memory leaks.
Is it possible for you to submit your changes as a pull request to the original repository.
If I am ready with my work on this library, I will ask the original author.
However, I think changes are dim, due to the many changes.
Delphi compatibility is still maintained, so that will not be a show-stopper.
Have you experience with gstreamer too ?
No, I don't. Due to my limited time, I have to restricts my efforts to my current use of this lib.
-
The work has been done.
ZXing has been ported 100%.
Consumed more effort due to memory-leaks: source had to be de-"ARC"-ed (ARC=auto-ref-count).
Two simple demo binaries (for Windows) are available:
https://github.com/LongDirtyAnimAlf/ZXing.Delphi/releases/latest
I have asked the author to have the two projects merged.
-
I have asked the author to have the two projects merged.
Were they merged? What would be the recommended repo now?
Btw, it would be more convenient if there was a LPK file.
-
hello DonAlfredo,
thanks for your work !
i have this problem to compile your zxing lazarus library : generic TList not working with Enumerated type with constant assignment (https://forum.lazarus.freepascal.org/index.php/topic,53763.msg398264).
Windows 10 Lazarus 2.0.12 fpc 3.2
Can you check that ?
Friendly, J.P
-
As DonAlfredo notes "ZXing library and demo's have been tested with FPC trunk and Lazarus trunk only", I'd suspect you need to use FPC + Lazarus trunk.
-
@Jurassic Pork
This is a known problem. And easy to solve. Just compile again !
Yes, your read this correct: you need to compile the sources twice.
Seems to be a compiler problem, but I never took the time to look into it more closely.
-
hello,
ok Thanks DonAlfredo it works ! :)
Friendly J.P
-
As you were able to isolate this problem (many thanks for that), I think its worth to file a bugger and have some FPC devs look at it.
I have filed it: https://bugs.freepascal.org/view.php?id=38642
-
thnks @DonAlfredo, this is good stuff. But unfortunately, while it compiles with the latest trunk, the linker fails:
fhirtoolkit.lpr(51,1) Error: Undefined symbol: RTTI_$ZXING.RESULTPOINT_$$_TARRAY$1$CRCE4D18BA0 (first seen in ZXing.OneD.OneDReader.o)
fhirtoolkit.lpr(51,1) Error: Undefined symbol: ZXING.READRESULT$_$TREADRESULT_$__$$_CREATE$crc38BEB87B (first seen in ZXing.OneD.Code128Reader.o)
fhirtoolkit.lpr(51,1) Error: Undefined symbol: RTTI_$ZXING.RESULTPOINT_$$_TARRAY$1$CRCE4D18BA0$indirect (first seen in ZXing.QrCode.QRCodeReader.o)
fhirtoolkit.lpr(51,1) Error: Undefined symbol: ZXING.READRESULT$_$TREADRESULT_$__$$_ADDRESULTPOINTS$TARRAY$1$CRCE4D18BA0 (first seen in ZXing.OneD.UPCEANReader.o)
fhirtoolkit.lpr(51,1) Error: Undefined symbol: ZXING.READRESULT$_$TCUSTOMDICTIONARY$3$CRC8D1CED1D_$__$$_SETVALUE$IMETADATA$IMETADATA (first seen in ZXing.OneD.UPCEANExtension2Support.o)
Does anyone know anything about this?
-
I don't know why, or if I did something different I don't know about, but this is no longer a problem for me