This project provides api acces to any connected Elgato Stream Deck (Called ESD from now on). Windows, Linux and Mac OS X should be supported, but only windows could be tested. This project is not associated in any way with Elgato Systems.
StreamDeckCore provides the following basic features:
- Supporting multiple ESDs
- Recognizing a connected ESD
- Retriving all connected ESDs
- Resetting the connected ESD
- Setting the icons of the keys (0 - 14)
- Setting the brightness of the ESD (0 - 99)
- Recieving key pressed, released, clicked events from the ESD
- Recieving KeyEvents if a key is beeing changed, one event for adding a key and one event for removing a key.
- Custom animations for specific keys, at a 60/30/15 fps or custom fps.
The StreamDeckController class is an easy way to display content and create folder structures without the need of developing the code for folders etc. yourself.
If you have no Stream Deck yourself, but still want to develop for the plattform, you can use the software implementation to do that. Its a simple JFrame of all 15 "buttons" displayed. Its activated on default and can be disabled at the start of your program by using de.rcblum.stream.deck.device.StreamDeckDevices.disableSoftwareStreamDeck();
- Recognize new connected and disconnected StreamDecks
- Display different Soundboards for multiple StreamDecks
- Clean up sources
- Document everything
- Create tutorial & example programs
If you want to use this library in your maven project, just add the following dependency to you pom.xml:
<dependency>
<groupId>io.github.vveird</groupId>
<artifactId>StreamDeckCore</artifactId>
<version>1.0.3</version>
</dependency>
This uses the github project https://github.com/nyholku/purejavahidapi (forked to https://github.com/WElRD/purejavahidapi).
I'd recommend using the following fork for now, as the current version of nyholku's library introduces some errors that breaks this library: https://github.com/WElRD/purejavahidapi. This version is also included in the releases.
The maven dependencies of the project reference the appropriate libaries.
For examples please see the wiki