Script syntaxe
Un article de XMIX.
Revision as of 9 octobre 2007 à 08:51; view current revision
← Version précédente | Version suivante →
← Version précédente | Version suivante →
Sommaire |
Général
Une instruction est une commande permettant d'utiliser les ressources de l'AudioEngine. Elle est exécutée au sein d'une session. Une instruction est composée de la manière suivante:
<time_code>:<variable>:<instruction>[:<param> [:<parma2> ... :<param n>]]
tous doit tenir sur un ligne (les retours chariots délimité chaque instruction).
Une variante de l'instruction a été ajouté afin de pouvoir insérer un tag pour les retours des codes d'erreur. Ce tag sera ajouter au code d'erreur afin de pouvoir détecter plus facilement si une instruction a provoqué une erreur.
[<tag_erreur>]<time_code>:<variable>:<instruction>[:<param> [:<parma2> ... :<param n>]]
exemple :
[01FF]*:/main_session/AG1:CREATECHANNEL:A
<time_code>
Il est existe de trois types différents :
<n> : Time code absolu, l'instruction sera déclanchée n miliseconde(s) après le démarrage du player.
(Ex: 12000:A:CREATECHANNEL)
*<n> : Time code relatif temps réel. L'instruction sera déclanchée n miliseconde(s) après son interprétation.
(Ex: *1000:A:CREATESRTEAM)
Petit raccourci : *: -> immédiat et equivalent à *0
+<n> : Time code relatif incrémental. Cette instruction sera exécutée n miliseconde(s) après la dernière
instruction de type relatif incrémental ou de type relatif temps réel.(Ex: +500:A:CREATECHANNEL)
I : Execution immédiate et blocage du processus appelant tant que l'instruction n'a pas été exécuté.
La file des instructions immédiates non exécutés sera traitée (éxecution de toutes les instructions),
puis l'instruction le sera ensuite. Une fois cette instruction exécutée le processus appelant pourra continuer
son déroulement.
Cas particulier : I (tout seul) (pour l'instant I:__SYS__:NOP) :
Exécute les instructions contenues dans la file des instructions immédiates non exécutées
et rend la main au processus appelant.
<variable>
Chemin pour accéder à l'objet:
* : Self (généralement la session)
__SYS__ : Correspondant aux instruction qui porte sur le système (Ex: *:_SYS_:EXIT)
<variable_path> : Correspond à un chemin absolu ou relatif pour accéder à un objet.
exemple: /Session1/AG1/Channel1 ou AG1/Channel1.
<instruction> : Générique
EXT : Cette intruction permet d'utiliser des fonctions avancées pour certains objets. Dans ce cas le
premier paramètre correspond à l'instruction étendue
Par exemple lors de la lecture d'une radio de type LastFm, nous pouvons utiliser les commandes
SKIP, LOVE ou BAN.
exemple *:/main_session/AG1/A:EXT:SKIP
<instruction> : objet __SYS__
GETFILEID : Interroge le TAudioFileMgr pour obtenir l'ID correspondant à une source audio définit dans une URL.
exemple: *:_SYS_:GETFILEID:@<alias>:"file://C:/MP3_SAMPLE/MyFile1.mp3"
ou *:_SYS_:GETFILEID:@<alias>:"xmix://Le%20%plus%20fou%20des%20MP3"
DRAWHEAP : Dessine l'arbre des variables actuellement définit
DOSTDUPDATE : Met à jour les informations "standard" des variables
DOFSTUPDATE : Met à jour les informations "fast" des variables
NOP : No OPeration (ne fait rien)
<instruction> : objet type Session
CREATEAUDIOGROUP : Créer un AudioGroup
*:<session>:CREATEAUDIOGROUP:<NomAudioGroup>
FREE:<Obj> : Suprime un objet et sa décendance
NOP : Ne fait rien
<instruction> : objet type AudioGroup
CREATECHANNEL : Créer un objet de type stream
*:<NomAudioGroup>:CREATECHANNEL:<NomCanal>
FREE:<Obj> : Suprime un objet et sa décendance
SETVOL:<vol> : Modifie le volume de l'objet (0-255)
SETPAN:<pan> : Modifie la répartition du son entre gauche/droite en stéréo (0 à droite, 255 à gauche)
SETMUTE:[ON|OFF] : Active le mode mute
<instruction> : objet type Channel
SETFILEID:<ID> : Affecte une source audio représenté par <ID> (un TAudioFile) au canal
*:<NomCanal>:SETFILEID:<ID>
PLAY : Commence la lecture
*:<NomCanal>:PLAY
PAUSE : Met en pause la lecture
*:<NomCanal>:PAUSE
STOP : Arrête la lecture
*:<NomCanal>:STOP
SETPOS:<position> : Deplace le curseur de lecture à la position indiquée.
SETVOL:<vol> : Modifie le volume de l'objet (0-255)
SETPAN:<pan> : Modifie la répartition du son entre gauche/droite en stéréo (0 à droite, 255 à gauche)
MONITOR:[OFF|STD|FAST] : Active le monitoring de la variable pour le client puisse accéder rapidement au données semi/temps réel
<instruction> : objet type PlayList
NEXT : Sélectionne l'AudioSourcesuivant dans la playlist
*:<NomPlayList>:NEXT
PREV : Sélectionne l'AudioSourceprécédante dans la playlist
*:<NomPlayList>:PREV
ADD:<URL> : Ajoute une AudioSource représentée par l'URL
*:<NomPlayList>:ADD:"lastfm://globaltags/air"
REMOVE:<index> : Supprime l'AudioSourcecorrespondant à l'index (on commence à 0)
*:<NomPlayList>:REMOVE:0
CLEAR : Vide la playlist
*:<NomPlayList>:CLEAR
EXT:SETFIRST : Selectionne la première AudioSource
*:<NomPlayList>:EXT:SETFIRST
EXT:SETLAST : Selectionne la dernière AudioSource
*:<NomPlayList>:EXT:SETLAST
EXT:LOOP:[ON|OFF] : Active ou désactive le mode rebouclage de la playlist
*:<NomPlayList>:EXT:LOOP:ON
*:<NomPlayList>:EXT:LOOP:OFF
To be continued...

