FLsetsnap
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## FLsetsnap

FLsetsnap — Enregistre l'état courant de tous les valuateurs FLTK dans un instantané.

## Description

FLsetsnap enregistre l'état courant de tous les valuateurs présents dans l'orchestre dans un instantané (en mémoire).

## Syntaxe

    inumsnap, inumval FLsetsnap index [, ifn, igroup]

## Initialisation

inumsnap -- nombre courant d'instantanés.

inumval -- nombre de valuateurs (dont la valeur est enregistrée dans l'instantané) présents dans l'orchestre courant.

index -- un nombre faisant référence de manière univoque à un instantané. Plusieurs instantanés peuvent être enregistrés dans la même banque.

ifn (optional) -- optional argument referring to an already allocated table, to store values of a snapshot.

igroup -- (facultatif) un nombre entier faisant référence à un groupe de widgets en relation avec un instantané. Cela permet de lire/écrire, ou charger/sauvegarder l'état d'un sous-ensemble de valuateurs. La valeur par défaut est zéro qui fait référence au premier groupe. Le numéro de groupe est déterminé par l'opcode FLsetSnapGroup.

| Note
Le paramètre igroup n'a pas encore été complètement implémenté dans la version actuelle de Csound. Prière de ne pas s'y fier.

## Exécution

L'opcode FLsetsnap enregistre l'état courant de tous les valuateurs dans l'orchestre dans un instantané (en mémoire). On peut stocker n'importe quel nombre d'instantanés dans la banque courante. Les banques sont des structures qui n'existent qu'en mémoire, sans autre référence que le fait qu'on peut y accéder par les opcodes FLsetsnap, FLsavesnap, FLloadsnap et FLgetsnap. Il ne peut y avoir qu'un seule banque présente en mémoire.

Si l'argument facultatif ifn fait référence à une table valide déjà allouée, l'instantané sera enregistré dans la table plutôt que dans la banque. Ainsi cette table est accessible depuis d'autres opcodes de Csound.

L'argument index fait référence à un instantané déterminé de manière univoque. Si la valeur d'index fait référence à un instantané antérieurement sauvegardé, toutes ses anciennes valeurs seront remplacées par les valeurs courantes. Si index fait référence à un instantané qui n'existe pas, un nouvel instantané sera créé. Si la valeur d'index n'est pas adjacente à celle d'un instantané déjà créé, des instantanés vides seront créés. Par exemple, si la position d'index 0 contient le seul instantané présent dans une banque et que l'on sauvegarde un nouvel instantané avec l'index 5, toutes les positions entre 1 et 4 contiendront automatiquement des instantanés vides. Les instantanés vides ne contiennent pas de données et sont neutres.

FLsetsnap retourne le nombre courant d'instantanés (l'argument inumsnap) et le nombre total de valeurs stockées dans chaque instantané (inumval). inumval est égal au nombre de valuateurs présents dans l'orchestre.

Pour économiser la mémoire, les widgets peuvent être groupés afin que les instantanés n'affectent qu'un groupe défini de widgets. L'opcode FLsetSnapGroup est utilisé pour spécifier le groupe de tous les widgets déclarés après lui jusqu'à la prochaine instruction FLsetSnapGroup.

## Voir aussi

FLgetsnap, FLloadsnap, FLsetSnapGroup, FLrun, FLsavesnap, FLupdate

## Crédits

Auteur : Gabriel Maldonado

Nouveau dans la version 4.22

Précédent | Niveau supérieur | Suivant
FLsetSize | Sommaire | FLsetSnapGroup