Lazarus

Programming => Packages and Libraries => Ported from Delphi/Kylix => Topic started by: DonAlfredo on June 30, 2018, 11:18:07 am

Title: ZXing
Post 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.
Title: Re: ZXing
Post by: af0815 on June 30, 2018, 02:39:54 pm
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.
Title: Re: ZXing
Post by: DonAlfredo on June 30, 2018, 03:02:36 pm
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 !!!
Title: Re: ZXing
Post by: af0815 on June 30, 2018, 03:36:55 pm
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.

 
Title: Re: ZXing
Post by: Xor-el on June 30, 2018, 03:47:49 pm
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.
Title: Re: ZXing
Post by: DonAlfredo on July 03, 2018, 01:41:57 pm
Small update.

Done: unit tests have been added.
Todo: solve some memory leaks.

Quote
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.

Quote
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.
Title: Re: ZXing
Post by: DonAlfredo on July 07, 2018, 01:58:08 pm
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.
Title: Re: ZXing
Post by: avra on February 25, 2019, 10:51:41 am
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.
Title: Re: ZXing
Post by: Jurassic Pork on March 20, 2021, 01:54:30 am
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
Title: Re: ZXing
Post by: trev on March 20, 2021, 04:45:49 am
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.
Title: Re: ZXing
Post by: DonAlfredo on March 20, 2021, 08:33:35 am
@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.
Title: Re: ZXing
Post by: Jurassic Pork on March 20, 2021, 09:38:41 am
hello,
ok Thanks DonAlfredo it works !    :)
Friendly J.P
Title: Re: ZXing
Post by: DonAlfredo on March 20, 2021, 10:20:54 am
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
Title: Re: ZXing
Post by: Grahame Grieve on October 05, 2021, 09:28:13 pm
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?
Title: Re: ZXing
Post by: Grahame Grieve on October 24, 2021, 11:01:29 pm
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
TinyPortal © 2005-2018