Script syntaxe
Un article de XMIX.
(Différences entre les versions)
Version du 9 octobre 2007 à 08:43 Yoann (Discuter | contribs) (→<instruction> : objet _SYS_) ← Différence précédente |
Version du 9 octobre 2007 à 08:51 Yoann (Discuter | contribs) (→<time_code>) Différence suivante → |
||
Ligne 24: | Ligne 24: | ||
'''I''' : Execution immédiate et blocage du processus appelant tant que l'instruction n'a pas été exécuté. | '''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), | 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écuter le processus appelant pourra continuer à | + | puis l'instruction le sera ensuite. Une fois cette instruction exécutée le processus appelant pourra continuer |
- | s'exécuter. | + | son déroulement. |
- | Cas particulier : '''I''' (tout seul) : | + | Cas particulier : '''I''' (tout seul) (pour l'instant ''I:__SYS__:NOP'') : |
- | éxécute les instructions contenues dans la file des instructions ''immédiates non exécutées'' et rend la main au | + | Exécute les instructions contenues dans la file des instructions ''immédiates non exécutées'' |
- | processus appelant. | + | et rend la main au processus appelant. |
== <variable> == | == <variable> == |
Version du 9 octobre 2007 à 08:51
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...