Blackdread / canon-sdk-java

Canon EOS SDK in java. Wrapper for Canon EOS Digital Software Development Kit EDSDK.
MIT License
96 stars 17 forks source link

Update binding to latest EDSDK V13.14.40 #153

Open Dacesilian opened 2 years ago

Dacesilian commented 2 years ago

Hello Blackdread, I would like to kindly ask you, if is it possible and if you can update binding from latest EDSDK? There is a tables with version - https://developers.canon-europe.com/developers/s/article/Latest-EOS-SDK-Version-13-x .

Thank you very much! David

Blackdread commented 2 years ago

Hi, would be good to update, yes. I usually do for clients for pay, there is a few days work. I would probably also update to java 17 and previous java version would be paid version.

Dacesilian commented 2 years ago

That's the problem of opensource, yes. You do the job once and then realize that it needs to be updated and don't have free time. I totally understand:)

I will try it myself at first, now I'm waiting for EDSDK approval from Canon.

Dacesilian commented 2 years ago

I want to say that you've done a great job on this library! I appreciate all the comments, it's much easier to use it. I've successfully run your demo code with some very old EDSDK (on Java 18) and waiting for new one.

Example of getting ISO speed from event:

cameraPropertyListener = event -> {
            LOGGER.info("Property event: {}", event);

            if (event.getPropertyId() == EdsPropertyID.kEdsPropID_ISOSpeed) {
                final Object data = CanonFactory.propertyGetLogic().getPropertyData(event.getCameraRef(), event.getPropertyId(), event.getInParam());
                EdsISOSpeed isoSpeed = EdsISOSpeed.ofValue(((Long) data).intValue());
                LOGGER.debug("ISO speed = " + isoSpeed.name() + " " + isoSpeed.description());
           }
};

Generating JNA bindings also works. Don't know why there is tag prefix in all classes (is also in original EDSDK header file), will see what new EDSDK will have inside.

Thank you for your work!