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

## FLxyin

FLxyin — Détecte la position de curseur de la souris dans une zone définie à l'intérieur d'un FLpanel.

## Description

Semblable à xyin, détecte la position de curseur de la souris dans une zone définie à l'intérieur d'un FLpanel.

## Syntaxe

    koutx, kouty, kinside  FLxyin ioutx_min, ioutx_max, iouty_min, iouty_max, \
          iwindx_min, iwindx_max, iwindy_min, iwindy_max [, iexpx, iexpy, ioutx, iouty]

## Initialisation

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.

## Exécution

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.

## Exemples

Voici un exemple de l'opcode FLxyin. Il utilise le fichier FLxyin.csd.

Exemple 313. 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 314. 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>

## Voir aussi

FLpanel

## Crédits

Auteur : Gabriel Maldonado

Nouveau dans la version 5.06

Précédent | Niveau supérieur | Suivant
FLvslidBnk2 | Sommaire | fmb3