Blackdread / canon-sdk-java

Canon EOS SDK in java. Wrapper for Canon EOS Digital Software Development Kit EDSDK.
MIT License
95 stars 17 forks source link
camera canon canon-camera canon-edsdk canon-eos-digital canon-eos-sdk edsdk java jna jni mockito opensource sdk sonar

Build Status Coverage Status Maven Central Github Workflow StackShare

Canon EOS SDK (EDSDK)

Canon EOS SDK in java (EDSDK).

Latest headers used to create bindings are with EDSDK 13.10.0 (version released on February 23rd 2019)

See Bindings README for more detailed information of that module

See Framework README for more detailed information of that module, important design is explained about Threads and events.

Project motives

Project intend to give access to Canon EOS Digital Software Development Kit EDSDK in Java.

Features are:

Support for MAC OSX is not intended for now, but only few changes in implementation should be required to make it work. Only changes in library loader class should be needed.

Both 64 bit and 32 bit versions are supported.

Java versions

Minimum Java 8 is required. Works with JDK 8/11/14+

Maven dependency

To control camera, use the framework:

<dependency>
    <groupId>org.blackdread</groupId>
    <artifactId>camera-framework</artifactId>
    <version>put version here</version>
</dependency>

If you only want bindings then just change artifact to "camera-binding" but framework should be what you should use as it gives commands, etc.

Usage

See package "org.blackdread.cameraframework.demo" in test folder (here).

Support project

To help me to maintain and add more features, you can be a sponsor.

Company support and sponsor

For companies that desire support, help, or even sponsor, etc feel free to contact me on LinkedIn https://www.linkedin.com/in/yoanncaplain/ (preferred way) or via an email form).

Commercial technical support and services are possible.

Design note

Any collection/map return type should be considered as immutable, even if implementation does not use ImmutableList/Set/etc. If collection/map is mutable, it will be clearly specified in javadoc, otherwise implementation is free to change to immutable collections anytime.

How to contribute pull requests

Do a pull request. Explain your changes, reasons, write tests.

Get EDSDK library from Canon

Analysis with sonar

sonar-quality-gate sonar-coverage sonar-bugs sonar-vulnerabilities sonar-code-lines

Previous project

This library started from scratch due to edsdk4j that was not maintained; And I wanted to implement a complete different code architecture.

Software example using this Framework/SDK

Example 1