FLxyin — Détecte la position de curseur de la souris dans une zone définie à l'intérieur d'un FLpanel.
Opcode du greffon widgets. Ce greffon se trouve dans le répertoire des greffons et il doit être installé séparément. Les widgets FLTK ne fonctionnent pas sur Mac. Le répertoire des greffons est ici : https://github.com/csound/plugins
Semblable à xyin, détecte la position de curseur de la souris dans une zone définie à l'intérieur d'un FLpanel.
koutx, kouty, kinside FLxyin ioutx_min, ioutx_max, iouty_min, iouty_max, \
iwindx_min, iwindx_max, iwindy_min, iwindy_max [, iexpx, iexpy, ioutx, iouty]
ioutx_min, ioutx_max - les valeurs limites de l'intervalle de sortie (X ou axe horizontal).
iouty_min, iouty_max - les valeurs limites de l'intervalle de sortie (Y ou axe vertical).
iwindx_min, iwindx_max - les coordonnées X des bords horizontaux de la zone sensible, relatives au FLpanel, en pixels.
iwindy_min, iwindy_max - les coordonnées Y des bords verticaux de la zone sensible, relatives au FLpanel, en pixels.
iexpx, iexpy - (facultatif) nombres entiers définissant le comportement des sorties x ou y : 0 -> la sortie est linéaire ; 1 -> la sortie est exponentielle ; tout autre nombre indique le numéro d'une table existante utilisée pour l'indexation. Noter que dans les opérations normales, la table doit être normalisée et unipolaire (tous les éléments de la table doivent être compris entre zéro et un). Dans ce cas, tous les éléments de la table seront mis à l'échelle en fonction de imin et de imax. Il est tout de même possible d'utiliser des tables non normalisées (créées avec un numéro de table négatif, qui peuvent contenir des éléments de n'importe quelle valeur), afin d'accéder aux valeurs courantes des éléments de la table, sans mise à l'échelle, en affectant 0 à iout_min et 1 à iout_max.
ioutx, iouty – (facultatif) valeurs de sortie initiales.
koutx, kouty - valeurs de sorties, mises à l'échelle selon les choix de l'utilisateur.
kinside - un drapeau indiquant si le curseur de la souris se trouve en dehors du rectangle de la zone définie. S'il est en dehors de la zone, kinside vaut zéro.
FLxyin détecte la position du curseur de la souris dans une zone définie à l'intérieur d'un FLpanel. Quand FLxyin est appelé, la position de la souris dans la zone choisie est retournée au taux-k. Il est possible de définir la zone sensible, ainsi que les valeurs minimale et maximale correspondant aux positions minimale et maximale de la souris. Il n'est pas nécessaire que les boutons de la souris soient appuyés pour que FLxyin fonctionne. Il est capable d'opérer correctement même si d'autres widgets (présents dans le FLpanel) chevauchent la zone sensible.
A l'inverse de la plupart des autres opcodes FLTK, FLxyin ne peut pas être utilisé dans l'en-tête, car ce n'est pas un widget. Ce n'est que la définition d'une zone de détection de la souris à l'intérieur d'un panneau FLTK.
Voici un exemple de l'opcode FLxyin. Il utilise le fichier FLxyin.csd.
Exemple 347. Exemple de l'opcode FLxyin.
Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in -odac -iadc ;;;RT audio I/O </CsOptions> <CsInstruments> sr=48000 ksmps=128 nchnls=2 ; Example by Andres Cabrera 2007 FLpanel "FLxyin", 200, 100, -1, -1, 3 FLpanelEnd FLrun instr 1 koutx, kouty, kinside FLxyin 0, 10, 100, 1000, 10, 190, 10, 90 aout buzz 10000, kouty, koutx, 1 printk2 koutx outs aout, aout endin </CsInstruments> <CsScore> f 1 0 1024 10 1 i 1 0 3600 e </CsScore> </CsoundSynthesizer>
Voici une autre exemple de l'opcode FLxyin. Il utilise le fichier FLxyin-2.csd.
Exemple 348. Exemple de l'opcode FLxyin.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in No messages -odac -iadc -d ;;;RT audio I/O </CsOptions> <CsInstruments> sr=44100 kr=441 ksmps=100 nchnls=2 ; Example by Gabriel Maldonado FLpanel "Move the mouse inside this panel to hear the effect",400,400 FLpanel_end FLrun instr 1 k1, k2, kinside FLxyin 50, 1000, 50, 1000, 100, 300, 50, 250, -2,-3 ;if k1 <= 50 || k1 >=5000 || k2 <=100 || k2 >= 8000 kgoto end ; if cursor is outside bounds, then don't play!!! a1 oscili 3000, k1, 1 a2 oscili 3000, k2, 1 outs a1,a2 printk2 k1 printk2 k2, 10 printk2 kinside, 20 end: endin </CsInstruments> <CsScore> f1 0 1024 10 1 f2 0 17 19 1 1 90 1 f3 0 17 19 2 1 90 1 i1 0 3600 </CsScore> </CsoundSynthesizer>