Script syntaxe
Un article de XMIX.
(Différences entre les versions)
Version du 6 octobre 2007 à 22:38 Yoann (Discuter | contribs) ← Différence précédente |
Version actuelle Yoann (Discuter | contribs) |
||
Ligne 5: | Ligne 5: | ||
tous doit tenir sur un ligne (les retours chariots délimité chaque instruction). | 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 retour des code 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> == | == <time_code> == | ||
Il est existe de trois types différents : | 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. | + | '''<n>''' : Time code absolu, l'instruction sera déclanchée n miliseconde(s) après le démarrage du player. |
(Ex: 12000:A:CREATECHANNEL) | (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. | '''*<n>''' : Time code relatif temps réel. L'instruction sera déclanchée n miliseconde(s) après son interprétation. | ||
Ligne 22: | Ligne 15: | ||
'''+<n>''' : Time code relatif incrémental. Cette instruction sera exécutée n miliseconde(s) après la dernière | '''+<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) | 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écuter le processus appelant pourra continuer à | ||
- | s'exécuter. | ||
- | Cas particulier : '''I''' (tout seul) : | ||
- | éxécute les instructions contenues dans la file des instructions ''immédiates non exécutées'' et rend la main au | ||
- | processus appelant. | ||
== <variable> == | == <variable> == | ||
Ligne 37: | Ligne 23: | ||
exemple: /Session1/AG1/Channel1 ou AG1/Channel1. | 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_ == | == <instruction> : objet _SYS_ == | ||
Ligne 81: | Ligne 61: | ||
'''MONITOR:[OFF|STD|FAST]''' : Active le monitoring de la variable pour le client puisse accéder rapidement au données semi/temps réel | '''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... | To be continued... |
Version actuelle
Sommaire |
[modifier]
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).
[modifier]
<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)
[modifier]
<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.
[modifier]
<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
[modifier]
<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
[modifier]
<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
[modifier]
<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
To be continued...