Skip to content

beddy70/JStreamDeck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 

Repository files navigation

JStreamDeck

JStreamDeck est une API en Java pour le permettant de contrôler le périphérique Stream Deck d'Elgato afin de l’intégrer plus facilement dans vos applications Java. Elle permet aussi la gestion de plusieurs Stream Deck connecter à un même ordinateur.

Comme l’application d’Elgato, il est possible de créer des pages, différents types de boutons (classique, switch, animés,…).

alt text

Dépendances

L’API JStreamDeck s’accompagne d’une classe HIDInspector reposant sur Pure Java HID-API afin de simplifier la connexion au ou aux StreamDeck connectés.

La classe HIDInspector

Cette classe vient accompagner Pure Java HID-API afin de simplfier la connection à un ou plusieurs périphériques USB. Ici nous allons voir comment réaliser une connexion à un ou plusieurs Stream Deck.

L'instance d'une classe HIDInspector permet d'initialiser l'API Pure Java HID-API.

La méthode getAllDevices de HIDInspector permet de remonter tous les périphèriques USB attachés à un VID et un PID spécifique (le VID etant l'identifaint du fabriquant et le PID l'identifiant du matériel)

Par exemple pour un Stream Deck son VID=0x0FD9 et son PID=0x0060.

//Récupérer l'ensemble des périphériques USB
HIDInspector devices = new HIDInspector();

//Récupére l"ensemble des Stream Deck connectés à votre ordinateur
List<HidDeviceInfo> devlist = devices.getAllDevices((short) 0x0FD9, (short) 0x0060);

Connexion au Stream Deck

Comme nous l'avons vu plus haut, la classe HIDInspector permet de se connecter à un ou plusieurs Stream Deck. Le code suivant vous montre comment récupérer une connexion au premier Stream Deck connecté.

//Récupérer l'ensemble des périphériques USB
HIDInspector devices = new HIDInspector();

//Récupére l"ensemble des Stream Deck connectés à votre ordinateur
List<HidDeviceInfo> devlist = devices.getAllDevices((short) 0x0FD9, (short) 0x0060);

HidDevice dev;
if ( devlist.size > 0 ) {
   //Récupère le premier Stream Deck connecté 
   dev = PureJavaHidApi.openDevice(devlist.get(0));
}

La classe JStreamDeck

Création d'un objet JStreamDeck

Une fois la connexion avec un Stream Deck réalisée, nous allons pouvoir controler notre Stream Deck. la suite du code s'écrit ainsi :

JStreamDeck sd;

if ( dev!= null) {
   sd = new JStreamDeck(dev);
}

Changer la luminosité

La méthode setBrithness( luminosité ) permet de fixer la luminosité avec une valeur comprise entre 0 et 100.

sd.setBrithness(100);

Couleur de fond par défaut

La méthode setBackground( couleur) permet de fixer la couleur de fond des touches par défaut.

sd.setBackground(Color.gray);

Il est possible de connaître la couleur de fond via la méthode getBackground()

Color bg=sd.getBackground();

Changer la couleur d'une touche

La méthode fillcolor( key_number , Color(r,g,b) ) permet d'associer une couleur à une touche.

sd.fillColor(2, Color.red);
sd.fillColor(3, new Color(255, 160, 0));

Effacer une touche

les méthodes clear(int key) et clearAll() permettent d'éffacer le contenu graphique d'une touches ou de toutes les touches. La couleur par defaut sera celle définit par la méthode setBackground(Color background)

sd.clear(2); //effacer le contenu de la touche 2
sd.clearAll(); //efface toutes les touches

Afficher le logo par defaut d'Elgato

La méthode showDefaultLogo() permet d'afficher le logo d'Elgato sur le Stream Deck

sd.showDefaultLogo(); 

Les Pages de jStreamDeck

Une page est une configuration de boutons. Elle peut-être liée à une ou plusieurs autres via des boutons de type folder et ainsi construire une arborescence de pages. Ci dessous, un exemple de deux pages reliées par un bouton (folder) intitulé "Folder1" :

alt text

La création d'un bouton folder créé automatiquement un bouton folder parent sur la page liée (sur la première ligne/colonne).

PageManager

La classe PageManger est indispensable pour la gestion des pages. Elle doit être instancier avant de créer nos pages.

//Récupérer l'ensemble des périphériques USB
HIDInspector devices = new HIDInspector();

//Récupére l"ensemble des Stream Deck connectés à votre ordinateur
List<HidDeviceInfo> devlist = devices.getAllDevices((short) 0x0FD9, (short) 0x0060);

HidDevice dev;

if ( devlist.size > 0 ) {
   //Récupère le premier Stream Deck connecté 
   dev = PureJavaHidApi.openDevice(devlist.get(0));
}

JStreamDeck sd;

if ( dev!= null) {
   sd = new JStreamDeck(dev);
}

PageManager pm = new PageManager(sd);

Création du page

la création d'une page se fait via la classe JStreamDeckPage(PageManager pm, String name, JStreamDeckPage parent). Les arguments sont les suivants :

  • le pointeur du PageManager
  • le nom de la page
  • la page parent (si la page n'a pas de parent indiquer null)

exemple :

JStreamDeckPage page_root = new JStreamDeckPage(pm, "root", null);

About

Java API for Stream Deck d'Elgato

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages