Référence de scripting
Vous trouverez ici une référence quasi-exhaustive sur les fonctions spécifiques de Chataigne.
Les scripts dans Chataigne sont basés sur une version simplifiée de Javascript. La plupart des fonctions sont disponibles, mais certaines peuvent manquer. Si certaines fonctions vous manquent, n'hésites pas à aller sur Discord et pourquoi pas faire un don (https://github.com/sponsors/benkuper) pour que je puisse passer plus de temps à améliorer Chataigne !
Cette documentation ne montre que les fonctions que j'ai rajoutées par-dessus le moteur Javascript de JUCE. Pour avoir plus d'informations sur toutes les fonctions de bases disponibles, vous pouvez regarder dans le source code du moteur Javascript.
Fonctions communes
Il y a quelques fonctions communes que vous pouvez utiliser, quel que soit le type de script.
Aucune des fonctions ci-dessous n'est nécessaire lors de la réalisation d'un script, ce sont juste des fonctions d'aide. Si vous n'en avez pas besoin, ne les ajoutez pas à votre script, car Chataigne optimisera votre script en fonction des fonctions déclarées dans celui-ci.
Méthode | Description | Exemple |
init() | Si elle est présente, cette fonction sera appelée juste après le chargement du script. |
|
update(deltaTime) | Si elle est présente, cette fonction sera appelée régulièrement au rythme spécifié par le "Taux de mise à jour" ; paramètre de script. Ce paramètre n'est visible que lorsque la fonction est présente dans le scénario. Vous pouvez également modifier le taux à partir du script en appelant script.setUpdateRate(rate). voir ci-dessous pour plus d'informations. deltaTime est en secondes, et le paramètre rate est en Hz. |
|
messageBoxCallback(id, result) | Cette méthode est appelée quand un OkCancel box ou un YesNoCancel box a été lancée puis le script. id est l'id fourni au moment de l'appel de la fonction, result est le resultat (0, 1 ou 2) en fonction du bouton cliqué |
|
Paramètres et Triggers
Tous les paramètres et déclencheurs ont des méthodes communes et des méthodes spécifiques
Méthodes et propriétés communes
Méthode | Description | Exemple |
getParent() | Retourne la valeur de ce paramètre |
|
setName(name) | Définit le nom du paramètre |
|
setAttribute(attribut, value) | Définit un attribut du paramètre. Tous les paramètres obtiennent : readonly : définit le paramètre comme non modifiable description : modifier la description de l'infobulle activé : activer ou désactiver ce paramètre alwaysNotify : active le flag alwaysNotify (si à true, cela déclenchera des mises à jour même si la valeur fixée est la même qu'auparavant). Plus d'informations pour des paramètres spécifiques dans chaque section de paramètres's. |
|
isParameter() | retourne si la cible est un paramètre ou un déclencheur |
|
name | Il s'agit de l'identificateur de nom de l'objet, comme vous le feriez dans un script. |
|
niceName | C'est le "joli nom" ; de l'objet, tel que vous le voyez dans l'Inspecteur. |
|
getControlAddress ([reference]) | Retourne l'adresse de contrôle OSC de cet élement. Le paramètre optionnel reference permet de spécifier un élément relatif à partir duquel générer l'adresse . |
|
getScriptControlAddress() | Retourne l'adresse de contrôle en version script de cet élément. |
|
resetValue() | Pour les parametres, remet la valeur à la valeur par défaut |
|
Trigger
Méthode | Description | Exemple |
trigger() | Déclenche ce contrôle |
|
Float Parameter
Méthode | Description | Exemple |
get() | Retourne la valeur de ce paramètre |
|
set(value) | Définit la valeur de ce paramètre |
|
setAttribute(attribut, value) | Attributs spécifiques : ui : L'interface utilisateur à utiliser pour afficher ce paramètre. Les valeurs acceptées sont : time, slider, stepper, label |
|
Integer Parameter
Méthode | Description | Exemple |
get() | Retourne la valeur de ce paramètre |
|
set(value) | Définit la valeur de ce paramètre |
|
setAttribute(attribut, value) | Attributs spécifiques : hexMode : Afficher la valeur en décimal ou en hexadécimal. |
|
Boolean Parameter
Méthode | Description | Exemple |
get() | Retourne la valeur de ce paramètre |
|
set(value) | Définit la valeur de ce paramètre |
|
String Parameter
Méthode | Description | Exemple |
get() | Retourne la valeur de ce paramètre |
|
set(value) | Définit la valeur de ce paramètre |
|
setAttribute(attribut, value) | Attributs spécifiques : multiline : si le paramètre peut être multiligne préfixe : ajoute un préfixe avant la valeur suffixe : ajoute un suffixe après la valeur |
|
Color Parameter
Méthode | Description | Exemple |
get() | Retourne la valeur de ce paramètre. Le résultat est un tableau contenant [r,g,b,a], les valeurs sont comprises entre 0 et 1 |
|
set(value) | Définit la valeur de ce paramètre. Vous pouvez soit définir la valeur par valeur hex ARGB, tableau flottant [r,g,b,a], ou valeurs séparées r,g,b,a. Les valeurs r, g et b sont toujours comprises entre 0 et 1 et l'alpha est facultatif (vous pouvez spécifier r,g,b seulement); |
|
Target Parameter
Méthode | Description | Exemple |
get() | Retourne la valeur de la chaîne de l'adresse cible |
|
getTarget() | Retourne la cible réelle sélectionnée |
|
set(value) | Définit la valeur de la chaîne de caractères de l'adresse cible. |
|
setAttribute(attribut, value) | Attributs spécifiques : root : le conteneur racine à partir duquel la recherche doit être effectuée searchLevel : précise le niveau maximum à rechercher dans le root showParameters : si la cible est contrôlable, cacher ou montrer paramètres showTriggers : si la cible est contrôlable, cacher ou montrer déclencheurs labelLevel : le niveau des parents à afficher dans l'IU. allowedTypes : précise quels types de cible sont acceptés excludedTypes : précise quels types de cible ne sont pas acceptés |
|
Enum Parameter
Méthode | Description | Exemple |
addOption(label, value) | Ajoute une option à la liste |
|
get() | 1.6.x : Retourne la clé sélectionnée 1.7.x : Retourne la donnée sélectionnée |
|
getData() | Obtenir les données sélectionnées (1.6.x seulement) |
|
getKey() | Obtenir la clé sélectionnée (1.7.x seulement) |
|
removeOptions() | Supprime toutes les options. |
|
set(key) | Définit la valeur avec l'étiquette fournie |
|
setData(data) | Définit la valeur avec la donnée fournie |
|
setNext([loop]) | Définit la prochaine valeur dans la liste. Loop (optionnel) : définit si la liste doit boucler en arrivant à la fin |
|
setPrevious([loop]) | Définit la valeur précédent dans la liste. Loop (optionnel) : définit si la liste doit boucler en arrivant à la fin |
|
getAllOptions() | Récupère la liste des options disponibles. Le resultat est un tableau d'objets contenant les propriétés "key" et "value" |
|
getOptionAt(index) | Récupère une option à un index défini de la liste. Le resultat est un objet contenant les propriétés "key" et "value" |
|
getIndex() | Retourne l'index de l'option sélectionnée |
|
File Parameter
Méthode | Description | Exemple |
setAttribute(attribut, value) | Attributs spécifiques : directoryMode : précise si l'on veut chercher un fichier ou un dossier. |
|
readFile([asJSON]) | Lit le contenu du fichier. Si asJSON est vrai, alors le contenu sera analysé et renvoyé sous la forme d'un Object. |
|
writeFile(data, overwriteIfExists) | Ecrit le contenu ou une chaîne d'un Objet dans le fichier sélectionné. Si il existe, overwriteIfExists vous permettra de décider de l'écraser ou non (false par défaut). |
|
getAbsolutePath() | Retourne le chemin absolu de ce fichier. |
|
launchFile(arguments) | Ceci lancera le fichier sélectionné avec les arguments fournis |
|
Point2D Parameter
Méthode | Description | Exemple |
get() | Retourne la valeur de ce paramètre. Le résultat est un tableau contenant [x, y]. |
|
set(value) | Définit la valeur de ce paramètre |
|
Point3D Parameter
Méthode | Description | Exemple |
get() | Retourne la valeur de ce paramètre. Le résultat est un tableau contenant [x, y, z]. |
|
set(value) | Définit la valeur de ce paramètre |
|
Container
Les conteneurs sont tout objet qui contient des paramètres ou d'autres récipients. Si vous visez un élément de la hiérarchie ( root ou local ), ce sera soit un conteneur, soit un paramètre. Donc si ce n'est pas un paramètre, alors c'est un conteneur.
Méthode | Description | Exemple |
getChild(childName) | Retourne le paramètre ou le conteneur avec le nom fourni. |
|
getParent() | Retourne le conteneur parent |
|
setName(name, [shortName]) | Change le nom du conteneur. Si shortName est mentionné, cela assignera son nom d'acces pour pouvoir y accéder via getChild ultérieurement. |
|
setCollapsed(value) | Modifie l'état de repli du conteneur, s'il peut être replié. |
|
name | Il s'agit de l'identificateur de nom de l'objet, comme vous le feriez dans un script. |
|
niceName | C'est le "joli nom" ; de l'objet, tel que vous le voyez dans le Inspecteur. |
|
addTrigger(name, description) | Ceci ajoutera un déclencheur (bouton). |
|
addFloatParameter(name, description, default, min max) | Cela ajoutera un paramètre de nombre flottant (curseur). |
|
addIntParameter(name, description, default, min max) | ajoute un paramètre de nombre entier (step), valeur par défaut de 2, avec une valeur se situant entre 0 et 10 |
|
addBoolParameter(name, description, default) | ajoute un paramètre booléen (toggle) |
|
addStringParameter(name, description, default) | ajoute un paramètre de chaîne (champ de texte) | |
addColorParameter(name, description, default) | ajoute un paramètre de couleur (sélecteur de couleur). |
|
addPoint2DParameter(name, description) | ajoute paramètre de point 2d |
|
addPoint3DParameter(name, description) | ajoute paramètre de point 3d |
|
addTargetParameter(name, description) | ajoute un paramètre cible (pour référencer un autre paramètre) |
|
addFileParameter(name, description, [directoryMode]) | Ajoute un paramètre de fichier (pour référencer le fichier ou le dossier sur le disque). Si le mode répertoire est réglé sur vrai, un dossier peut être sélectionné au lieu d'un fichier. |
|
addEnumParameter(name, description, label1, value1, label2, value2, ...) | Ajoute un paramètre d'énumération (menu déroulant avec options) Chaque paire de valeurs après les 2 premiers arguments définit une option et ses données liées |
|
addContainer(name) | Ajoute un conteneur à l'intérieur du conteneur. |
|
removeContainer(name) | Supprime un conteneur enfant du conteneur. |
|
removeParameter(name) | Supprime un paramètre du conteneur. |
|
getControlAddress ([reference]) | Retourne l'adresse de contrôle OSC de cet élement. Le paramètre optionnel reference permet de spécifier un élément relatif à partir duquel générer l'adresse . |
|
getScriptControlAddress() | Retourne l'adresse de contrôle en version script de cet élément. |
|
Managers
Les managers sont des types particuliers de conteneurs. Dans le logiciel, vous pouvez voir qu'un conteneur est un gestionnaire lorsqu'il y a une icône "+*" à droite de son bloc. Dans la plupart des cas, il s'agit simplement de conteneurs améliorés. La plupart du temps, les gestionnaires qui vous intéresseront sont le gestionnaire de modules, le gestionnaire de séquences, les gestionnaires de couches et les gestionnaires de clés d'automatisation. Lorsque vous manipulez un gestionnaire, vous avez accès à des fonctions et des propriétés spécifiques comme l'ajout d'éléments, la suppression d'éléments ou l'obtention d'un tableau de ses éléments.
Méthode | Description | Exemple |
addItem([type]) | Ajoute un élément au gestionnaire et le renvoie. Certains gestionnaires comme le gestionnaire de modules ou le gestionnaire de couches peuvent créer plusieurs types d'articles. Ils ont donc besoin d'un type d'article à créer, que vous devez définir dans l'argument type. D'autres gestionnaires comme le gestionnaire de séquences ne sont pas nécessaires car il n'y a qu'un seul type de séquence. Dans ces cas, vous ne devez pas fournir d''argument lors de l'appel de la fonction. |
|
removeItem(item) | Supprime un élément. item doit être un élément géré par ce gestionnaire. |
|
getItems() | Retourne un tableau contenant tous les éléments de ce gestionnaire. |
|
getItemWithName(name) | Retourne le premier élément trouvé avec nom. Ceci va rechercher une correspondance exacte entre niceName, shortName et la version minuscule. |
|
getItemAt(index) | Retourne l'élément à l'index index |
|
getItemIndex(item) | Retourne l'index de l'élément spécifié item. |
|
getItemBefore(item) | Retourne l'élément avant l'élément spécifié item. |
|
getItemAfter(item) | Retourne l'élément après l'élément item. spécifié |
|
States
Les States ont des méthodes dédiées permettant de faciliter la création de certains éléments comme les transitions
Method | Description | Example |
---|---|---|
addTransition(source, dest) | Ajoute une transition entre 2 States. source et dest sont les noms des States pour lesquels créer une transition. |
|
Automation
Les automations sont des types spéciaux de managers, qui représentent des courbes. On peut les trouver dans des Mapping Layers, ou des Curve Map Filter par exemple. Ils contiennet des méthodes spécifiques, permettant de manipuler et récupérer des informations sur la courbe.
Méthode | Description | Exemple |
getValueAtPosition(position) | Récupère la valeur de la courve à une position donnée |
|
getKeyAtPosition(position) | Récupère la clé la plus proche à une position donnée |
|
getKeysBetween(start, end) | Récupère un tableau contenant toutes les clés contenues entre start et end. |
|
Objet script
L'objet script fait référence au conteneur de script. Vous pouvez ajouter vos propres paramètres personnalisés ici, ainsi que des informations de journalisation, des avertissements et des erreurs.
Méthode | Description | Exemple |
addTrigger(name, description) | Ceci ajoutera un déclencheur (bouton) |
|
addFloatParameter(name, description, default, min max) | Ceci ajoutera un paramètre de type nombre flottant (curseur). |
|
addIntParameter(name, description, default, min max) | ajoute un paramètre de type nombre entier (step), valeur par défaut de 2, avec une valeur se situant entre 0 et 10 |
|
addBoolParameter(name, description, default) | ajoute un paramètre booléen (toggle) |
|
addStringParameter(name, description, default) | ajoute un paramètre de chaîne (champ de texte) | |
addColorParameter(name, description, default) | ajoute un paramètre de couleur (sélecteur de couleur). |
|
addPoint2DParameter(name, description) | ajoute un paramètre de point 2d |
|
addPoint3DParameter(name, description) | ajoute un paramètre de point 3d |
|
addTargetParameter(name, description) | ajoute un paramètre cible (pour référencer un autre paramètre) |
|
addFileParameter(name, description, [directoryMode]) | Ajoute un paramètre de fichier (pour référencer le fichier ou le dossier sur le disque). Si le mode répertoire est réglé sur vrai, un dossier peut être sélectionné au lieu d'un fichier. |
|
addEnumParameter(name, description, label1, value1, label2, value2, ...) | Ajoute un paramètre de type énumération (menu déroulant avec options) Chaque paire de valeurs après les 2 premiers arguments définit une option et ses données liées |
|
log(message) | Journalise un message (doit activer "Log" ; dans les paramètres du script) |
|
logWarning(message) | Journalise un message en guise d'avertissement |
|
logError(message) | Journalise un message comme une erreur |
|
setUpdateRate(rate) | Définit la vitesse à laquelle la fonction update() est appelée |
|
setExecutionTimeout( timeInSeconds) | Défini le temps maximum avant pour éxecuter les appels à ce script |
|
fonction scriprtParameterChanged(param) | Cette fonction sera appelée chaque fois qu'un paramètre de ce script aura changé. |
|
Objet root
L'objet root fait référence au moteur de Chataigne, qui est l'objet racine de tous les parents. Il permet d'accéder à n'importe quel objet dans la hiérarchie de Chataigne. La meilleure façon d'y accéder est de cliquer avec le bouton droit de la souris sur l'interface utilisateur d'un paramètre et de sélectionner "Copy Script control address". Vous pouvez alors passer l'adresse dans votre script et vous pourrez contrôler ce paramètre.
Objet local
L'objet local dépend de l'endroit où les scripts sont exécutés.
Si le script est exécuté dans un module, la variable locale fera référence au module. Vous pouvez trouver toutes les fonctions de module dans la section Module Scripts.
Si le script s'exécute dans une condition, la variable locale fera référence à la condition. Vous pouvez trouver toutes les fonctions de condition dans la section Condition Scripts.
Si le script s'exécute à l'intérieur d'un filtre, la variable locale fera référence au filtre. Vous pouvez trouver toutes les fonctions de filtre dans la section Filter Scripts.
Objet util
L'objet util fournit des aides et des fonctions utilitaires comme le temps ou la conversion.
Méthode | Description | Exemple |
getAppVersion() | Retourne la version actuelle de l'application |
|
getOSInfos() | Retourne les infos de l'OS. L'objet retournée contient les propriétés suivantes : "name" : le nom de l'OS "type": le type OS "computerName": le nom de l'ordinateur "language": la langue de l'OS "username" : le nom d'utilisateur |
|
getEnvironmentVariable(key) | Retourne la valeur d'une variable d'environnement de l'OS. |
|
getTime() | Retourne le temps écoulé depuis le démarrage du système en secondes |
|
getTimestamp() | Retourne le temps depuis le 1er janvier 1970 en secondes |
|
delayThreadMS(milliseconds) | Pause l'execution pendant le nombre de millisecondes fournies. |
|
getFloatFromBytes(byte1, byte2, byte3, byte4) | Retourne un float de 4 octets (big endian, l'octet 1 est le plus significatif) |
|
getInt32FromBytes(byte1, byte2, byte3, byte4) | Retourne un entier de 32 bits à partir de 4 octets (big endian, l'octet 1 est le plus significatif) |
|
getInt64FromBytes(byte1, byte2, byte3, byte4, byte5, byte6, byte7, byte8) | Retourne un entier de 64 bits à partir de 8 octets (big endian, l'octet 1 est le plus significatif) |
|
getIPs() | Retourne un tableau de toutes les adresses IP trouvées |
|
encodeHMAC_SHA1(text, key) | Retourne une chaîne codée HMAC-SHA1 |
|
toBase64(value); | Retourne une chaîne convertie en base-64 à partir d'une chaîne utf8. |
|
fromBase64(value); | Retourne un bloc de données à partir d'une chaine encodée en base-64 |
|
fileExists(path) | Retourne true si un fichier existe à l'emplacement fourni, sinon false |
|
directoryExists(path) | Retourne true si un dossier existe à l'emplacement fourni, sinon false |
|
readFile(path, [asJSON]) | Lit le contenu du fichier à l'emplacement path. Si asJSON est vrai, alors le contenu sera analysé et renvoyé sous la forme d'un Objet. |
|
writeFile(path, data, overwriteIfExists) | Ecrit le contenu d'une chaîne ou d'un Objet dans le fichier à l'emplacement path. Si le fichier existe, overwriteIfExists vous permettra de décider si il doit être écrasé ou non (false par défaut). |
|
createDirectory(folderPath) | Crée un répertoire à l'emplacement spécifié. |
|
getObjectProperties(objet, includeParameters, includeObjects) | Retourne un tableau de tous les noms de propriétés de cet objet. Vous pouvez spécifier si vous voulez inclure des paramètres et/ou des objets (comme des conteneurs). La valeur par défaut est include all. |
|
getObjectMethods(objet) | Retourne un tableau de tous les noms de méthodes de cet objet. |
|
copyToClipboard(data, data2...) | Copie les données concaténées dans le presse-papier. |
|
getFromClipboard() | Retourne le contenu du presse-papier. |
|
showMessageBox(title, message, [icon, buttonText]) | Affiche un message popup avec un seul bouton. Il est possible de spécifier une icone (valeurs acceptées "info", "warning", "question" ) ainsi que le texte du bouton. |
|
showOkCancelBox(id, title, message, [icon, button1Text, button2Text]) | Affiche un message popup avec 2 boutons. Le paramètre id spécifie l'identifiant de la box qui sera utilisé au moment du callback (voir messageBoxCallback). Il est possible de spécifier une icone (valeurs acceptées "info", "warning", "question" ) ainsi que le texte des boutons. La valeur retournée est true si "OK" a été cliqué, sinon false. |
|
showYesNoCancelBox(id, title, message, [icon, button1Text, button2Text, button3Text] ), | Affiche un message popup avec 3 boutons. Le paramètre id spécifie l'identifiant de la box qui sera utilisé au moment du callback (voir messageBoxCallback). Il est possible de spécifier une icone (valeurs acceptées "info", "warning", "question" ) ainsi que le texte des boutons. La valeur retournée est 0, 1 ou 2 en fonction du bouton cliqué. |
|
Dernière mise à jour