Création d'un plugin Stream Deck
Création d'un plugin pour Stream Deck, avec .Net et C#
Voici un tutoriel pour créer plugin pour Elgato Stream Deck.
Matériel requis
- Elgato Stream Deck: Peu importe la version utilisée, ils utilisent tous le même logiciel.
Création du plugin pour le Stream Deck
Pour nous aider avec notre plugin Stream Deck, nous utilisons les outils développé par BarRaider qui permettent de débuter rapidement notre plugin mais également de déployer localement sur notre Stream Deck. Je suis librement la documentation de BarRaider mais également de Elgato, mais je vais tout même essayer de vous donner une peu plus d’informations.
Génération du projet pour Visual Studio
Pour démarrer rapidement le projet, j’utilise le template fourni par BarRaider qui permet de générer un projet C# avec les fichiers nécessaires pour développer le plugin pour Stream Deck, mais il faut tout de fois configurer certains fichiers (bien lire le fichier !!README!!.txt).
Attention: Le template de BarRaider utiliser l’ancien format de csproj( à moins qu’il n’a été mis à jour). Donc je vous recommande de migrer vers le nouveau format de csproj SDK.
Modifications du fichier manifest.config
Je listes ci-dessous les principales options que vous devriez changer pour configurer votre plugins. C’est valeurs vont apparaitre dans le store d’Elgato et aussi sur le Stream Deck lui-même.
- “Actions” : Liste toutes les actions disponibles dans le plugins
- “Name": Nom de l’action
- “Tooltip": popup apparaissant de le logiciel d’Elgato
- “UUID” : Nom unique pour identifier l’action à exécuter, à réutiliser dans la classe de l’action. Un exemple de mon projet: com.mongeon.MyRGBLamp.togglepower
- “Author” : Le nom apparaisant de le store d’Elgato
- “Name": Nom du plugin
- “Description": Description du plugin
- “URL": Votre site web
- “CodePath” : Par exemple: com.mongeon.MyRGBLamp
- “Category” : Permet de regrouper les actions/plugins dans des catégories dans le store d’Elgato mais également dans le logiciel du Stream Deck
Modifications au fichier PluginAction.cs
Ce fichier contient un exemple d’action, vous pouvez générez différentes actions dans le même projet et vous pouvez renommer le fichier comme bon vous semble, cependant, votre classe de votre action doit dériver de la classe PluginBase
et vous devez ajouter l’attribut suivant avec le même UUID que vous avez spécifier dans le fichier manifest.json:
[PluginActionId("com.mongeon.MyRGBLamp.togglepower")]
Pour l’instant, nous n’allons pas modifier immédiatement le fichier et nous allons tester notre nouveau plugin.
Génération du plugin et déploiement sur votre Stream Deck
Maintenant que vous avez un minimum de code, vous pouvez compiler votre projet pour générer un exécutable qui va être packager pour distribuer vers votre Stream Deck, mais également vers le store d’Elgato. Pour ce faire, copier le fichier install.bat fourni par BarRaider dans votre répertoire BIN de votre projet. Vous allez devoir modifier certaines valeurs pour vous assurer que votre plugin fonctionne correctement.
Distribution de votre plugin
Via le store d’Elgato
Pour soumettre votre plugin pour le store d’Elgato, vous devez envoyer un courriel à streamdeck.elgato@corsair.com et inclure l’information suivante:
- Compagnie/Développeur: Qui a fait le plugin, soit le nom de la compagnie ou bien votre nom.
- User: un nom unique ou une adresse courriel
- Description: Une courte description qui va apparaitre dans le store.
- Release note: Les changements (fonctionnalités et/ou bogues) que vous avez apporté au plugin.
- Support-Link: Un lien vers votre site web ou votre page de support. Ceci permet aux utilisateurs de vous contacter en cas de problème. Personnellement, j’ai utilisé un lien vers une page GitHub.
- Operating System: Est-ce que votre plugin est compatible avec Windows ou/et MacOS?
- Category: Sous quelle catégorie de plugins souhaitez-vous le placer? Une seule est permise.
Vous pouvez joindre le fichier de votre plugin au courriel ou simplement un lien pour télécharger le plugin. Dans mon cas, j’ai pointé le lien vers un fichier de release de Github directement.
En espérant qu’Elgato améliore le processus de soumissions de plugins dans le future. Cependant, la communication avec l’équipe d’Elgato est très conviviale et ils s’assurent également que votre plugin fonctionne bien avant de le rendre disponible dans leur store.
Via votre hébergement web
Solution plus simple, rendre accessible le fichier .sdplugin disponible via un site web! Le désavantage de cette solution est que votre plugin ne pourra pas être facilement trouver par les utilisateurs de Stream Deck.