Exécution
L’exécution d’un plugin se compose de trois parties. Initialize -> Boucle de rendu -> Shutdown
La seule exception à ce schéma est l’utilisation des rappels on*Change qui sont traités au début d’une image avant l’appel de la fonction de rendu.
”Initialize”
Section intitulée « ”Initialize” »Initialize s’exécute une fois lorsqu’un appareil est [re]connecté, et chaque fois que le bouton de diffusion est activé sur la page de configuration de l’appareil. Vous voudrez gérer ici toutes les tâches de démarrage initiales.
- Remarque : si l’appareil a des processus conflictuels en cours d’exécution, l’initialisation attendra jusqu’à leur fermeture, ou jusqu’à ce que l’utilisateur contourne la vérification.
export function Initialize(){ // Faire des choses ... SendInitPacket1(); SendInitPacket2(); SetSoftwareControl();}Boucle de rendu
Section intitulée « Boucle de rendu »La boucle de rendu est le cœur du plugin et c’est là que les changements de couleur et les autres fonctions d’exécution sont gérés.
Le processus de chaque image est le suivant :
- Les paramètres utilisateur sont mis à jour pour l’image
- Les couleurs sont récupérées pour les tampons de pixels de l’appareil et des sous-appareils
- Les rappels on*Change sont appelés dans l’ordre
- Render est appelé
- Remarque : Le temps par défaut entre les images est de 30ms
export function Render(){ // Faire des choses ... SendColors()}”Shutdown”
Section intitulée « ”Shutdown” »Shutdown est appelé lorsque SignalRGB se ferme normalement, et chaque fois que le bouton de diffusion est désactivé sur la page de configuration de l’appareil. Vous voudrez remettre ici l’appareil en mode matériel si nécessaire.
export function Shutdown(){ // Faire des choses ... SetHardwareControl();
}Rappels on*Changed
Section intitulée « Rappels on*Changed »Ces fonctions sont appelées chaque fois qu’un contrôle utilisateur est modifié. Elles se déclenchent juste avant l’appel de la fonction Render() dans l’ordre dans lequel elles se sont produites.
- Remarque : Leur nom doit être le suivant : “on[Nom de propriété du contrôle utilisateur]Changed()”. Cette règle est sensible à la casse.
// Contrôle utilisateur depuis ControllableParameters(){"property":"dpi1", "label":"DPI","step":"50", "type":"number","min":"200", "max":"18000","default":"800"},
// Fonctions DPIexport function ondpi1Changed(){
setDpi(dpi1)
}
function setDpi(dpi){ // Clause de garde pour empêcher le changement de DPI si l'utilisateur n'a pas activé ce booléen if(!SettingControl){ return; }
device.log(`Setting Dpi to ${dpi}`)
Corsair_Set(CORSAIR_DPI_X,dpi) Corsair_Set(CORSAIR_DPI_Y,dpi)
device.log(`DPI x is now ${Corsair_Get(CORSAIR_DPI_X)}`) device.log(`DPI y is now ${Corsair_Get(CORSAIR_DPI_Y)}`)
}Les rappels intégrés sont les suivants :
| Nom de la fonction | Description |
|---|---|
| onBrightnessChanged() | Se déclenche lorsque le curseur de luminosité principal de l’appareil est déplacé. |