Exports de plugin
Nous utilisons plusieurs fonctions pour communiquer avec l’API backend qui rapportent des informations comme les informations de l’appareil et les points d’entrée d’exécution, le nom d’affichage, les dimensions du canevas, les identifiants produit et fournisseur à rechercher, ce qu’est la boucle de rendu, etc.
”Name” et “Publisher”
Section intitulée « ”Name” et “Publisher” »Ces fonctions exportent le nom de l’appareil et l’éditeur à afficher dans SignalRGB.
export function Name() { return "Device Product name as a String"; };export function Publisher() { return "This is You! as a String"; };”VendorId” et “ProductId”
Section intitulée « ”VendorId” et “ProductId” »Ces fonctions sont utilisées pour rechercher l’appareil sur le système. Les deux sont encodées en valeurs hexadécimales au format “0x ”. Elles doivent correspondre exactement aux identifiants de votre appareil. Si votre plugin n’apparaît pas dans SignalRGB, il s’agit très probablement d’un identifiant fournisseur et produit non concordant. Le minimum requis pour détecter un appareil dans SignalRGB est un identifiant fournisseur et produit correspondant.
export function VendorId() { return 0xABCD;}; //Device's USB Vendor Id in Hexexport function ProductId() { return 0xABCD;}; //Device's USB Product Id in Hex”Size” et positionnement
Section intitulée « ”Size” et positionnement »Ceci définit la taille de base du cadre de l’appareil sur le canevas - avant tout redimensionnement - sous forme d’un tableau d’entiers 2D. Vous ne pouvez pas récupérer des couleurs en dehors de ces limites dans votre plugin, donc la taille doit être définie pour accommoder la largeur et la hauteur des LEDs de l’appareil lorsque vous les traduisez en grille.
export function Size() { return [X,Y]; };Ces fonctions définiront la position par défaut de l’appareil avant toute personnalisation par l’utilisateur. DefaultPosition retourne les coordonnées 2D du coin supérieur gauche. DefaultScale retourne le multiplicateur d’échelle sur une échelle de 1.0 à 30.0.
export function DefaultPosition(){return [X,Y]};export function DefaultScale(){return 8.0};”Led Names”
Section intitulée « ”Led Names” »Cette fonction retourne un tableau 2D de tous les noms de LEDs sur l’appareil. Ceux-ci devraient suivre les noms de touches pris en charge situés ICI pour prendre en charge les effets de frappe et les fonctionnalités de peinture de LEDs.
var vLedNames = [ "Scroll Wheel", "Side Led 1","Side Led 2","Side Led 3","Side Led 4", "Side Led 5","logo", "Right Side Led", "Dpi 1","dpi 2","Dpi 3", "Battery indicator"];export function LedNames(){return vLedNames;};”Led Positions”
Section intitulée « ”Led Positions” »Cette fonction retourne une matrice des positions individuelles des LEDs dans le tampon de pixels de l’appareil. Toutes les positions doivent être dans les limites définies par l’export Size() de l’appareil.
var vLedPositions = [ [3,0], [0,1],[0,2],[0,3],[0,4],[0,5],[3,5],[5,5], [0,2],[0,1],[0,0], [3,1]];export function LedPositions(){return vLedPositions;};”ControllableParameters”
Section intitulée « ”ControllableParameters” »Cette fonction contient tous les paramètres du plugin d’appareil. Ces paramètres sont stockés sous forme d’objets JS/JSON retournés dans un tableau par la fonction. Voir Contrôles utilisateur pour plus d’informations.
export function ControllableParameters(){ return [ {SETTING}, {SETTING} ];}”Validate”
Section intitulée « ”Validate” »Cette fonction est responsable de déterminer quels points de terminaison USB SignalRGB souhaite ouvrir et utiliser pour l’appareil. Chaque point de terminaison aura quatre paramètres à utiliser comme filtres correspondant aux valeurs de chaque point de terminaison USB sur l’appareil. Plusieurs points de terminaison peuvent être “ouverts” pour chaque appareil, mais un seul est utilisé à la fois. Pour changer le point de terminaison actif, voir device.set_endpoint().
Remarque : Les commandes devront généralement être envoyées à un point de terminaison spécifique. Les commandes envoyées à un point de terminaison configuré par l’appareil pour accepter un certain identifiant de rapport ou une certaine longueur généreront des erreurs si ces valeurs ne correspondent pas.
Remarque : Tous les appareils n’utiliseront pas des points de terminaison cohérents selon l’endroit et le moment où l’appareil a été fabriqué. La validation de plusieurs points de terminaison vous permet de revenir automatiquement à un autre si nécessaire.
| Paramètres disponibles |
|---|
| interface |
| usage |
| usage_page |
| collection |
export function Validate(endpoint){ return (endpoint.interface === 2 && endpoint.collection === 0x0003) || endpoint.interface === 1;
}Cette fonction définit le type de protocole USB à utiliser. La plupart des appareils utilisent des protocoles HID, mais certains appareils comme les AIO utiliseront des fonctions de contrôle USB brut à la place.
Remarque : La valeur par défaut lorsque cette fonction n’est pas disponible pour SignalRGB est le protocole HID.
| Protocole | Valeur String |
|---|---|
| HID | ”HID” |
| Lib/raw USB | ”RAWUSB" |
export function Type() { return "Hid"; }"ConflictingProcesses”
Section intitulée « "ConflictingProcesses” »Cette fonction exporte une liste de noms d’exécutables en conflit. SignalRGB n’initialisera pas le plugin pendant que l’un d’eux est en cours d’exécution. Le plugin sera initialisé lorsque le processus conflictuel sera fermé ou que le message d’erreur sera contourné par l’utilisateur.
Remarque : Ces noms doivent correspondre exactement au nom de l’exécutable en cours d’exécution.
export function ConflictingProcesses() { return ["NGenuity2.exe"];}”ImageUrl”
Section intitulée « ”ImageUrl” »Cette fonction retourne la chaîne URL de l’image de l’appareil. La taille d’image standard du plugin est 1024x1024 avec une zone active de 920x920.
export function ImageUrl(){ return "URL image string";}