Script syntaxe

Un article de XMIX.

(Différences entre les versions)
Jump to: navigation, search
Version du 9 octobre 2007 à 08:51
Yoann (Discuter | contribs)
(<time_code>)
← 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 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> == == <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é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> == == <variable> ==
Chemin pour accéder à l'objet: Chemin pour accéder à l'objet:
'''*''' : Self (généralement la session) '''*''' : Self (généralement la session)
- '''__SYS__''' : Correspondant aux instruction qui porte sur le système (Ex: *:_SYS_:EXIT) + '''_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. '''<variable_path>''' : Correspond à un chemin absolu ou relatif pour accéder à un objet.
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_ ==
'''GETFILEID''' : Interroge le TAudioFileMgr pour obtenir l'ID correspondant à une source audio définit dans une URL. '''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" exemple: *:_SYS_:GETFILEID:@<alias>:"file://C:/MP3_SAMPLE/MyFile1.mp3"
Ligne 51: Ligne 31:
'''DOSTDUPDATE''' : Met à jour les informations "standard" des variables '''DOSTDUPDATE''' : Met à jour les informations "standard" des variables
'''DOFSTUPDATE''' : Met à jour les informations "fast" des variables '''DOFSTUPDATE''' : Met à jour les informations "fast" des variables
- '''NOP''' : No OPeration (ne fait rien) 
== <instruction> : objet type Session == == <instruction> : objet type Session ==
Ligne 82: 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

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).

<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)

<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> : 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

<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

To be continued...