Aller au contenu

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 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();
}

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 :

  1. Les paramètres utilisateur sont mis à jour pour l’image
  2. Les couleurs sont récupérées pour les tampons de pixels de l’appareil et des sous-appareils
  3. Les rappels on*Change sont appelés dans l’ordre
  4. Render est appelé
  • Remarque : Le temps par défaut entre les images est de 30ms
export function Render()
{
// Faire des choses ...
SendColors()
}

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();
}

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 DPI
export 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 fonctionDescription
onBrightnessChanged()Se déclenche lorsque le curseur de luminosité principal de l’appareil est déplacé.