Cette fonction permet de jouer un segment de son. Elle est appelée par
la fonction callback XsCbPlayFromSelection, en réponse à
un appel au menu Marks/Play Segment.
Prototype : void playFromSelection(View *view,int iselFrom)
- view :
- spécifie la vue contenant le buffer et la sélection. Il nous permet de récupérer l'adresse du buffer et le numéro du canal à jouer. En effet, la fonction playFromSelection ne joue qu'un canal.
- iselFrom :
- spécifie le numéro de la sélection.
Une fois la sélection récupérée, j'initialise le serveur audio par la fonction InitAudio.
Je calcule ensuite le début et la fin du segment (en position en
secondes), puis j'initialise une mémoire tampon de lecture (
bufferToPlay) positionnée au début du segment. Enfin, j'effectue une
boucle de lecture des échantillons. La sortie audio se fait dans cette
boucle par la fonction writeAudio.
C'est dans cette boucle que ce font également différentes conversions :
Lorsque le buffer a été bien converti, on peut modifier le volume de sortie en multipliant chaque échantillon par la variable level. Cette variable récupère la valeur output Level de la fenêtre Context/Play.